记-机器学习-回归算法
1、什么叫回归算法:
常见的回归算法有: 线性回归、Logistic回归、Softmax回归......
① 回归算法属于一种有监督学习
② 回归算法是一种比较常用的机器学习算法,用来建立自变量(x)与因变量(y)之间的关系;从机器学习的角度来讲,用于构建一个算法模型(函数)来做属性(x)与标签(y)之间的映射关系,
在算法的学习过程中,试图寻找一个函数 h: R(d) -> R 使得参数之间的关系拟合性最好
③ 回归算法中算法(函数)的最终结果是一个连续的数据值,输入值(属性值)是一个d维度的属性/数值量
2、线性回归:
顾名思义,线性回归就是,自变量(x)与因变量(y)之间为线性关系
亦可表示为:
其中, 表示误差,是独立同分布的,服从均值为0,方差为某定值
的高斯分布(根据中心极限定理得出);但,实际问题中,很多随机现象可以看做众多因素的独立影响的综合反应,往往服从正态分布
3、似然函数:
由线性关系公式及误差特性,可推出
可得:
4、对数似然:
5、线性回归的目标函数(损失函数)
6、theta() 的求解过程:
最后解出:
7、最小二乘法的参数最优解:
① 参数解析式:
② 最小二乘法的使用要求矩阵 是可逆的;为了防止不可逆获取过拟合的问题存在,可以增加额外数据影响,导致最终的矩阵是可逆的:
③ 最小二乘法矩阵逆的求解是一个难点
8、目标函数(loss/cost function):
①
②
③
④
⑤
9、过拟合:
过拟合现象表现为:由于对训练数据的训练准确率过高,导致训练出来的模型在测试数据上的准确率反而下降
10、线性回归的过拟合:
① 目标函数:
② 为了防止数据过拟合,也就是 值在样本空间中不能过大/过小,可以在目标函数之上增加一个平方和损失,
③ 正则项(norm): ,这里这个正则项叫做L2-norm
11、过拟合与正则项
① L2-norm:
② L1-norm:
12、Ridge回归:
使用L2正则的线性回归模型就称为Ridge回归(岭回归):
13、 LASSO回归:
使用L1正则的线性回归模型就称为LASSO回归:
14、Ridge回归与LASSO回归比较
① L2-norm中,由于对各个维度的参数缩放在一个圆内缩放的,不可能导致有维度参数变为0的情况,那么也就不会产生稀疏解,实际应用中,数据的维度中是存在噪音和冗余的,稀疏的解可以找到有用的维度并且减少冗余,
提高回归预测的准确性和鲁棒性(减少了overfitting)(L1-norm可以达到最终解的稀疏性要求)
② Ridge模型具有较高的的准确性,鲁棒性以及稳定性,LASSO模型具有较高的求解速度
③ 如果既要考虑稳定性又要考虑求解速度,就使用Elasitc Net
15、Elasitc Net算法:
同时使用L1和L2正则的线性回归模型就称为Elasitc Net算法(弹性网络算法):
16、模型效果判断:
①
误差平方和,越接近0表示模型越拟合训练数据
②
MSE的平方根,作用于MSE相同
③
取值范围(负无穷,1],值越大表示模型越拟合训练数据;最优解是1,当模型预测为随机值的时候,有可能为负,若样本值恒为样本期望,
为0
④ TSS:总平方和TSS,表示样本之间的差异情况,是伪方差的m倍
⑤ RSS:残差平方RSS,表示预测值与样本值之间的差异情况,是MSE的m倍
17、梯度下降
① 目标函数求解:
② 初始化 (随机初始化,可以初始化为0)
③ 沿着负梯度方向迭代,更新后的使得
更小
:学习率,步长
④
18、批量梯度下降算法(BGD)
19、随机梯度下降算法(SGD)
20、BGD与SGD算法比较
① SGD比BGD速度快(迭代次数少)
② SGD在某些情况下(全局存在多个相对最优解/不是一个二次),SGD有可能跳出某些小的局部最优解,所以不会比BGD坏
③ BGD一定能够得到一个局部最优解(在线性回归模型中一定是得到一个全局最优解),SGD由于随机性的存在可能导致最终结果比BGD差
21、小批量梯度下降算法
小批量梯度下降算法可以保证算法训练过程速度比较快且最终参数训练的准确率
22、梯度下降详解
① 由于梯度下降法中负梯度方向作为变量的变化方向,所以有可能导致最终求解的值是局部最优解,所以在使用梯度下降算法的时候,需要做到:
学习率的选择:学习率过大,表示每次迭代更新的时候变化比较大,有可能跳过最优解,学习率过小,表示每次迭代更新的时候变化比较小,会导致速度变慢,等待时间比较长;
算法初始参数值的选择:初始值不同,最终获得的最小值也有可能不同,因为梯度下降法求解的是局部最优解,所以一般情况下,选择多次不同初始值运行算法,并最终返回损失函数最小情况下的结果值;
标准化:由于样本不同特征的取值范围不同,可能会导致在各个不同参数上迭代速度不同,为了减少特征值的影响,可以将特征进行标准化操作;
② BGD、SGD、MBGD的区别:
当样本量为m的时候,每次迭代BGD算法中对于参数值更新一次,SGD算法中对于参数值更新m次,MBGD算法中对于参数值更新m/n次,相对来讲SGD算法的更新速度最快;
SGD算法中对于每个样本都需要更新参数值,当样本值不太正常的时候,就有可能会导致本次的参数更新会产生相反的影响,也就是说SGD算法的结果并不是完全收敛的,而是在收敛结果出波动的;
SGD算法是每个样本都更新一次参数值,所以SGD算法特别适合样本数据量大的情况以及在线机器学习;
23、线性回归总结
① 算法模型:线性回归(Linear)、岭回归(Ridge)、LASSO回归、Elstic Net
② 正则化:L1-norm、L2-norm
③ 损失函数/目标函数:
④ 求解方式:最小二乘法(直接计算,目标函数是平方和损失函数)、梯度下降(BGD/SGD/MBGD)
24、Logistic回归
Logistic/sigmoid函数: 得到
25、Logistic回归及似然函数
假设 及
可推出
似然函数:
对数似然函数:
26、最大似然/极大似然函数的随机梯度
27、Logistic回归 参数的求解过程为(类似梯度下降方法)
28、极大似然估计与Logistic回归损失函数
29、Softmax回归
① Softmax回归是logistic回归的一般化,适用于k分类的问题,第k类的参数为向量 ,组成的二维矩阵为
② softmax函数的本质就是将一个k维的任意实数向量压缩(映射)成另一个k维的实数向量,其中向量中的每个元素取值都介于(0,1)之间
③ softmax回归概率函数为:
④ Softmax算法原理:
可得出:
⑤ softmax算法损失函数:
⑥ Softmax算法梯度下降法求解:
总结:
① 线性模型一般用于回归问题,Logistic和Softmax模型一般用于分类问题
② 求的主要方式是梯度下降算法,梯度下降算法是参数优化的重要手段,主要是SGD,适用于在线学习以及跳出局部极小解
③ Logistic和Softmax回归是实践中解决分类问题的重要方法
④ 广义线性模型对样本要求不必服从正态分布,只需要服从指数分布簇(二项分布、泊松分布、伯努利分布、指数分布等)即可;广义线性模型的自变量可以是连续的也可以是离散的