求解下列方程式最大值时m,n,x,y分别为多少? 15n+4mnx+3nx+20y+3my

以下内容来自Pinard-博客园的学习笔记,总结如下:

1 线性回归的模型函数和损失函数

有m个样本,每个样本对应于n维特征和一个结果输出,如下:

对于 n 维特征的样本数据,如果使用线性回归,那么对应的模型是这样的:

n\times1 的向量,里面有 n 个代数法的参数。 Xm\times n 维矩阵。 m 代表样本个数, n 代表特征数。

得到了模型,需要求出损失函数,一般线性回归用均方误差作为损失函数。损失函数的代数法表示如下:

线性回归,还有其他的常用算法,比如牛顿法和拟牛顿法,这里不详细描述。

3 线性回归的推广:多项式回归

4 线性回归的推广:广义线性回归

为了防止模型的过拟合,在建立线性模型的时候经常需要加入正则化项。一般有 L_{1} 正则化和 L_{2} 正则化。

(1)线性回归的 L_{1} 正则化通常称为 Lasso 回归。

它和一般线性回归的区别是在损失函数上增加了一个 L_{1} 正则化的项, L_{1} 正则化的项有一个常数系数 \alpha 来调节损失函数的均方差项和正则化项的权重,具体 Lasso 回归的损失函数表达式如下:

Lasso 回归可以使得一些特征的系数变小,甚至还是一些绝对值较小的系数直接变为0。增强模型的泛化能力。

(2)线性回归的 L_{2} 正则化通常称为 Ridge 回归。

它和一般线性回归的区别是在损失函数上增加了一个 L_{2} 正则化的项,和 Lasso 回归的区别是 Ridge 回归的正则化项是 L_{2} 范数,而 Lasso 回归的正则化项是 L_{1} 范数。

具体 Ridge 回归的损失函数表达式如下:

Ridge 回归在不抛弃任何一个特征的情况下,缩小了回归系数,使得模型相对而言比较的稳定,但和 Lasso 回归比,这会使得模型的特征留的特别多,模型解释性差。

Ridge 回归的求解比较简单,一般用最小二乘法。这里给出用最小二乘法的矩阵推导形式,和普通线性回归类似。

除了上面这两种常见的线性回归正则化,还有一些其他的线性回归正则化算法,区别主要就在于正则化项的不同,和损失函数的优化方式不同。

Lasso 回归有时也叫做线性回归的 L_{1} 正则化,和 Ridge 回归的主要区别救赎在正则化项。

Lasso 回归使得一些系数变小,甚至还是一些绝对值较小的系数直接变为0,因此特别适用于参数数目缩减与参数的选择,因而用来估计稀疏参数的线性模型。

但是 Lasso 回归有一个很大的问题,就是它的损失函数不是连续可导的,由于 L_{1} 范数用的是绝对值之和,导致损失函数有不可导的点。也就是说,我们的最小二乘法,梯度下降法,牛顿法与拟牛顿法对它统统失效了。那我们怎么才能求有这个 L_{1} 范数的损失函数极小值呢?

7 用坐标轴下降法求解 Lasso 回归

坐标轴下降法顾名思义,是沿着坐标轴的方向去下降,这和梯度下降不同。梯度下降是沿着梯度的负方向下降。不过梯度下降和坐标轴下降的共性就都是迭代法,通过启发式的方式一步步迭代求解函数的最小值。

于是我们的优化目标就是在 \thetan 个坐标轴上(或者说向量的方向上)对损失函数做迭代的下降,当所有的坐标轴上的 \theta_{i}(i =1,2,...,n) 都达到收敛时,我们的损失函数最小,此时的

\theta 即为我们要求的结果。

下面我们看看具体的算法过程:

以上就是坐标轴下降法的求极值过程,可以和梯度下降做一个比较:

a) 坐标轴下降法在每次迭代中在当前点处沿一个坐标方向进行一维搜索 ,固定其他的坐标方向,找到一个函数的局部极小值。而梯度下降总是沿着梯度的负方向求函数的局部最小值。

b) 坐标轴下降优化方法是一种非梯度优化算法。在整个过程中依次循环使用不同的坐标方向进行迭代,一个周期的一维搜索迭代过程相当于一个梯度下降的迭代。

c) 梯度下降是利用目标函数的导数来确定搜索方向的,该梯度方向可能不与任何坐标轴平行。而坐标轴下降法是利用当前坐标方向进行搜索,不需要求目标函数的导数,只按照某一坐标方向进行搜索最小值。

d) 两者都是迭代方法,且每一轮迭代,都需要O(mn)的计算量(m为样本数,n为系数向量维度)

8 用最小角回归法求解 Lasso 回归

最小角回归法(Least Angle Regression, LARS)。在介绍最小角回归前,我们先看看两个预备算法。

前向选择算法的原理是一种典型的贪心算法,要解决的问题是对于 Y=X\theta 这样的线性关系,如何求解系数向量 \theta 的问题。其中 Ym\times1 的向量, Xm\times n 矩阵,

当算法在 \varepsilon 很小的时候,可以很精确的给出最优解,其计算的迭代次数也是大大的增加。和前向选择算法相比,前向梯度算法更加精确,但是更加复杂。

8.3 最小角回归算法

最小角回归(Least Angle Regression, LARS)算法对前向梯度算法和前向选择算法做了折中,保留了前向梯度算法一定程度的精确性,同时简化了前向梯度算法一步步迭代的过程。

最小角回归法是一个适用于高维数据的回归算法,其主要的优点有:

1)特别适合于特征维度n 远高于样本数m的情况。

2)算法的最坏计算复杂度和最小二乘法类似,但是其计算速度几乎和前向选择算法一样。

3)可以产生分段线性结果的完整路径,这在模型的交叉验证中极为有用。

由于LARS的迭代方向是根据目标的残差而定,所以该算法对样本的噪声极为敏感。

Lasso 回归是在 Ridge 回归的基础上发展起来的,如果模型的特征非常多,需要压缩,那么 Lasso 回归是很好的选择。一般的情况下,普通的线性回归模型就够了。

9.1 获取数据,定义问题

这里我们用UCI大学公开的机器学习数据来跑线性回归。

里面是一个循环发电场的数据,共有9568个样本数据,每个数据有5列,分别是:AT(温度), V(压力), AP(湿度), RH(压强), PE(输出电力)。

我们的问题是得到一个线性的关系,对应PE是样本输出,而AT/V/AP/RH这4个是样本特征, 机器学习的目的就是得到一个线性回归模型,即:

下载后的数据可以发现是一个压缩文件,解压后可以看到里面有一个xlsx文件,我们先用excel把它打开,接着“另存为“”csv格式,保存下来,后面我们就用这个csv来运行线性回归。

打开这个csv可以发现数据已经整理好,没有非法数据,因此不需要做预处理。但是这些数据并没有归一化,也就是转化为均值0,方差1的格式。后面scikit-learn在线性回归时会先帮我们把归一化搞定。

先把要导入的库声明了:

接着可以用pandas读取数据了:

测试读取数据是否成功:

运行结果如下,说明pandas读取数据成功:

9.4 准备运行算法的数据

结果是(9568, 5)。说明我们有9568个样本,每个样本有5列。

现在我们开始准备样本特征X,我们用AT, V,AP和RH这4个列作为样本特征。

可以看到X的前五条输出如下:

接着我们准备样本输出y, 我们用PE作为样本输出。

可以看到y的前五条输出如下:

9.5 划分训练集和测试集

把X和y的样本组合划分成两部分,一部分是训练集,一部分是测试集,代码如下:

查看下训练集和测试集的维度:

可以看到75%的样本数据被作为训练集,25%的样本被作为测试集。

用scikit-learn的线性模型来拟合我们的问题了。scikit-learn的线性回归算法使用的是最小二乘法来实现的。代码如下:

拟合完毕后,我们看看我们的需要的模型系数结果:

这样我们就得到了在步骤1里面需要求得的5个值。也就是说PE和其他4个变量的关系如下:

需要评估我们的模型的好坏程度,对于线性回归来说,我们一般用均方差(Mean Squared Error, MSE)或者均方根差(Root Mean Squared Error, RMSE)在测试集上的表现来评价模型的好坏。

我们看看我们的模型的MSE和RMSE,代码如下:

得到了MSE或者RMSE,如果我们用其他方法得到了不同的系数,需要选择模型时,就用MSE小的时候对应的参数。

比如这次我们用AT, V,AP这3个列作为样本特征。不要RH, 输出仍然是PE。代码如下:

可以看出,去掉RH后,模型拟合的没有加上RH的号,MSE变大了。

通过交叉验证来持续优化模型,代码如下,我们采用10折交叉验证,即cross_val_predict中的cv参数为10:

可以看出,采用交叉验证模型的MSE比第6节的大,主要原因是我们这里是对所有折的样本做测试集对应的预测值的MSE,而第6节仅仅对25%的测试集做了MSE。两者的先决条件并不同。

画出真实值和预测值的变化关系,离中间的直线y=x直接越近的点代表预测损失越低。代码如下:

Ridge回归的损失函数表达形式是: 

算法需要解决的就是在找到一个合适的超参数 \alpha 情况下,求出使 J(\theta) 最小的 \theta 。一般可以用梯度下降法和最小二乘法来解决这个问题。scikit-learn用的是最小二乘法。

10.2 数据获取与预处理

这里我们仍然用UCI大学公开的机器学习数据来跑Ridge回归。

里面是一个循环发电场的数据,共有9568个样本数据,每个数据有5列,分别是:AT(温度), V(压力), AP(湿度), RH(压强), PE(输出电力)。

我们的问题是得到一个线性的关系,对应PE是样本输出,而AT/V/AP/RH这4个是样本特征, 机器学习的目的就是通过调节超参数 \alpha 得到一个线性回归模型,即:

下载后的数据可以发现是一个压缩文件,解压后可以看到里面有一个xlsx文件,我们先用excel把它打开,接着“另存为“”csv格式,保存下来,后面我们就用这个csv来运行Ridge回归。

这组数据并不一定适合用Ridge回归模型,实际上这组数据是高度线性的,使用正则化的Ridge回归仅仅只是为了讲解方便。

10.3 数据读取与训练集、测试集划分

先把要导入的库声明了:

接着用pandas读取数据:

用AT, V,AP和RH这4个列作为样本特征。用PE作为样本输出:

接着把数据集划分为训练集和测试集:

要运行Ridge回归,我们必须要指定超参数 \alpha 。先随机指定一个(比如1),后面我们会讲到用交叉验证从多个输入超参数 \alpha 中快速选择最优超参数的办法。

训练完了,可以看看模型参数是多少:

也就是说我们得到的模型是:

我们假设了超参数α为1, 实际上我们并不知道超参数α取多少最好,实际研究是需要在多组自选的α中选择一个最优的。scikit-learn提供了一个交叉验证选择最优α的API,下面我们就用这个API来选择α。

这里我们假设我们想在这10个α值中选择一个最优的值。代码如下:

输出结果为:7.0,说明在我们给定的这组超参数中, 7是最优的α值。

通过Ridge回归的损失函数表达式可以看到,α越大,那么正则项惩罚的就越厉害,得到回归系数 \theta 就越小,最终趋近与0。而如果α越小,即正则化项越小,那么回归系数 \theta 就越来越接近于普通的线性回归系数。

接着我们自己生成一个10 \times 10的矩阵X,表示一组有10个样本,每个样本有10个特征的数据。生成一个10 \times 1的向量y代表样本输出。

这样我们的数据有了,接着就是准备超参数α了。我们准备了200个超参数,来分别跑 Ridge回归。准备这么多的目的是为了后面画图看α和θ的关系。

有了这200个超参数α,我们做200次循环,分别求出各个超参数对应的θ(10个维度),存起来后面画图用。

有了200个超参数α,以及对应的θ,我们可以画图了。我们的图是以α为x轴,θ的10个维度为y轴画的。代码如下:

的10个维度都趋于线性回归的回归系数。

scikit-learn对于线性回归提供了比较多的类库,这些类库都可以用来做线性回归分析,本文就对这些类库的使用做一个总结,重点讲述这些线性回归算法库的不同和各自的使用场景。

线性回归的目的是要得到输出向量 Y 和输入特征 X 之间的线性关系,求出线性回归系数 \theta ,即

为了得到线性回归系数θ,我们需要定义一个损失函数,一个极小化损失函数的优化方法,以及一个验证算法的方法。损失函数的不同,损失函数的优化方法的不同,验证方法的不同,就形成了不同的线性回归算法。scikit-learn中的线性回归算法库可以从这这三点找出各自的不同点。

LinearRegression类就是最常见普通的线性回归,它的损失函数也是最简单的,如下:

对于这个损失函数,一般有梯度下降法和最小二乘法两种极小化损失函数的优化方法,而scikit中的LinearRegression类用的是最小二乘法。通过最小二乘法,可以解出线性回归系数θ为:

LinearRegression类并没有用到交叉验证之类的验证方法,需要我们自己把数据集分成训练集和测试集,然后训练优化。

一般来说,只要我们觉得数据有线性关系,LinearRegression类是我们的首先。如果发现拟合或者预测的不好,再考虑用其他的线性回归库。如果是学习线性回归,推荐先从这个类开始第一步的研究。

由于第一节的LinearRegression没有考虑过拟合的问题,有可能泛化能力较差,这时损失函数可以加入正则化项,如果加入的是L2范数的正则化项,这就是Ridge回归。损失函数如下:

Ridge回归在不抛弃任何一个特征的情况下,缩小了回归系数,使得模型相对而言比较的稳定,不至于过拟合。

对于这个损失函数,一般有梯度下降法和最小二乘法两种极小化损失函数的优化方法,而scikit中的Ridge类用的是最小二乘法。通过最小二乘法,可以解出线性回归系数θ为:

Ridge类并没有用到交叉验证之类的验证方法,需要我们自己把数据集分成训练集和测试集,需要自己设置好超参数α。然后训练优化。

一般来说,只要我们觉得数据有线性关系,用LinearRegression类拟合的不是特别好,需要正则化,可以考虑用Ridge类。但是这个类最大的缺点是每次我们要自己指定一个超参数α,然后自己评估α的好坏,比较麻烦,一般我都用下一节讲到的RidgeCV类来跑Ridge回归,不推荐直接用这个Ridge类,除非你只是为了学习Ridge回归。

RidgeCV类的损失函数和损失函数的优化方法完全与Ridge类相同,区别在于验证方法。

RidgeCV类对超参数α使用了交叉验证,来帮忙我们选择一个合适的α。在初始化RidgeCV类时候,我们可以传一组备选的α值,10个,100个都可以。RidgeCV类会帮我们选择一个合适的

α。免去了我们自己去一轮轮筛选α的苦恼。  

一般来说,只要我们觉得数据有线性关系,用LinearRegression类拟合的不是特别好,需要正则化,可以考虑用RidgeCV类。不是为了学习的话就不用Ridge类。为什么这里只是考虑用RidgeCV类呢?因为线性回归正则化有很多的变种,Ridge只是其中的一种。所以可能需要比选。如果输入特征的维度很高,而且是稀疏线性关系的话,RidgeCV类就不合适了。这时应该主要考虑下面几节要讲到的Lasso回归类家族。

线性回归的L1正则化通常称为Lasso回归,它和Ridge回归的区别是在损失函数上增加了的是L1正则化的项,而不是L2正则化项。L1正则化的项也有一个常数系数α来调节损失函数的均方差项和正则化项的权重,具体Lasso回归的损失函数表达式如下: 

Lasso回归可以使得一些特征的系数变小,甚至还是一些绝对值较小的系数直接变为0。增强模型的泛化能力。

Lasso回归的损失函数优化方法常用的有两种,坐标轴下降法和最小角回归法。Lasso类采用的是坐标轴下降法,后面讲到的LassoLars类采用的是最小角回归法。

Lasso类并没有用到交叉验证之类的验证方法,和Ridge类类似。需要我们自己把数据集分成训练集和测试集,需要自己设置好超参数α。然后训练优化。

一般来说,对于高维的特征数据,尤其线性关系是稀疏的,我们会采用Lasso回归。或者是要在一堆特征里面找出主要的特征,那么Lasso回归更是首选了。但是Lasso类需要自己对α调优,所以不是Lasso回归的首选,一般用到的是下一节要讲的LassoCV类。

LassoCV类的损失函数和损失函数的优化方法完全与Lasso类相同,区别在于验证方法。

LassoCV类对超参数α使用了交叉验证,来帮忙我们选择一个合适的 \alpha 。在初始化LassoCV类时候,我们可以传一组备选的α值,10个,100个都可以。LassoCV类会帮我们选择一个合适的α。免去了我们自己去一轮轮筛选α的苦恼。 

LassoCV类是进行Lasso回归的首选。当我们面临在一堆高位特征中找出主要特征时,LassoCV类更是必选。当面对稀疏线性关系时,LassoCV也很好用。

LassoLars类的损失函数和验证方法与Lasso类相同,区别在于损失函数的优化方法。

Lasso回归的损失函数优化方法常用的有两种,坐标轴下降法和最小角回归法。LassoLars类采用的是最小角回归法,前面讲到的Lasso类采用的是坐标轴下降法。   

LassoLars类需要自己对α调优,所以不是Lasso回归的首选,一般用到的是下一节要讲的LassoLarsCV类。

LassoLarsCV类的损失函数和损失函数的优化方法与LassoLars类相同,区别在于验证方法。

LassoLarsCV类对超参数α使用了交叉验证,来帮忙我们选择一个合适的α。在初始化LassoLarsCV类时候,我们可以传一组备选的α值,10个,100个都可以。LassoLarsCV类会帮我们选择一个合适的α。免去了我们自己去一轮轮筛选α的苦恼。 

LassoLarsCV类是进行Lasso回归的第二选择。第一选择是前面讲到LassoCV类。那么LassoLarsCV类有没有适用的场景呢?换句话说,用最小角回归法什么时候比坐标轴下降法好呢?

场景一:如果我们想探索超参数α更多的相关值的话,由于最小角回归可以看到回归路径,此时用LassoLarsCV比较好。

场景二: 如果我们的样本数远小于样本特征数的话,用LassoLarsCV也比LassoCV好。其余场景最好用LassoCV。

LassoLarsIC类损失函数和损失函数的优化方法与LassoLarsCV类相同,区别在于验证方法。

LassoLarsIC类对超参数α没有使用交叉验证,而是用 Akaike信息准则(AIC)和贝叶斯信息准则(BIC)。此时我们并不需要指定备选的α值,而是由LassoLarsIC类基于AIC和BIC自己选择。用LassoLarsIC类我们可以一轮找到超参数α,而用K折交叉验证的话,我们需要K+1轮才能找到。相比之下LassoLarsIC类寻找α更快。

不一定!由于使用了AIC和BIC准则,我们的数据必须满足一定的条件才能用LassoLarsIC类。这样的准则需要对解的自由度做一个适当的估计。该估计是来自大样本(渐近结果),并假设该模型是正确的(即这些数据确实是由假设的模型产生的)。当待求解的问题的条件数很差的时候(比如特征个数大于样本数量的时候),这些准则就会有崩溃的风险。所以除非我们知道数据是来自一个模型确定的大样本,并且样本数量够大,我们才能用LassoLarsIC。而实际上我们得到的数据大部分都不能满足这个要求,实际应用中我没有用到过这个看上去很美的类。

ElasticNet可以看做Lasso和Ridge的中庸化的产物。它也是对普通的线性回归做了正则化,但是它的损失函数既不全是L1的正则化,也不全是L2的正则化,而是用一个权重参数ρ来平衡L1和L2正则化的比重,形成了一个全新的损失函数如下: 

ElasticNet回归的损失函数优化方法常用的有两种,坐标轴下降法和最小角回归法。ElasticNet类采用的是坐标轴下降法。

ElasticNet类并没有用到交叉验证之类的验证方法,和Lasso类类似。需要我们自己把数据集分成训练集和测试集,需要自己设置好超参数α和ρ。然后训练优化。

ElasticNet类需要自己对α和ρ调优,所以不是ElasticNet回归的首选,一般用到的是下一节要讲的ElasticNetCV类。

ElasticNetCV类的损失函数和损失函数的优化方法与ElasticNet类相同,区别在于验证方法。

ElasticNetCV类对超参数α和 ρ使用了交叉验证,来帮忙我们选择合适的α和ρ。在初始化ElasticNetCV类时候,我们可以传一组备选的α值和ρ,10个,100个都可以。ElasticNetCV类会帮我们选择一个合适的α和ρ。免去了我们自己去一轮轮筛选α和ρ的苦恼。

ElasticNetCV类用在我们发现用Lasso回归太过(太多特征被稀疏为0),而用Ridge回归又正则化的不够(回归系数衰减的太慢)的时候。一般不推荐拿到数据就直接就上ElasticNetCV。

OrthogonalMatchingPursuit(OMP)算法和普通的线性回归损失函数的区别是增加了一个限制项,来限制回归系数中非0元素的最大个数。形成了一个全新的损失函数如下:

OrthogonalMatchingPursuit类使用前向选择算法来优化损失函数。它是最小角回归算法的缩水版。虽然精度不如最小角回归算法,但是运算速度很快。

OrthogonalMatchingPursuit类并没有用到交叉验证之类的验证方法,和Lasso类类似。需要我们自己把数据集分成训练集和测试集,需要自己选择限制参数 n_{non-zero-coefs} 。然后训练优化。

OrthogonalMatchingPursuitCV类通常用在稀疏回归系数的特征选择上,这点和LassoCV有类似的地方。不过由于它的损失函数优化方法是前向选择算法,精确度较低,一般情况不是特别推荐用,用LassoCV就够,除非你对稀疏回归系数的精确个数很在意,那可以考虑用OrthogonalMatchingPursuitCV。

从这节到第16节,类里面都带有一个“MultiTask”的前缀。不过他不是编程里面的多线程,而是指多个线性回归模型共享样本特征,但是有不同的回归系数和特征输出。具体的线性回归模型是Y=XW。其中X是mxn维度的矩阵。W为nxk维度的矩阵,Y为mxk维度的矩阵。m为样本个数,n为样本特征,而k就代表多个回归模型的个数。所谓的“MultiTask”这里其实就是指k个线性回归的模型一起去拟合。

由于这里是多个线性回归一起拟合,所以损失函数和前面的都很不一样:

MultiTaskLasso类使用坐标轴下降法来优化损失函数。

MultiTaskLasso类并没有用到交叉验证之类的验证方法,和Lasso类类似。需要我们自己把数据集分成训练集和测试集,需要自己设置好超参数α。然后训练优化。

MultiTaskLasso类需要自己对α调优,所以不是共享特征协同回归的首选,一般用到的是下一节要讲的MultiTaskLassoCV类。

MultiTaskLassoCV类的损失函数和损失函数的优化方法完全与MultiTaskLasso类相同,区别在于验证方法。

MultiTaskLassoCV类对超参数α使用了交叉验证,来帮忙我们选择一个合适的α。在初始化LassoLarsCV类时候,我们可以传一组备选的α值,10个,100个都可以。MultiTaskLassoCV类会帮我们选择一个合适的α。

MultiTaskLassoCV是多个回归模型需要一起共享样本特征一起拟合时候的首选。它可以保证选到的特征每个模型都用到。不会出现某个模型选到了某特征而另一个模型没选到这个特征的情况。

MultiTaskElasticNet类并没有用到交叉验证之类的验证方法,和Lasso类类似。需要我们自己把数据集分成训练集和测试集,需要自己设置好超参数α和ρ。然后训练优化。 

ρ。在初始化MultiTaskElasticNetCV类时候,我们可以传一组备选的α值和ρ,10个,100个都可以。ElasticNetCV类会帮我们选择一个合适的α和ρ。免去了我们自己去一轮轮筛选α和ρ的苦恼。

第17和18节讲的都是贝叶斯回归模型。贝叶斯回归模型假设先验概率,似然函数和后验概率都是正态分布。先验概率是假设模型输出Y是符合均值为Xθ的正态分布,正则化参数α被看作是一个需要从数据中估计得到的随机变量。回归系数θ的先验分布规律为球形正态分布,超参数为λ。我们需要通过最大化边际似然函数来估计超参数α和λ,以及回归系数θ。

此处对损失函数即负的最大化边际似然函数不多讨论,不过其形式和Ridge回归的损失函数很像,所以也取名BayesianRidge。

如果我们的数据有很多缺失或者矛盾的病态数据,可以考虑BayesianRidge类,它对病态数据鲁棒性很高,也不用交叉验证选择超参数。但是极大化似然函数的推断过程比较耗时,一般情况不推荐使用。

ARDRegression和BayesianRidge很像,唯一的区别在于对回归系数θ的先验分布假设。BayesianRidge假设θ的先验分布规律为球形正态分布,而ARDRegression丢掉BayesianRidge中的球形高斯的假设,采用与坐标轴平行的椭圆形高斯分布。这样对应的超参数λ有n个维度,各不相同。而上面的BayesianRidge中球形分布的θ对应的λ只有一个。

ARDRegression也是通过最大化边际似然函数来估计超参数α和λ向量,以及回归系数θ。

如果我们的数据有很多缺失或者矛盾的病态数据,可以考虑BayesianRidge类,如果发现拟合不好,可以换ARDRegression试一试。因为ARDRegression对回归系数先验分布的假设没有BayesianRidge严格,某些时候会比BayesianRidge产生更好的后验结果。

我们已与文献出版商建立了直接购买合作。

你可以通过身份认证进行实名认证,认证成功后本次下载的费用将由您所在的图书馆支付

您可以直接购买此文献,1~5分钟即可下载全文,部分资源由于网络原因可能需要更长时间,请您耐心等待哦~

我要回帖

更多关于 方程式的最大值怎么求 的文章

 

随机推荐