机器学习之线性回归算法(用于回归任务)
线性回归是一种用于回归任务的监督学习算法,用于表示标签与一个或多个特征之间的线性关系。
1. 线性回归的分类
线性回归又分为一元线性回归和多元线性回归:
一元线性回归: 目标值(就是标签)只与一个特征有关系
y = wx +b
w 是权重(系数),b 是偏置(截距)
多元线性回归: 目标值(因标量)同时与多个特征(自变量)有关系
y= w1 x1+ w2 x2 + w3 x3 + … + b
w 是权重(系数),b 是偏置(截距)
核心目标:找到最优的 w 和 b,使得预测值 ŷ 与真实值 y 之间的误差最小化。
API应用:
# 导包
from sklearn.linear_model import LinearRegression
# 实例化模型
estimator = LinearRegression()
# 训练模型
estimator.fit(x_train, y_train)
# 模型预测
pred = estimator.predict(x_test)
为了找到最优的权重w和截距b,就不得不提到损失函数了。
2. 损失函数
损失函数,可以找到使得预测值ŷ与真实值y之间的误差最小时的权重w和截距b,即找到核心目标。
损失函数主要有以下三种损失函数:
最小二乘法LS:误差平方和

均方误差MSE:误差平方和取平均值

平均绝对误差MAE:误差绝对值和取平均值

其中,以最小二乘法最为常用。
3. 损失函数优化方法
损失函数优化方法主要有正规方程法和梯度下降法:
3.1 正规方程法
闭式解:w = (XᵀX)⁻¹ Xᵀ y
优缺点:
优点:无需调参,一步到位,得到最优解,适合小数据场景
缺陷:计算量大,如果没有逆矩阵,则无解,大数据集情况下,不可行。
3.2 梯度下降法(Gradient Descent)
梯度:单变量函数就是导数;多变量函数就是偏导数
当特征维度高或数据量大时使用。
更新规则:w ← w - η·∇L(w)
η 是学习率,∇L(w) 是损失函数对w的梯度
梯度下降法分类:
全批量梯度下降(BGD):用全部样本计算梯度,稳定但慢
随机梯度下降(SGD):单样本更新,快但不稳定
小批量梯度下降法(Mini-batch GD):折中方案,最常用
优缺点:
优点:计算量小,更加普适,迭代的计算方式,适合于嘈杂、大数据应用场景
缺陷:需要迭代,不断更新学习率,特征数量较大
梯度下降法,是整个机器学习、深度学习的核心思想,所做的一切都是为了使损失更小,预测值更逼近实际值。
4. 模型评估函数
回归任务常用的评估函数:
MSE:均方误差

n 为样本数量, y 为实际值, yy ̂为预测值
MSE 越小模型预测约准确
MAE:平均绝对误差

n 为样本数量, y 为实际值, y ̂为预测值
MAE 越小模型预测约准确
RMSE:均方根误差,即均方误差的开平方

n 为样本数量, y 为实际值, y ̂为预测值
RMSE 越小模型预测约准确
RMSE 是 MSE 的平方根,某些情况下比MSE更有用
更多推荐
所有评论(0)