LinearRegression线性回归算法基本原理分析

线性回归分为简单线性回归和多元线性回归,下面先简单介绍一下这二者:

1.简单线性回归:只有一个特征值,预测值公式如下:

2.多元线性回归:具有n个特征值,预测值公式如下:(当n=1时,即简单线性回归b=θ0,a=θ1)

多元线性回归方程演变成求θ,使得下列目标值(预测值y的误差平方和)最小:

sklearn中LinearRegression中的fit()方法就是通过训练集求出θ。

LinearRegression有两个属性intercept_和coef_,分别对应θ数组中的θ0和θ1-θn,如下图所示:

3.相比KNN,线性回归具有可解释性,即系数coef_中的θ1、θ2...θn分别对应各特征值对标记的影响:

  θ>0, 正相关;θ<0,负相关;

  θ值绝对值越大,特征值对标记影响越大;

  我们通过boston房价预测数据集的θ分析,显示各特征值与标记值之间关系:

if __name__ == '__main__':
    #获取boston数据
    boston=datasets.load_boston()
    x=boston.data
    y=boston.target
    #过滤掉异常值
    x=x[y<50]
    y=y[y<50]
    reg=LinearRegression()
    reg.fit(x,y)
    #求排序后的coef
    coefSort=reg.coef_.argsort()
    #featureNameSort: 按对标记值的影响,从小到大的各特征值名称
    #featureCoefSore:按对标记值的影响,从小到大的coef_
    featureNameSort=boston.feature_names[coefSort]
    featureCoefSore=reg.coef_[coefSort]
    print("featureNameSort:", featureNameSort)
    print("featureCoefSore:",featureCoefSore)

  运行代码,输出结果为:

featureNameSort: ['NOX' 'DIS' 'PTRATIO' 'LSTAT' 'CRIM' 'INDUS' 'AGE' 'TAX' 'B' 'ZN' 'RAD'
 'CHAS' 'RM']
featureCoefSore: [-1.24268073e+01 -1.21088069e+00 -8.38888137e-01 -3.50952134e-01
 -1.05574295e-01 -4.35179251e-02 -2.36116881e-02 -1.37702943e-02
  7.93577159e-03  3.52748549e-02  2.50740082e-01  4.55405227e-01
  3.75411229e+00]

  从输出结果可以看出:

  正相关影响系数最大的特征值是"RM":房间的平均数量,系数值为3.75;

  负相关影响系数最大的特征值是"NOX":一氧化氮浓度,系数值为-1.24;

猜你喜欢

转载自blog.csdn.net/genius9_9/article/details/81074590