目标
使用scikit-learn实现线性回归(SGDRegressor和LinearRegression)。
1.什么是scikit-learn?
一个用于 Python 编程语言的开源机器学习库,用于实现各种机器学习算法。
2.特征缩放(Z标准化)
第一步先使用Z标准化处理训练样本,减少训练样本特征之间的数值差异。
3.建立线性回归模型
- SGDRegressor创建线性回归模型,设置随机梯度下降迭代次数1000,用处理好的训练样本完成模型训练,模型可以开始预测。
- LinearRegression无需设置梯度下降迭代次数(底层未使用随机梯度下降)。
4.查看回归模型的参数
- SGDRegressor查看模型当前的w,b参数。
- LinearRegression查看参数。
5.使用模型预测数据
- SGDRegressor,用公式或predict方法计算预测值y,比较两种方法计算结果是否一致(只看前四个预测结果),确保计算过程正确可靠。
- LinearRegression,也是用两种方式计算出预测y,并打印了真实y,然后通过第一组训练样本,计算并打印出第一组训练样本的预测房价。
6.可视化查看预测结果
为每个特征创建一个散点图,蓝色点对应真实房价,橙色点对应预测房价,重合度较高,表示模型预测的比较准确。
总结
SGDRegressor和LinearRegression在使用流程上相似,都是先特征缩放(Z标准化),然后初始化模型,通过模型拟合数据完成训练并得到参数w,b,最后通过公式计算或predict方法进行房价预测。