13
0
0
线性回归概论
思维导图

线性回归
线性回归
y = kx +b -> y = wx +b w权重 b偏置
一元线性回归 多元线性回归
y = w1x1 +w2x2 +w3x3 +... +b
w = [[b],[w1],[w2],[w3],[w4]]
x = [[1],[x1],[x2],[x3],[x4]]
总结:y = w的转置 * x
线性回归API
from sklearn.linear_model import LinearRegression
准备数据
x = [[1],[x1],[x2],[x3],[x4]]
y = [1,2,3,4]
准备模型
model = LinearRegression()
model.fit(x,y)
预测
model.predict([[176]])
线性回顾实现的原理
误差 = 预测 - 真实
损失函数 -》 衡量误差的函数
最小二乘
均方误差
均方根误差
平均绝对误差
损失函数 = (〖160𝑘+(−100)−56.3)〗^2 + (〖166𝑘+(−100)−60.6)〗^(2 ) + (〖172𝑘+(−100)−65.1)〗^(2 ) + (〖174𝑘+(−100)−58.5)〗^(2 ) + (〖180𝑘+(−100)−56.3)〗^(2 )
损失函数' = 函数的瞬时变化率
函数的瞬时变化率 = 0 -> 函数是最小值
损失函数求导 -> 函数最小值
损失函数求偏导 -> 对什么求导,就让其他变量为常数
正规方程法
一元线性方程 :损失函数' = 0,求解
多元线性方程: 损失函数’‘ ,求解
不一定有解,如果矩阵不可逆,那就没法求解,所以需要梯度下降法
梯度下降法
一次下降一点梯度,逐步向0靠近
w新 = w旧 - 学习率*梯度
学习率不能太大,否则会出现梯度震荡
学习率不能太小,否则会出现梯度爆炸
学习率:0.001 ~ 0.01
梯度是函数上升的方向,梯度的反方向是函数下降的方向。就像一个指北针一样
拟合问题
过拟合
特征过多,需要删减无用的特征(删是直接不要特征,减少特征的权重)
欠拟合
特征过少,需要增加特征(一般都需要拉去新的特征,测试一般都是加平方,立方...作为测试数据)
正好拟合
解决过拟合的方案:L1正则化 && L2正则化
L1正则化Lasso - 权重可能更新到0从而放弃当前的特征
例子:一个员工如果不听话,就进行开出
L2正则化Ridge - 权重不断靠近0,但是不会等于0(重点)
例子:一个员工如果不听话,就降薪
线性回归模型评估
(MAE\RMSE) 比较接近,RMSE一般大于MAE,如果过于大,也是异常的表现
MSE放大误差
