import matplotlib.pyplot as plt
from sklearn import datasets

boston = datasets.load_boston()
X = boston.data
y = boston.target
X = X[y < 50.0]
y = y[y < 50.0]

from sklearn.linear_model import LinearRegression
lin_reg = LinearRegression()
lin_reg.fit(X, y)

lin_reg.coef_

输出结果:

怎么解释这些数字?

  • 系数的正负代表这个特征与房价是正相关还是负相关
  • 系数的绝对值大小代码这个特征对房价的影响程度
    输入:boston.feature_names[np.argsort(lin_reg.coef_)]
    输出:
array(['NOX', 'DIS', 'PTRATIO', 'LSTAT', 'CRIM', 'INDUS', 'AGE', 'TAX',
       'B', 'ZN', 'RAD', 'CHAS', 'RM'], dtype='<U7')

即使使用线性回归法预测的模型不够好,观察的它的系数对分析问题也是有帮助的。

线性回归算法的总结

| 线性回归算法 | KNN算法 --|---|-- 模型参数 | 典型的参数学习 | 非参数学习 分类问题 | 是很多分类算法的基础 | 可以解决分类问题 回归问题 | 只能解决回归问题 | 可以解决回归问题 对数据的假设性 | 有 | 没有 对数据的解释性 | 有 | 没有 时间复杂度 | 使用正规方程解,在训练模型时复杂度高。
解决方法:梯度下降下 | 预测时复杂度高