机器学习之回归算法

Posted tankeyin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习之回归算法相关的知识,希望对你有一定的参考价值。

@(机器学习(2)之回归算法)

什么是回归算法

  • 有监督算法
  • 解释变量(x)与观测值(因变量y)之间的关系
  • 最终结果是一个连续的数据值,输入值(属性值)是一个d维度的属性/数值向量

线性回归

技术图片

  • 最终要求是计算出 θ 的值,并选择最优的 θ值构成算法公式

  • 可以写为
    技术图片
    其中ε^(i)^是误差,独立同分布的,服从均值为0,方差为某定值δ^2^的高斯分布。
    技术图片

似然函数/对数似然函数

  • 似然函数
    (释然函数的概念可以参考:https://segmentfault.com/a/1190000014373677?utm_source=channel-hottest)
    技术图片

    注:似然函数里面用的是正态分布,实际问题中,很多随机现象可以看做众多因素的独立影响的综合反应,往往服从正态分布。

  • 对数似然函数

技术图片

目标函数/损失函数

  • 损失函数是实际值与预测值之间的关系,通过求损失函数的最小值,来确定求解的θ的值,下面式子对数似然函数得:技术图片
  • 通过对损失函数求导并令其等于0,可以得到:技术图片
    注:X为样本x^(i)^的矩阵,Y为y^(i)^的矩阵,要求矩阵X^T^X是可逆的。

常用的其他损失函数

技术图片

局部加权回归-损失函数

技术图片

  • w(i)是权重,它根据要预测的点与数据集中的点的距离来为数据集中的点赋权值。当某点离要预测的点越远,其权重越小,否则越大。常用值选择公式为:
    技术图片
    该函数称为指数衰减函数,其中k为波长参数,它控制了权值随距离下降的速率。
    注意:使用该方式主要应用到样本之间的相似性考虑。

线性回归的过拟合

  • 为了防止数据过拟合,也就是的θ值在样本空间中不能过大/过小,可以在目标函数之上增加一个平方和损失:
    技术图片
    其中λ$sum_{i=1}^{n}$θ^2^~j~为正则项(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中默认)、留一交叉验证等。

以上是关于机器学习之回归算法的主要内容,如果未能解决你的问题,请参考以下文章

机器学习之逻辑回归

机器学习之学习路线

机器学习之线性回归

机器学习之线性回归

机器学习之Logistic 回归算法

python学习之机器学习