本次将从以下步骤完成一个机器学习项目
1,问题分析
2,获得数据
3,从数据探索和可视化中获得洞见
4,机器学习算法的数据准备
5,选择和训练模型
6,微调模型
7,启动、监控和维护系统
一,问题分析
首先应该明确业务目标是什么,因为建立模型本身可能不是***终目标。公司需要知道如何使用这个模型,如何从中获利。这才是***重要的问题,因为这将决定你怎么设定问题,选择说明算法,使用什么测量方法来评估模型的性能,以及应该花多少精力来进行调整。
其次是选择性能指标,回归问题的典型性能衡量指标是均方根误差(RMSE),平均******误差(MAE),标准差(SD)
RMSE
Root Mean Square Error,均方根误差
是观测值与真值偏差的平方和与观测次数m比值的平方根
是用来衡量观测值同真值之间的偏差
MAE
Mean Absolute Error ,平均******误差
是******误差的平均值
能更好地反映预测值误差的实际情况
SD
Standard Deviation ,标准差
是方差的算数平方根
是用来衡量一组数自身的离散程度
数据下载,我们可以去一些开源数据网站下载数据,也可以自行爬取一些数据,但一定要保证数据的真实性。我们从这里下载。
数据加载,我们使用Pandas加载数据
1 import pandas an pd
2 def load_housing_data(housing_path):
3 return pd.read_csv(housing_path)
这个函数会返回一个包含所有数据的Pandas DataFrame对象。
3.快速查看数据结构
1)head()方法,查看前n行数据,默认前5行数据
1 housing = load_housing_data(HOUSING_PATH)
2
3 print(housing.head())
(2)info()方法,快速获取数据集的简单描述,特别是总行数、每个属性的类型和非空值的数量
print(housing.info())
数据集中包含20640个实例,以机器学习的标准来看,这个数字非常的小,但却是个完美的开始,需要注意的是,total_bedrooms这个属性只有20433个非空值,这意味着有207个区域缺失这个特性。我们后面需要考虑这一点。
所有属性的字段都是数字,除了ocean_proximity。它的类型是object,因此它可以是任何类型的python对象。
(3)value_counts()方法,查看有多少中分类存在,每种类别下分别有多少个区域。
1 vc = housing[‘ocean_proximity’].value_counts()
2
3 print(vc)
(4)describe()方法,可以显示数值属性的摘要。
print(housing.describe())
count—总行数
mean—平均值
min—***小值
max—******值
std—标准差,用来测量数值的离散程度
25%、50%和75%--百分位数,表示一组观测值中给定百分比的观测值都低于该值。
(5)直方图,用来显示给定值范围(横轴)的实例数量(纵轴)。
使用hist()方法绘制每个属性的直方图。
1 import matplotlib.pyplot as plt
2 housing.hist(bins=50,figsize=(20,15))
3 plt.show()
bins-每张图柱子的个数
figsize-每张图的尺寸