机器学习(2)之回归算法
什么是回归算法
- 有监督算法
- 解释变量(x)与观测值(因变量y)之间的关系
- 最终结果是一个连续的数据值,输入值(属性值)是一个d维度的属性/数值向量
线性回归
-
最终要求是计算出 θ 的值,并选择最优的 θ值构成算法公式
-
可以写为
其中ε(i)是误差,独立同分布的,服从均值为0,方差为某定值δ2的高斯分布。
似然函数/对数似然函数
-
似然函数
(释然函数的概念可以参考:https://segmentfault.com/a/1190000014373677?utm_source=channel-hottest)
注:似然函数里面用的是正态分布,实际问题中,很多随机现象可以看做众多因素的独立影响的综合反应,往往服从正态分布。
-
对数似然函数
目标函数/损失函数
- 损失函数是实际值与预测值之间的关系,通过求损失函数的最小值,来确定求解的θ的值,下面式子对数似然函数得:
- 通过对损失函数求导并令其等于0(最小二乘法),可以得到:
注:X为样本x(i)的矩阵,Y为y(i)的矩阵,要求矩阵XTX是可逆的。
常用的其他损失函数
局部加权回归-损失函数
- w(i)是权重,它根据要预测的点与数据集中的点的距离来为数据集中的点赋权值。当某点离要预测的点越远,其权重越小,否则越大。常用值选择公式为:
该函数称为指数衰减函数,其中k为波长参数,它控制了权值随距离下降的速率。
注意:使用该方式主要应用到样本之间的相似性考虑。
线性回归的过拟合
- 为了防止数据过拟合,也就是的θ值在样本空间中不能过大/过小,可以在目标函数之上增加一个平方和损失:
其中λ ∑ i = 1 n \sum_{i=1}^{n} ∑i=1nθ2j为正则项(norm),这里这个正则项叫做L2-norm
Ridge回归(岭回归)
- 使用L2正则的线性回归模型就称为Ridge回归(岭回归)
Ridge模型具有较高的准确性、鲁棒性以及稳定性。
LASSO回归
- 使用L1正则的线性回归模型就称为LASSO回归(Least Absolute Shrinkage and Selection Operator)
LASSO模型具有较高的求速度,容易出现稀疏解,即解为0的情况。
Elasitc Net算法(弹性网络算法)
- 同时使用L1正则和L2正则的线性回归模型就称为Elasitc Net算法(弹性网络算法)
既要考虑稳定性也考虑求解的速度,就使用Elasitc Net。
梯度下降算法
- 目标函数θ求解:
- 初始化θ(随机初始化,可以初始为0)
- 沿着负梯度方向迭代,更新后的θ使J(θ)更小
α:学习率、步长
批量梯度下降算法(BGD)
- 当样本量为m的时候,每次迭代BGD算法中对于参数值更新一次。
- BGD一定能够得到一个局部最优解(在线性回归模型中一定是得到一个全局最优解)。
- 计算速度比较慢。
随机梯度下降算法(SGD)
- 当样本量为m的时候,SGD算法中对于参数值更新m次。SGD算法的结果并不是完全收敛的,而是在收敛结果处波动的。
- SGD在某些情况下(全局存在多个相对最优解/J(θ)不是一个二次),SGD有可能跳出某些小的局部最优解,所以不会比BGD坏。
- SGD由于随机性的存在可能导致最终结果比BGD的差。
- SGD算法特别适合样本数据量大的情况以及在线机器学习(Online ML)。
- 注意:优先选择SGD
小批量梯度下降法(MBGD)
- 保证算法的训练过程比较快,又保证最终参数训练的准确率。MBGD中不是每拿一个样本就更新一次梯度,而且拿b个样本(b一般为10)的平均梯度作为更新方向。
梯度下降法调优策略
- 学习率的选择:学习率过大,表示每次迭代更新的时候变化比较大,有可能会跳过最优解;学习率过小,表示每次迭代更新的时候变化比较小,就会导致迭代速度过慢,很长时间都不能结束。
- 算法初始参数值的选择:初始值不同,最终获得的最小值也有可能不同,因为梯度下降法求解的是局部最优解,所以一般情况下,选择多次不同初始值运行算法,并最终返回损失函数最小情况下的结果值。
- 标准化:由于样本不同特征的取值范围不同,可能会导致在各个不同参数上迭代速度不同,为了减少特征取值的影响,可以将特征进行标准化操作。
Logistic回归
- 主要是进行二分类预测,也即是对于0~1之间的概率值,当概率大于0.5预测为1,小于0.5预测为0。
- Logistic/sigmoid函数:
- 假设:
- 得似然函数:
- 回归参数θ(类似梯度下降方法求得):
- Logistic回归损失函数(由对数似然函数得来):
Softmax回归
- softmax回归是logistic回归的一般化,适用于K分类的问题,第k类的参数为向量θk,组成的二维矩阵为θk*n 。
- softmax函数的本质就是将一个K维的任意实数向量压缩(映射)成另一个K维的实数向量,其中向量中的每个元素取值都介于(0,1)之间。
- softmax回归概率函数为:
- 算法原理
- 损失函数
- 回归参数θ(类似梯度下降方法求得):
模型效果判断
- MSE:误差平方和,越趋近于0表示模型越拟合训练数据。
- RMSE:MSE的平方根,作用同MSE。
- R2:取值范围(负无穷,1],值越大表示模型越拟合训练数据;最优解是1;当模型预测为随机值的时候,有可能为负;若预测值恒为样本期望,R2为0。
- TSS:总平方和TSS(Total Sum of Squares),表示样本之间的差异情况,是伪方差的m倍。
- RSS:残差平方和RSS(Residual Sum of Squares),表示预测值和样本值之间的差异情况,是MSE的m倍。
机器学习调参
- 在实际工作中,对于各种算法模型(线性回归)来讲,我们需要获取θ、λ、p的值;θ的求解其实就是算法模型的求解,一般不需要开发人员参与(算法已经实现),主要需要求解的是λ和p的值,这个过程就叫做调参(超参)
- 交叉验证:将训练数据分为多份,其中一份进行数据验证并获取最优的超参:λ和p;比如:十折交叉验证、五折交叉验证(scikit-learn中默认)、留一交叉验证等。