终于到了这一步了!你在前面限定了问题、获得了数据、探索了数据、采样了一个测试集、写了自动化的转换流水线来清理和为算法准备数据。现在,早就已经准备好选择并训练一个机器学习模型了。
那我们就从线性模型开始讲起吧!
普通的广义线性模型,都是拟合一个带有系数 的线性模型,使得数据集实际观测数据和预测数据(估计值)之间的残差平方和最小。其数学表达式为:
,当然如果是做分类的话,请参照李航的logistic回归
在sklearn中广义线性模型也特别好实现
from sklearn.linear_model import LinearRegression
lin_reg = LinearRegression()
lin_reg.fit(housing_prepared,housing_labels)
#输出权重
lin_reg.coef_
#去前6行数据进行评估
some_data = housing_prepared[:6]
some_labels = housing_labels[:6]
lin_reg.predict(some_data)#得到:
array([ 203682.37379543, 326371.39370781, 204218.64588245,
58685.4770482 , 194213.06443039, 156914.96268363])
实际值为 [ 286600.0, 340600.0,196900.0, 46300.0,254500.0,127900.0]相差有的大概差个20%左右吧
普通最小二乘法的缺点对于普通最小二乘的系数估计问题,其依赖于模型各项的相互独立性。当各项是相关的,且设计矩阵 的各列近似线性相关&#