初级算法梳理——线性回归


1.机器学习基本概念

监督学习:已知要划分的类别,并且能够获得一定数量的类别已知的训练样本,这种情况下建立分类器的问题属于监督学习问题。例如KNN、线性回归、逻辑回归、SVM、决策树和随机森林、神经网络等。

无监督学习:事先不知道要划分的是什么类别,更没有类别已知的样本用作训练,在很多情况下甚至不知道有多少类别,我们要做的是根据样本特征将样本聚成几个类。这种情况下建立分类器的问题属于无监督学习问题。例如K-means、聚类分析、可视化和降维-PCA、关联性规则学习等。

泛化能力:Generalization Ability,是指机器学习算法对新样本的适应能力,也可以说是对新样本的预测能力。学习的目的是学到隐含在数据背后的规律,对具有同一规律的学习集以外的数据,经过训练的网络也能给出合适的输出,该能力称为泛化能力。

过拟合:把不该学的噪声的特征也学到了,在后期测试的时候不能很好地识别数据,模型泛化能力差。简单来讲就是在训练集上表现很好,但在测试集上却表现不好,没有效率。
解决办法
1.增加训练数据

  • 发生过拟合最常见的现象就是数据量太少而模型太复杂
  • 过拟合是由于模型学习到了数据的一些噪声特征导致,增加训练数据的量能够减少噪声的影响,让模型更多地学习数据的一般特征
  • 增加数据量有时可能不是那么容易,需要花费一定的时间和精力去搜集处理数据
    利用现有数据进行扩充或许也是一个好办法。例如在图像识别中,如果没有足够的图片训练,可以把已有的图片进行旋转,拉伸,镜像,对称等,这样就可以把数据量扩大好几倍而不需要额外补充数据
  • 注意保证训练数据的分布和测试数据的分布要保持一致,二者要是分布完全不同,那模型预测真可谓是对牛弹琴了

2.使用正则化约束

  • 在代价函数后面添加正则化项,可以避免训练出来的参数过大从而使模型过拟合。使用正则化缓解过拟合的手段广泛应用,不论是在线性回归还是在神经网络的梯度下降计算过程中,都应用到了正则化的方法。
  • 正则化是指约束模型的学习以减少过拟合的过程。如L1和L2正则化,正则化的一个最强大的特性就是能向损失函数增加“惩罚项”。所谓『惩罚』是指对损失函数中的某些参数做一些限制。最常见的惩罚项是L1和L2:
    L1惩罚项的目的是将权重的绝对值最小化
    L2惩罚项的目的是将权重的平方值最小化
    在这里插入图片描述

3.减少特征数

*欠拟合需要增加特征数,那么过拟合自然就要减少特征数。去除那些非共性特征,可以提高模型的泛化能力

4.调整参数和超参数

5.降低模型的复杂度

  • 欠拟合要增加模型的复杂度,那么过拟合正好反过来

6.使用Dropout

  • 这一方法只适用于神经网络中,即按一定的比例去除隐藏层的神经单元,使神经网络的结构简单化

7.提前结束训练

  • 即early stopping,在模型迭代训练时候记录训练精度(或损失)和验证精度(或损失),倘若模型训练的效果不再提高,比如训练误差一直在降低但是验证误差却不再降低甚至上升,这时候便可以结束模型训练了

欠拟合:指模型在训练集、验证集和测试集上均表现不佳的情况
1.模型复杂化

  • 对同一个算法复杂化。例如回归模型添加更多的高次项,增加决策树的深度,增加神经网络的隐藏层数和隐藏单元数等
  • 弃用原来的算法,使用一个更加复杂的算法或模型。例如用神经网络来替代线性回归,用随机森林来代替决策树等

2.增加更多的特征,使输入数据具有更强的表达能力

  • 特征挖掘十分重要,尤其是具有强表达能力的特征,往往可以抵过大量的弱表达能力的特征
  • 特征的数量往往并非重点,质量才是,总之强特最重要
  • 能否挖掘出强特,还在于对数据本身以及具体应用场景的深刻理解,往往依赖于经验

3.调整参数和超参数

  • 超参数包括:
    神经网络中:学习率、学习衰减率、隐藏层数、隐藏层的单元数、Adam优化算法中的β1β1和β2β2参数、batch_size数值等
    其他算法中:随机森林的树数量,k-means中的cluster数,正则化参数λ等

4.增加训练数据往往没有用

  • 欠拟合本来就是模型的学习能力不足,增加再多的数据给它训练它也没能力学习好

5.降低正则化约束

  • 正则化约束是为了防止模型过拟合,如果模型压根不存在过拟合而是欠拟合了,那么就考虑是否降低正则化参数λλ或者直接去除正则化项

交叉验证

  • 基本思想就是将原始数据分成训练集和测试集,训练集用来训练模型,测试集用来评价模型。

  • 交叉验证用于评估模型的预测性能,尤其是训练好的模型在新数据上的表现,可以在一定程度上减小过拟合。还可以从有限的数据中获取尽可能多的有效信息。

  • 通过对 k 个不同分组训练的结果进行平均来减少方差,因此模型的性能对数据的划分就不那么敏感。
    第一步,不重复抽样将原始数据随机分为 k 份。
    第二步,每一次挑选其中 1 份作为测试集,剩余 k-1 份作为训练集用于模型训练。
    第三步,重复第二步 k 次,这样每个子集都有一次机会作为测试集,其余机会作为训练集。在每个训练集上训练后得到一个模型,用这个模型在相应的测试集上测试,计算并保存模型的评估指标,
    第四步,计算 k 组测试结果的平均值作为模型精度的估计,并作为当前 k 折交叉验证下模型的性能指标
    原文:https://blog.csdn.net/aliceyangxi1987/article/details/73532651/


2.线性回归的原理

线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。这种函数是一个或多个称为回归系数的模型参数的线性组合。

回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析


3.线性回归损失函数、代价函数、目标函数

损失函数(Loss Function )是定义在单个样本上的,算的是一个样本的误差。
∣ h θ ( x ( i ) ) − y ( i ) ∣ |h_\theta(x^{(i)})-y^{(i)}| hθ(x(i))y(i)
代价函数(Cost Function )是定义在整个训练集上的,是所有样本误差的平均,也就是损失函数的平均。
J ( θ ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\theta)=\frac{1}{2m}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})^2 J(θ)=2m1i=1m(hθ(x(i))y(i))2
目标函数(Object Function)定义为:最终需要优化的函数。等于经验风险+结构风险(也就是Cost Function + 正则化项)。
1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ ∑ j = 1 m θ j 2 \frac{1}{2m}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})^2+\lambda\sum_{j=1}^m\theta_{j}^2 2m1i=1m(hθ(x(i))y(i))2+λj=1mθj2

4.优化方法

梯度下降法

梯度下降法是最早最简单,也是最为常用的最优化方法。梯度下降法的优化思想是用当前位置负梯度方向作为搜索方向,因为该方向为当前位置的最快下降方向,所以也被称为是最速下降法。由xn+1=xn− α∗f′(xn)可知,梯度下降算法是用平面拟合函数的局部曲面。
在这里插入图片描述
最速下降法越接近目标值,步长越小,前进越慢。所以在接近最优解的区域收敛速度明显变慢,利用梯度下降法求解需要很多次的迭代。在机器学习中,基于基本的梯度下降法发展了两种梯度下降方法,分别为随机梯度下降法和批量梯度下降法。(这里不做介绍)

4.2 牛顿法

对于牛顿法求极值点,考虑以下泰勒展开:
f(x+Δx)=f(x)+f′(x)Δx+1/2∗f′′(x)∗Δx2
同样我们希望左式最小,那么将左式看成是Δx的函数,当取合适的Δx值时,左边的式子达到极小值,此时导数为0。因此对上式进行求导数,得到公式: 0=f′(x)+f′′(x)∗Δx
此时可得到公式: xn+1=xn−f′(xn)/f′′(xn)
所以说牛顿下降法是用二次曲面来拟合函数的局部曲面,而梯度下降法是用一个平面去拟合当前的局部曲面,通常情况下,二次曲面的拟合会比平面更好,所以牛顿法选择的下降路径会更符合真实的最优下降路径。
在上面讨论的是2维情况,高维情况的牛顿迭代公式是:
在这里插入图片描述
其中H是hessian矩阵,定义为:
在这里插入图片描述
高维情况也可以用牛顿迭代求解,但是Hessian矩阵引入的复杂性,使得牛顿迭代求解的难度增加,解决这个问题的办法是拟牛顿法(Quasi-Newton methond)。

4.3 拟牛顿法

拟牛顿法的本质思想是改善牛顿法每次需要求解复杂的Hessian矩阵的逆矩阵的缺陷,它使用正定矩阵来近似Hessian矩阵的逆,从而简化了运算的复杂度。拟牛顿法和最速下降法一样只要求每一步迭代时知道目标函数的梯度。通过测量梯度的变化,构造一个目标函数的模型使之足以产生超线性收敛性。这类方法大大优于最速下降法,尤其对于困难的问题。另外,因为拟牛顿法不需要二阶导数的信息,所以有时比牛顿法更为有效。
主要过程是先推导出海塞矩阵需要满足的条件,即拟牛顿条件(也可以称为拟牛顿方程)。然后我们构造一个满足拟牛顿条件的近似矩阵来代替原来的海塞矩阵。
在这里插入图片描述
转载原文:https://blog.csdn.net/Cool_Pepsi/article/details/88864817


5.线性回归的评价指标

最常用的线性回归评价指标:

  • R Squared:衡量线性回归法最好的指标,也可以用Adjusted R Squared。
    在这里插入图片描述
    数学理解: 分母理解为原始数据的离散程度,分子为预测数据和原始数据的SSE,二者相除可以消除原始数据离散程度的影响。
  • MSE :均方误差
    在这里插入图片描述
  • RMSE:均方根误差
    在这里插入图片描述
  • MAE:评价绝对误差
    在这里插入图片描述

6.sklearn参数详解

LinearRegression(fit_intercept=True,normalize=False,copy_X=True,n_jobs=1)

(1)fit_intercept:是否有截据,如果没有则直线过原点。默认为True.

说明:是否对训练数据进行中心化。如果该变量为false,则表明输入的数据已经进行了中心化,在下面的过程里不进行中心化处理;否则,对输入的训练数据进行中心化处理。

(2)normalize:是否将数据归一化。

(3)copy_X:默认为True,当为True时,X会被copied,否则X将会被覆写.。(即经过中心化,标准化后,是否把新数据覆盖到原数据上)。

(4)n_jobs:默认值为1。计算时使用的核数。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值