网站首页 > 技术文章 正文
文章目录
- 前言
- 一元线性回归
- 多元线性回归
- 局部加权线性回归
- 多项式回归
- Lasso回归 & Ridge回归
- Lasso回归
- Ridge回归
- 岭回归和lasso回归的区别
- L1正则 & L2正则
- 弹性网络回归
- 贝叶斯岭回归
- Huber回归
- KNN
- SVM
- SVM
- 最大间隔
- 支持向量 & 支持向量平面
- 寻找最大间隔
- SVR
- CART树
- 随机森林
- GBDT
- boosting思想
- AdaBoost思想
- 提升树 & 梯度提升
- GBDT
- 面试题整理
- XGBOOST
- 面试题整理
- LightGBM
- XGBoost的缺点
- LightGBM的优化
- 基于Histogram的决策树算法
- 带深度限制的 Leaf-wise 算法
- 单边梯度采样算法
- 互斥特征捆绑算法
- 直接支持类别特征
- 支持高效并行
- Cache命中率优化
- 优缺点
- LightGBM与XGBoost的联系和区别
- 时间序列-ARIMA
- ARIMA
- ACF&PACF
- ACI&BIC
- 时间序列分析步骤
- 隐马尔科夫
- 马尔科夫链
- 隐马尔科夫(HMM)
- 什么样的问题需要HMM
- HMM模型的定义
- 一个HMM模型实例
- HMM模型的三个基本问题
前言
如果需要获取到这个【机器学习-常用回归算法归纳】更全面的文档的话帮忙转发、转发、转发一下然后再关注我私信回复“学习”得到获取方式吧!
内容太多,关注小编持续更新哟~
机器学习中关于解决回归问题的总结
注:以下线性回归中,均可采用梯度下降、最小二乘(交替)、牛顿法(拟牛顿)、坐标轴下降、正规方程解析解、最小角回归法 求得。下面整理只给出每个算法最常用的解法。
关于机器学习&深度学习中,损失、代价、目标、成本含义解释
- 损失函数:真实值与预测值的差距
- 代价函数:所有样本损失值加总 / 样本数
- 目标函数:损失函数加了正则项
- 成本函数:成本函数和代价函数是等价的
注:如以下涉及到的用词错误,敬请谅解
一元线性回归
百度百科
一元线性回归是分析只有一个自变量(自变量x和因变量y)线性相关关系的方法。一个经济指标的数值往往受许多因素影响,若其中只有一个因素是主要的,起决定性作用,则可用一元线性回归进行预测分析。
白话原理
形如:y = w x + b 。只有一个自变量和一个因变量的直线方程,目的是找到最优的回归系数w和偏置b,使得预测值 y ^ 和真实值 y的损失最小。
代价函数
? 均方误差:
- J(θ)=2m1?i=0∑m?(yi?hθ?(xi))2
很多教材上给出的是误差平方和,其实都可以,无非就是分母不一样。这里均方根多除一个2是方便梯度下降求偏导。
求解方式
? 梯度下降,直观理解就是代价函数曲线上的“下山过程”,其实就是对代价函数求偏导。又分为批量梯度下降BGD、小批量梯度下降MBGD、随机梯度下降SGD。
? 批量梯度下降法是最原始的形式,它是指在每一次迭代时使用所有样本来进行梯度的更新。优点是一次迭代是对所有样本进行计算,可以利用矩阵并行计算。缺点是当样本数量级很大时,整个训练过程会非常慢。
? 小批量梯度下降是机器学习和深度学习最为常用的优化方法。是对BGD和SGD的一个折中。其思想是每次迭代使用batch_size个样本来对参数进行更新。优点是通过矩阵运算,每次在一个batch上优化参数并不会比单个数据慢太多。其次是每使用一个batch可以大大减小收敛所需要的迭代次数,同时可以使收敛到的结果更加接近梯度下降的效果。缺点就是batch_size阈值的选择。
? 随机梯度下降是每次迭代使用一个样本来对参数进行更新。使得训练速度加快。优点是由于不是在全部训练数据上的损失函数,而是在每轮迭代中,随机优化某一条训练数据上的损失函数,这样每一轮参数的更新速度大大加快。缺点是准确度下降,由于单个样本并不能代表全体样本的趋势,所以很可能会局部最优甚至无法做到线性收敛。
优缺点 & 适用场景
一元线性方程比较简单,欠拟合风险较大,所以一般不用。
多元线性回归
百度百科
? 在回归分析中,如果有两个或两个以上的自变量,就称为多元回归。事实上,一种现象常常是与多个因素相联系的,由多个自变量的最优组合共同来预测或估计因变量,比只用一个自变量进行预测或估计更有效,更符合实际。因此多元线性回归比一元线性回归的实用意义更大。
白话原理
? 形如:y = w 1 x 1 + w 2 x 2 + w 3 x 3 … + b y = w_1x_1 + w_2x_2 + w_3x_3 \ldots + by=w1x1+w2x2+w3x3…+b 。相比于一元线性回归,多元线性回归(即多变量回归)更加符合实际,因为我们实际需求大多都是多个特征的。同样的我们需要求解一组参数 w ww 和 偏置 b bb,来使得预测值和真实值的误差最小。当w转成向量后可得预测函数如下:
- h(x)=wTx+b
注:很多文献上都喜欢用 θ θθ 表示权重向量,即上述的 w ww
代价函数
? 均方误差
求解方式
? 梯度下降、最小二乘
? 最小二乘的思想就是求多元函数极值,说白了就是对各个w 求偏导然后使偏导为0。这样P个参数就对应P个方程需要求解,可以说计算量比较大。而梯度下降可以看做是更简单的一种求最小二乘法最后一步解方程 的方法。
优缺点 & 适用场景
- 优点是不需要对数据进行归一化处理,原始数据进行计算参数,不存在量纲的问题。
- 缺点是计算复杂度较高,在特征比较多的时候,计算量很大。
局部加权线性回归
百度百科
? 局部加权线性回归(Local Weights Linear Regression)也是一种线性回归。不同的是,普通线性回归是全局线性回归,使用全部的样本计算回归系数。而局部加权线性回归,通过引入权值(核函数),在预测的时候,只使用与测试点相近的部分样本来计算回归系数。
白话原理
? 线性回归的一个问题是有可能出现欠拟合,因为它求的是具有最小均方误差的无偏估计,欠拟合是无法达到我们想要的预测效果,所以有些方法允许在估计中引入一些偏差,从而降低预测的均方误差。局部线性加权的思想是对待预测点附近的每个点赋予一个权重,然后在带权的样本上基于最小均方误差来进行回归。
? 换句话说,在局部加权线性回归中,我们在预测前对于每个点都赋予一个权重,离需要预测点越近的点权重越大,反之权重越小。其它思想和多元线性回归基本一致,加权体现在代价函数上。
代价函数
其中,x是我们的要预测的点,k是我们需要指定的参数,他控制了权值随距离变化的速率。从公式可以看到,加权函数只有一个系数,那就是分母上的K,当K取很小时,e x p expexp 得到的很多值均趋于0,此时只有很少一部分样本用于训练,而当K取很大时,e x p expexp 的值不会很快趋于0,从而会有一大部分点用于训练,我们可以通过调整K的值,决定这个局部的大小究竟是多大。
- k值越大,权重随距离变化的速率越小,预测某个点时用到的数据点就更多。
- k值越小,权重随距离变化的速率越大,预测某个点时用到的数据点就更少。
- k值的选择是很重要的,k值选择过大,可能出现过拟合问题,k值选择过小,可能出现欠拟合问题。
- 经验来说可调范围区间为:k ∈ [0.01, .01],K=1可以说加权对样本没什么影响。
求解方式
? 梯度下降、正规方程
优缺点 & 适用场景
? 优点就是通过核函数加权来预防欠拟合,缺点也很明显K需要调试。当多元线性回归过拟合的时候,可以尝试高斯核局部加权来预防过拟合。
多项式回归
百度百科
? 多项式回归,回归函数是回归变量多项式的回归。多项式回归模型是线性回归模型的一种,此时回归函数关于回归系数是线性的。由于任一函数都可以用多项式逼近,因此多项式回归有着广泛应用
? 研究一个因变量与一个或多个自变量间多项式的回归分析方法,称为多项式回归(Polynomial Regression)。如果自变量只有一个时,称为一元多项式回归;如果自变量有多个时,称为多元多项式回归。在一元回归分析中,如果依变量y与自变量x的关系为非线性的,但是又找不到适当的函数曲线来拟合,则可以采用一元多项式回归。
白话原理
? 多项式回归是一元线性回归及多元线性回归的扩展。在原有线性方程的基础上增加了自变量x的几次项,可以说是变相的增加了特征。譬如一元多项式回归,当多项式项数为n时,相当于多了n个特征。多元多项式也是这个道理,所以就有种特征交叉的意思了。
代价函数
? 均方误差
求解方式
? 梯度下降、最小二乘
优缺点 & 适用场景
? 当我们要拟合的是曲线而不是直线时,就可以用多项式回归。通过控制项数来用线性模型拟合非线性数据。相比于线性回归应用更加广泛,因为我们实际场景中的数据大多呈现非线性关系。因为项数的存在所以原始数据维度得到提高,使得方程更好的拟合高维的数据,提高模型的泛化能力。缺点就是多项式的项数是需要调试的。
Lasso回归 & Ridge回归
Lasso回归
百度百科
? LASSO是由1996年Robert Tibshirani首次提出,全称Least absolute shrinkage and selection operator。该方法是一种压缩估计。它通过构造一个惩罚函数得到一个较为精炼的模型,使得它压缩一些回归系数,即强制系数绝对值之和小于某个固定值;同时设定一些回归系数为零。因此保留了子集收缩的优点,是一种处理具有复共线性数据的有偏估计。
白话原理
? 就是在线性回归的基础上,代价函数里加了L1正则。
代价函数
求解方式
? 坐标轴下降法、最小角回归法
? 为什么lasso回归的求解方式不再是梯度下降、最小二乘?因为lasso回归对损失函数加了L1惩罚。L1范数用的是绝对值之和,导致损失函数有不可导的点,所以最小二乘、梯度下降、牛顿和拟牛顿就统统失效了。
因为实际应用中,不管是回归还是变量选择还是降维,lasso回归应用并不多,所以这里对坐标轴下降和最小角回归不做解释。
优缺点 & 适用场景
? L1正则化可以使得一些特征的系数变小,甚至还使一些绝对值较小的系数直接变为0,所以对于高纬的特征数据,尤其是线性关系是稀疏的,就可以用lasso回归,也是起到一定的降维作用。
Ridge回归
百度百科
? 岭回归(英文名:ridge regression, Tikhonov regularization)是一种专用于共线性数据分析的有偏估计回归方法,实质上是一种改良的最小二乘估计法,通过放弃最小二乘法的无偏性,以损失部分信息、降低精度为代价获得回归系数更为符合实际、更可靠的回归方法,对病态数据的拟合要强于最小二乘法。
白话原理
? 就是在线性回归的基础上,代价函数里加了L2正则。
代价函数
求解方式
? 最小二乘、梯度下降
岭回归和lasso回归的区别
- 相同:
- 都可以用来解决线性回归的过拟合问题。
- 不同:
- lasso 可以用来做特征选择,而 ridge 不行。或者说,lasso 更容易使得权重变为 0,而 ridge 更容易使得权重接近 0。
- 从贝叶斯角度看,L1 正则等价于参数 的先验概率分布满足拉普拉斯分布,而 L2 正则 等价于参数 的先验概率分布满足高斯分布。
关于lasso回归可以做降维的说法,请看下图:
左图对应lasso回归、右图对应岭回归。两图是对应于两种方法的等高线与约束。红色椭圆代表的是随着 λ \lambdaλ 的变化所得到的残差平方和。β ^ 为椭圆的中心点,为对应线性模型的最小二乘估计。左右两个图的区别在于约束域,即对应的蓝色部分。
? 等高线和约束域的切点就是目标函数的最优价。岭回归对应方法的约束是圆,其切点只会存在于圆周上,不会与坐标轴相切,则在任一维度上的取值都不为0,因此没有稀疏。
? 对于lasso回归,其约束域是正方形,会存在坐标轴的切点,使得部分维度特征权重为0,因此很容易产生稀疏解。
? 所以lasso回归可以达到变量选择的效果,将不显著的变量系数直接压缩至0,而岭回归对原本的系数进行了一定程度的压缩,但是任一系数都不会压缩至0。
L1正则 & L2正则
L1和L2是正则化项,是为了限制模型的参数,防止模型过拟合而加在损失函数后面的一项。
- L1是模型各参数绝对值之和,L1更趋向于少量特征,其它特征为0,因为最优参数很大概率容易出现在坐标轴上,从而导致产生系数矩阵,从而可以进行庞大特征数量下的特征选择。
- L2为各个参数的平方和的开方。L2会选择更多矩阵,但这些矩阵趋向于0。L2正则能够有效的防止模型过拟合,解决非满秩下求逆困难的问题。
为什么只正则化参数,不再加上参数 呢?
? 因为通常是一个高维参数矢量,已经可以表达高偏差问题,可能包含有很多参数,我们不可能拟合所有参数,而只是单个数字,所以几乎涵盖所有参数,而不是,如果加了参数,其实也没太大影响,因为只是众多参数中的一个,所以通常可以省略不计,如果想加上这个参数,也是完全没问题的。
弹性网络回归
白话原理
? 弹性网络回归ElasticNet回归的思想就是L1正则和L2正则结合来对参数进行更新。在线性回归的基础上,代价函数加了L1正则和L2正则,即lasso回归和岭回归的结合。
代价函数
求解方式
? 最小二乘、梯度下降
优缺点 & 适用场景
? 当我们发现用Lasso回归太过(太多特征被稀疏为0),而岭回归也正则化的不够(回归系数衰减太慢)的时候,可以考虑使用ElasticNet回归来综合,得到比较好的结果。
贝叶斯岭回归
百度百科
? 贝叶斯线性回归(Bayesian linear regression)是使用统计学中贝叶斯推断(Bayesian inference)方法求解的线性回归(linear regression)模型 [1-2] 。
? 贝叶斯线性回归将线性模型的参数视为随机变量(random variable),并通过模型参数(权重系数)的先验(prior)计算其后验(posterior)。贝叶斯线性回归可以使用数值方法求解,在一定条件下,也可得到解析型式的后验或其有关统计量。
? 贝叶斯线性回归具有贝叶斯统计模型的基本性质,可以求解权重系数的概率密度函数,进行在线学习以及基于贝叶斯因子(Bayes factor)的模型假设检验。
先来回顾涉及到的相关概念:
概率乘法公式
全概率公式
设 A1~ A i 是 Ω 的一个划分
贝叶斯公式
贝叶斯定理
它的意思就是:在事件B发生的情况下,事件A发生的概率。
其中,P(A)叫做先验概率,P(B|A)叫做似然,P(B)叫做证据因子,P(A|B)叫做后验概率。
朴素贝叶斯
朴素贝叶斯的”朴素“就在于它假设特征间是独立的,从而变成了“低配版的贝叶斯”。相较于贝叶斯来说,优点就是可以减少需要估计的参数,缺点就是会牺牲一定的准确率。
注:关于朴素贝叶斯这里不再详细阐述,有兴趣可以查一下,包括其中知识点如 拉普拉斯平滑、多项式朴素贝叶斯、伯努利朴素贝叶斯、高斯朴素贝叶斯等。
极大似然估计
- 似然估计:给定结果的情况下发生的概率
- 极大似然:事情已经发生了,当未知参数等于多少时,能让这个事情发生的概率最大,本质意义上是我们在很多参数中选择一个能使数据出现概率最大的参数。
共轭先验
如果先验分布与后验分布属于同一类型的分布,那么我们将先验分布称为似然函数的共轭先验。比如,高斯分布对于高斯类型的似然函数是其自身的共轭先验,也就是说如果先验是高斯,似然函数也是高斯,那么后验也会是高斯。
贝叶斯线性回归公式引入
由线性回归可得,数据定义如下:
优缺点 & 适用场景
? 贝叶斯回归的优点就是对数据有自适应能力,可以重复利用数据并防止过拟合,因为我们在估计的过程中可以引入正则项,比如在贝叶斯线性回归的基础上引入L2正则就是贝叶斯岭回归。缺点就是学习过程开销太大。当特征数在10个以为,可以尝试贝叶斯回归。
Huber回归
白话原理
? 对于回归问题一般采用MSE作为代价函数,但是如果我们数据中异常值比较严重,导致训练后模型给出的 y ^和真实的 y 偏差较大,这样在用平方作为loss,模型很容易过拟合,并带偏最后指标。
? 所以为了增加平方损失对噪声点的鲁棒性,Huber损失应运而生。Huber回归就是在线性回归的基础上,将损失函数替换为Huber损失。
代价函数
式中的 δ 可以理解为一个边界,用于判断离群点。当在这个边界内的数据默认使用MSE损失,大于这个边界的数据将loss减小,使用线性函数。这种方法能降低离群点对于loss计算的权重,避免过拟合。
求解方式
? 梯度下降、最小二乘
优缺点 & 适用场景
? 结合了L1损失和L2损失的优点,适用于异常点比较严重的数据集。同时缺点就是超参δ是需要调整的,当δ趋向于0时,Huber损失会趋向于MSE;当δ趋向于无穷时,Huber损失会趋向于MAE。
KNN
百度百科
? 邻近算法,或者说K最近邻(KNN,K-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一。所谓K最近邻,就是K个最近的邻居的意思,说的是每个样本都可以用它最接近的K个邻近值来代表。近邻算法就是将数据集合中每一个记录进行分类的方法。KNN算法的核心思想是,如果一个样本在特征空间中的K个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。KNN方法在类别决策时,只与极少量的相邻样本有关。
白话原理
? 本着物以类聚人以群分的思想,KNN的原理也非常简单。要判断一个新样本的类别,就要看它的邻居是谁。K个邻居即为新样本在样本空间中距离最近的K个点。KNN有三个基本要素:距离度量、K值选择、决策规则。算法步骤就是首先计算已知类别数据集中的点与当前点之间的聚类,然后对距离进行升序排序,返回K个邻近点的下标。如果是分类问题那就是少数服从多数原则。如果是回归问题,直接对K个近邻的y取均值即可,所以KNN不需要训练,只要对于一个新样本点利用距离最近的K个点的标签就可以得出结果。
距离度量
K值选择
- 如果K值过小,会降低精度
- 如果K值过大,会增加噪声
- K一般低于训练样本数的平方根
决策规则
- 分类:多数表决
- 回归:均值、加权平均
优缺点 & 适用场景
? K值的调试是需要花费时间的。普通的KNN计算时间较长,因为要线性扫描样本空间来计算新样本与所有样本的距离,所以数据越多效率越低。当然改进的方法如KD树、球树等。对于普通的预测场景建议放弃KNN。对于需要一个特别容易解释的模型的时候,可以尝试一下。比如需要向用户解释原因的推荐算法、比如将文本分词,统计词频后判断文章类型、比如电商 视频网站找到与你类似的用户,根据它们的选择推荐你可能感兴趣的物品(类似于协同过滤)。
SVM
百度百科
? 支持向量机(Support Vector Machine, SVM)是一类按监督学习(supervised learning)方式对数据进行二元分类的广义线性分类器(generalized linear classifier),其决策边界是对学习样本求解的最大边距超平面(maximum-margin hyperplane)。
? SVM使用铰链损失函数(hinge loss)计算经验风险(empirical risk)并在求解系统中加入了正则化项以优化结构风险(structural risk),是一个具有稀疏性和稳健性的分类器 [2] 。SVM可以通过核方法(kernel method)进行非线性分类,是常见的核学习(kernel learning)方法之一 [4] 。
SVR:即支持向量机回归。我们通常所说的SVM,它其实就是在特征空间中找间隔最大的超平面的广义线性分类器。对于线性可分和线性不可分问题都有着求硬间隔最大和软间隔最大的方法。SVM在这里不再过多阐述,有兴趣的读者可以查阅相关书籍。
先来回顾一下SVM相关知识
SVM
最大间隔
? 上面也提到了,SVM是在特征空间中找间隔最大的超平面,以此来进行分类的。对于线性可分问题,我们需要求硬间隔最大即可。对于非线性可分问题,我们需要通过核函数映射到高维空间,计算软间隔最大即可。下面以线性可分为例,我们来看一下SVM的形式化表示。
支持向量 & 支持向量平面
? 支持向量定义为:距超平面距离最近的那些点。如上图所示到超平面距离为d1、d 2 的点。支持向量平面就是恰好过这些点的平面。二分类有两个支持向量平面,这两个平面是平行的。超平面是位于这两个平面中间的。如下图所示,a aa、b bb 即为支持向量平面,c cc 为超平面。我们只需要使 a aa、b bb 的间隔最大,那么超平面的分隔效果就越好。
猜你喜欢
- 2024-10-11 一篇值得收藏的ML数据预处理原理与实践文章
- 2024-10-11 机器爱学习12——欠拟合、过拟合之判断方法、原因及解决方法
- 2024-10-11 向量范数在机器学习中的应用:你真的了解吗?
- 2024-10-11 06-人人都懂的人工智能:正则化技术防止模型过拟合
- 2024-10-11 为什么反物质如此稀少?对称性告诉你答案
- 2024-10-11 算法岗面试「完整脉络」梳理:手推公式、通用问题、常见算法
- 2024-10-11 L2正则化为什么能够使得模型更简单?是因为这
- 2024-10-11 稀疏位图算法RoaringBitmap 稀疏图是指零元素非常少的矩阵
- 2024-10-11 机器学习——线性回归 线性回归教程
- 2024-10-11 PyTorch(八)——梯度下降、优化器、偏差方差与正则化
你 发表评论:
欢迎- 最近发表
-
- 在 Spring Boot 项目中使用 activiti
- 开箱即用-activiti流程引擎(active 流程引擎)
- 在springBoot项目中整合使用activiti
- activiti中的网关是干什么的?(activiti包含网关)
- SpringBoot集成工作流Activiti(完整源码和配套文档)
- Activiti工作流介绍及使用(activiti工作流会签)
- SpringBoot集成工作流Activiti(实际项目演示)
- activiti工作流引擎(activiti工作流引擎怎么用)
- 工作流Activiti初体验及在数据库中生成的表
- Activiti工作流浅析(activiti6.0工作流引擎深度解析)
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)