【机器学习】线性回归LinearRegression原理以及系数推导

时间秒杀一切 提交于 2020-03-17 11:50:33

线性方程

y = w1x1 + w2x2 + … … + wnxn + b

令 W = (w1, w2 … … wn), X = (x1, x2, … … xn)

则 y = W * X ^ T + b

称 W 为回归系数, X 为特征向量, b 为截距

线性方程的推导

现有 m 个已知样本, 每个样本有 n 个特征记为 X1, X2, … … , Xn 每个X中都有 n 个 x

对应的标签记为: y1, y2, … … , ym ,且特征和标签成线性关系

此时只要求得 W 就可得到线性回归方程

​ 将m个已知量带入方程会得到方程组:

​ y1 = W * X1 ^ T + b = w1x1_1 + w2x1_2 + … … + wnx1_n + b

​ y2 = W * X2 ^ T + b = w1x2_1 + w2x2_2 + … … + wnx2_n + b

​ … …

​ ym = W * Xm ^ T + b = w1xm_1 + w2xm_2 + … … + wnxm_n + b

​ 讨论: m > n 且无共线, 方程无解

​ m = n 且无共线, 有且只有一个解

​ m < n 无数个解

​ 在实际生产环境中 m >> n (样本数远远大于特征维度), 所以上述方案行不通

最小二乘法

  • 假设 W’ 和 b‘ 是最合适的, 得到假设出来的回归方程: W‘ * X ^ T + b’

  • 把所有的样本带入, 得到假设的那些标签数据:

    y1’ = W’ * X1 ^ T + b’

    y2’ = W’ * X2 ^ T + b’

    … …

    ym’ = W’ * Xm ^ T + b’

    此时 y1’, y2’, … … , ym’ 都是通过假设的 W’ 和 b‘ 得到的标签, 那么真实的标签 y1, y2, … … , ym 和假设推导的标签之间一定存在差异

  • 采用均方误差最小化来求解的方法称为“最小二乘法”

    在这里插入图片描述

from sklearn.linear_model import LinearRegression
lr = LinearRegression(fit_intercopt=True, noemalize=False, copy_X=True, n_jobs=None)
# fit_intercopt 是否计算截距
# noemalize在计算拮据的情况下, 回归前归一化, 回归因子X为减去均值,除以L2范数
# copy_X复制或覆盖
# n_jobs 采用多少CPU计算 n_jobs=-1 有多少用多少

岭回归

    from sklearn.linear_model import Ridge·   

改良的最小二乘法

1.岭回归可以解决特征数量比样本量多的问题

2.岭回归作为一种缩减算法可以判断哪些特征重要或者不重要,有点类似于降维的效果

3.缩减算法可以看作是对一个模型增加偏差的同时减少方差

岭回归用于处理下面两类问题:

1.数据点少于变量个数

2.变量间存在共线性(最小二乘回归得到的系数不稳定,方差很大)

罗斯回归

      from sklearn.learn_model import Lasso

罗斯回归与岭回归的区别是罗斯回归采用L1正则:惩罚系数的绝对值

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!