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


    @

    什么是回归算法

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

    线性回归

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

    • 可以写为

    其中ε(i)是误差,独立同分布的,服从均值为0,方差为某定值δ2的高斯分布。

    似然函数/对数似然函数

    目标函数/损失函数

    • 损失函数是实际值与预测值之间的关系,通过求损失函数的最小值,来确定求解的θ的值,下面式子对数似然函数得:

    • 通过对损失函数求导并令其等于0(最小二乘法),可以得到:

    注:X为样本x(i)的矩阵,Y为y(i)的矩阵,要求矩阵XTX是可逆的。

    常用的其他损失函数

    局部加权回归-损失函数

    • w(i)是权重,它根据要预测的点与数据集中的点的距离来为数据集中的点赋权值。当某点离要预测的点越远,其权重越小,否则越大。常用值选择公式为:

    该函数称为指数衰减函数,其中k为波长参数,它控制了权值随距离下降的速率。
    注意:使用该方式主要应用到样本之间的相似性考虑。

    线性回归的过拟合

    • 为了防止数据过拟合,也就是的θ值在样本空间中不能过大/过小,可以在目标函数之上增加一个平方和损失:

    其中λ(sum_{i=1}^{n})θ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中默认)、留一交叉验证等。
  • 相关阅读:
    移除roadhog用webpack4代替
    git pull request
    java 希尔排序 归并排序 快速排序 三路快速排序
    简洁的 async await
    react-navigation 实现简单登录 跳转路由
    d3序数比例尺理解
    echarts vue 甘特图实现
    element table 实现鼠标拖拽选中
    CSS一些总结
    Nginx location 匹配规则
  • 原文地址:https://www.cnblogs.com/tankeyin/p/12123695.html
Copyright © 2020-2023  润新知