1.获取数据
2.数据处理
3.特征工程
4.模型训练
5.模型评估
在数据集中:
由数据类型构成判断机器学习算法分类
1.监督学习–有特征值、label值
label值连续–回归
label值离散–分类
2.无监督学习–仅有特征值
3.半监督学习–部分数据有特征值部分数据没有特征值
4.强化学习–动态过程,上一步输出是下一步的输入
四要素:agent、action、environment、reward
训练数据
验证数据
测试数据
对数据进行缺失值异常值进行处理
特征工程是使用专业背景知识和技巧处理数据,使得特征能在机器学习算法上发挥更好的作用的过程
简而言之就是将数据转化为计算机更好处理的数据的过程
将任意数据(文本或图像)转换为可用于机器学习的数字特征(转换为计算机方便识别的语言二进制之类的)
指定某些限定条件下,降低随机变量(特征)个数,得到一组“不相关”主变量的过程
选择合适的算法对模型进行训练
对训练好的模型进行评估
开源的科学计算平台,类比ipython,可以运行代码可以做笔记,文件后缀:.ipynb
一对inout被视为一个代码单元,称为cell
用于开发2D/3D图表,数据分析,基于分析,进行展示
1.创建画布
plt.figure(figsize=(20,8),dpi=100)
#figsize为画布长宽
#dpi为像素
2.绘制图像
x=[1,2,3]
y=[5,8,6]
plt.plot(x,y)
3.显示图像
plt.show()
import matplotlib.pyplot as plt
plt.figure(figsize=(20,8),dpi=100)
x=[1,2,3]
y=[5,8,6]
plt.plot(x,y)
plt.show()
1.图像保存
plt.savefig("路径")
2.添加x轴,y轴刻度
plt.xticks
plt.yticks
3.添加网格
plt.grid(linestyle=“--”,alpha=1)
# linestyle=“--” 网格方式为--
# alpha=1 透明度
4.添加描述信息
plt.xlabel(“时间”)
plt.ylabel("温度")
plt.title("一小时温度变化图",fontsize=20)
5.多次plot(多条折线图)
定义y1,y2值再进行plt.plot()绘制
6.显示图例
plt.legend(loc=0)
#loc即选一个最好位置的参数,一般选择为0,0是最好的位置参数0就是best
注意:需要在显示之前,声明plot里面的具体值
图像基本绘制完整代码:
#1.生成数据
x=range(60)
y_beijing=[random.uniform(10,20) for i in x]
y_shanghai=[random.uniform(15,25) for i in x]
#2.创建画布
plt.figure(figsize=(20,8),dpi=100)
#3.图形绘制
plt.plot(x,y_beijing,label="北京",color="y",linestyle="-.")
plt.plot(x,y_shanghai,label="上海")
##3.1定义x,y轴刻度
x_ticks_labels=["11点{}分".format(i) for i in x] #如果是字符串要注意进行转换
y_ticks=range(30)
##3.2添加x,y轴刻度
plt.xticks(x[::5],x_ticks_labels[::5])
plt.yticks(y_ticks[::5])
#3.3添加网格
plt.grid(linestyle="--",alpha=1)
#3.4添加描述
plt.xlabel("时间",fontsize=10)
plt.ylabel("温度",fontsize=10)
plt.title("一小时温度变化图",fontsize=20)
#3.5显示图例
plt.legend(loc="best")
#4.图形展示
plt.show()
#创建画布
fig,axes=plt.subplots(nrows=1,ncols=2,figsize=(20,8),dpi=100)
nrows–表示几行
ncols–表示几列
注意:有些方法需要添加set_
#3.图形绘制
axes[0].plot(x,y_beijing,label="北京",color="y",linestyle="-.")
axes[1].plot(x,y_shanghai,label="上海")
注意前边加上axes[0]./[1].就可以
#3.2添加x,y轴刻度
#plt.xticks(x[::5],x_ticks_labels[::5])
#plt.yticks(y_ticks[::5])
axes[0].set_xticks(x[::5])
axes[0].set_yticks(y_ticks[::5])
axes[0].set_xticklabels(x_ticks_labels[::5])
axes[1].set_xticks(x[::5])
axes[1].set_yticks(y_ticks[::5])
axes[1].set_xticklabels(x_ticks_labels[::5])
注意变为axes[0].set_xticks
带有字符串的进行两次标签设置此种就是x轴
#3.3添加网格
#plt.grid(linestyle="--",alpha=1)
axes[0].grid(linestyle="--",alpha=1)
axes[1].grid(linestyle="--",alpha=1)
直接换为axes[0].
#3.4添加描述
#plt.xlabel("时间",fontsize=10)
#plt.ylabel("温度",fontsize=10)
#plt.title("一小时温度变化图",fontsize=20)
axes[0].set_xlabel("时间",fontsize=10)
axes[0].set_ylabel("温度",fontsize=10)
axes[0].set_title("北京一小时温度变化图",fontsize=20)
axes[1].set_xlabel("时间",fontsize=10)
axes[1].set_ylabel("温度",fontsize=10)
axes[1].set_title("上海一小时温度变化图",fontsize=20)
这里需要换为axes[0].set_
#3.5显示图例
#plt.legend(loc="best")
axes[0].legend(loc="best")
axes[1].legend(loc="best")
换为axes[0].
#4.图形展示
plt.show()
这里不变
总结:
完整代码显示
#1.生成数据
x=range(60)
y_beijing=[random.uniform(10,20) for i in x]
y_shanghai=[random.uniform(15,25) for i in x]
#2.创建画布
#plt.figure(figsize=(20,8),dpi=100)
fig,axes=plt.subplots(nrows=1,ncols=2,figsize=(20,8),dpi=100)
#3.图形绘制
#plt.plot(x,y_beijing,label="北京",color="y",linestyle="-.")
#plt.plot(x,y_shanghai,label="上海")
axes[0].plot(x,y_beijing,label="北京",color="y",linestyle="-.")
axes[1].plot(x,y_shanghai,label="上海")
##3.1定义x,y轴刻度
x_ticks_labels=["11点{}分".format(i) for i in x] #如果是字符串要注意进行转换
y_ticks=range(30)
##3.2添加x,y轴刻度
#plt.xticks(x[::5],x_ticks_labels[::5])
#plt.yticks(y_ticks[::5])
axes[0].set_xticks(x[::5])
axes[0].set_yticks(y_ticks[::5])
axes[0].set_xticklabels(x_ticks_labels[::5])
axes[1].set_xticks(x[::5])
axes[1].set_yticks(y_ticks[::5])
axes[1].set_xticklabels(x_ticks_labels[::5])
#3.3添加网格
#plt.grid(linestyle="--",alpha=1)
axes[0].grid(linestyle="--",alpha=1)
axes[1].grid(linestyle="--",alpha=1)
#3.4添加描述
#plt.xlabel("时间",fontsize=10)
#plt.ylabel("温度",fontsize=10)
#plt.title("一小时温度变化图",fontsize=20)
axes[0].set_xlabel("时间",fontsize=10)
axes[0].set_ylabel("温度",fontsize=10)
axes[0].set_title("北京一小时温度变化图",fontsize=20)
axes[1].set_xlabel("时间",fontsize=10)
axes[1].set_ylabel("温度",fontsize=10)
axes[1].set_title("上海一小时温度变化图",fontsize=20)
#3.5显示图例
#plt.legend(loc="best")
axes[0].legend(loc="best")
axes[1].legend(loc="best")
#4.图形展示
plt.show()
1.表述数据变化
2.绘制一些数学图像
import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(0,20,1000)
y=np.sin(x)
plt.figure(figsize=(10,4),dpi=100)
plt.plot(x,y)
x_ticks=range(20)
y_ticks=range(1)
plt.xticks=(x_ticks[::2])
plt.yticks=(y_ticks[::1])
plt.show()
1.折线图 --plt.plot()
变化
2.散点图–plt.sactter()
分布规律
from turtle import color
import matplotlib.pyplot as plt
import numpy as np
# 10个点
N = 10
x1 = np.random.rand(N)
y1 = np.random.rand(N)
x2 = np.random.rand(N)
y2 = np.random.rand(N)
plt.scatter(x1, y1, marker='o',color="r")
plt.scatter(x2, y2, marker='^',color="g")
plt.show()
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.font_manager import FontProperties
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号
names = ['哪吒之魔童降世', '流浪地球', '复仇者联盟4:终局之战', '我和我的祖国', '疯狂的外星人', '中国机长', '飞驰人生', '烈火英雄', '速度与激情:特别行动', '蜘蛛侠:英雄远征',
'扫毒2天地对决', '大黄蜂', '惊奇队长', '比悲伤更悲伤的故事', '哥斯拉2:怪兽之王', '阿丽塔:战斗天使', '攀登者', '银河补习班', '狮子王', '反贪风暴4 '] # 单位(亿)
box_office = [49.26, 46.18, 42.05, 23.36, 21.83, 21.23, 17.03, 16.74, 14.18, 14.01, 12.85, 11.38, 10.25, 9.46, 9.27,
8.88, 8.64, 8.63, 8.23, 7.88]
#绘制画布
plt.figure(figsize=(20,8),dpi=100)
#图形绘制
plt.bar(names,box_office,width=0.3,color="g")
plt.xlabel("影视名称",size=20)
plt.ylabel("总票房(单位:亿)",rotation=90,size=20)
plt.title("2019电影票房排行榜",size=20)
plt.xticks(names,rotation=90,size=12)
#图像展示
plt.show()
4.直方图–plt.hist()
统计、分布
5.饼图–plt.pie()
占比