罗兰在MATLAB的艺术

把想法变成MATLAB

子集选择和正规化(第2部分)

本周理查德·威利从技术营销将结束他的两个部分介绍子集选择和正规化。

在一个最近的帖子,我们研究如何使用顺序特征选择提高预测精度建模时宽数据集与高度相关的变量。本周,我们将使用正则化算法解决同一问题如套索,弹性网和岭回归。数学上,这些算法通过惩罚模型中的回归系数的大小。

标准线性回归是通过估算的一组系数最小平方误差的总和之间的观测值和拟合值模型。正则化技术和岭回归一样,套索,弹性网引入一个附加项最小化问题。

  • 岭回归标识一组回归系数的平方之和最小化错误+平方之和回归系数乘以权重参数可以取任何值在0和1之间。一个零价值相当于一个标准的线性回归。作为增加大小,回归系数缩小为零。
  • 套索最小平方误差的总和+回归系数的绝对值的总和。
  • 弹性网是一个加权平均套索和山脊的解决方案。金宝搏官方网站

附加项的引入部队的回归系数为零生成一个简单的模型更好的预测精度。

看看正规化操作通过使用套索解决同样的问题上周我们看。

内容

从以前的文章重新创建数据集1

清晰的所有clc rng (1998);μ= [0 0 0 0 0 0 0 0];我= 1:8;矩阵= abs (bsxfun (@minus,我,我));协方差= repmat(5 8 8)。^矩阵;X = mvnrnd(μ,协方差,20);β= [3;1.5;0;0; 2; 0; 0; 0]; ds = dataset(Beta); Y = X * Beta + 3 * randn(20,1); b = regress(Y,X); ds.Linear = b;

使用套索以适应模型

的语法套索所使用的命令非常类似于线性回归。在这行代码,我估计一组系数B这个模型Y的函数X。为了避免过拟合的,我要申请5倍交叉验证。

[B数据]=套索(X, Y,“简历”5);

当我们进行线性回归,我们生成一个单一的回归系数。默认情况下套索将创造100个不同的模型。每个模型估计使用略大。所有模型的系数都存储在数组中B。其余的信息模型存储在一个名为结构统计数据

让我们看看第一个五套系数中B。当你遍历行你可以看到增加,价值模型系数通常是缩小为零。

disp (B (: 1:5) disp(统计)
3.9147 3.9146 3.9145 3.9143 3.9142 0.13502 0.13498 0.13494 0.13488 0.13482 0.85283 0.85273 0.85262 0.85247 0.85232 -0.92775 -0.92723 -0.9267 -0.926 -0.92525 3.9415 3.9409 3.9404 3.9397 3.9389 -2.2945 -2.294 -2.2936 -2.293 -2.2924 1.3566 1.3567 1.3568 1.3569 1.3571 -0.14796 -0.14803 -0.1481 -0.14821 -0.14833拦截:[1 x100双]λ:[1 x100双]α:1 DF: [1 x100双]MSE: [1 x100双]PredictorNames: {} SE: [1 x100双]LambdaMinMSE: 0.585 Lambda1SE: 1.6278 IndexMinMSE: 78 Index1SE: 89

创建一个图显示均方误差和λ

自然的问题在这个时间点是“好吧,这100我应该使用不同的模型?”。我们可以回答这个问题lassoPlotlassoPlot生成一个图显示之间的关系和交叉验证均方误差(MSE)产生的模型。每个红点显示了结果的均方误差模型。垂直的线段伸出从每个点每个估计误差。

你也可以看到一条垂直的虚线。右边的线标识值,减少了交叉验证MSE。左边的线表示的最高价值在一个标准错误是谁的MSE的最小均方误差。一般来说,人们会选择了最小化均方误差。有时,如果一个更简洁的模型被认为是特别有利,一个用户可能会选择其他值介于两个线段。

lassoPlot (B,统计数据,“PlotType”,“简历”)

使用数据结构中提取一组模型系数。

均方误差值最小化存储在统计数据结构。您可以使用该信息来索引β和提取的系数集最小化均方误差。

在特征选择的例子中,我们可以看到的套索算法消除了四五干扰产生的模型。这个新的、更简洁的模型将更准确的预测比标准线性回归。

ds。套索= B (:, Stats.IndexMinMSE);disp (ds)
β线性套索3 0 3.5819 3.0591 1.5 0.44611 0.3811 0.92272 -2.5195 4.7091 - 1.5654 0.024131 -0.84134 0 0 2 0 0 0 0.17123 1.3499 -0.42067 0 0

运行一个仿真

在这里,再一次,这是非常危险的任何类型的分析基于一个观察。让我们用一个模拟比较套索的线性回归的准确性。我们首先preallocating一些变量。

MSE = 0 (100 1);mse = 0 (100 1);Coeff_Num = 0 (100 1);贝塔= 0 (8100);cv_Reg_MSE = 0 (1100);

接下来,我们将产生100个不同的模型和估计系数套索模型中包含的数量以及不同标准之间的交叉验证MSE线性回归和套索模型。

正如你所看到的,平均而言,套索模型只包含4.5条款(标准线性回归模型包括8)。更重要的是,线性回归模型的交叉验证均方误差大于30%,产生的套索。这是一个令人难以置信的强大的结果。的套索算法是一样容易使用标准线性回归,然而,它提供了显著的改进预测精度比回归。

rng (1998);i = 1: 100 X = mvnrnd(μ,协方差,20);Y = X *β+ randn (20, 1);[B数据]=套索(X, Y,“简历”5);贝塔(:,i) = B (:, Stats.IndexMinMSE) > 0;Coeff_Num (i) =总和(B (:, Stats.IndexMinMSE) > 0);MSE (i) =统计数据。MSE (:, Stats.IndexMinMSE);regf = @ (XTRAIN ytrain XTEST) (XTEST *回归(ytrain XTRAIN));cv_Reg_MSE (i) = crossval (mse的,X, Y,“predfun”regf,“kfold”5);结束Number_Lasso_Coefficients =意味着(Coeff_Num);disp (Number_Lasso_Coefficients) MSE_Ratio = (cv_Reg_MSE) /中值中位数(MSE);disp (MSE_Ratio)
4.57 - 1.2831

选择最好的技术

正则化方法和特征选择技术都有独特的优点和缺点。让我们关闭这个博客和一些实际的指导就各种技术的优缺点。

正则化技术有两个主要优势与特征选择。

  • 正则化技术就能在更大的数据集的特征选择方法。套索和岭回归可以应用于数据集,其中包含数千,甚至成千上万的变量。甚至连续特征选择通常是太慢了应对这许多可能的预测因素。
  • 正则化算法通常比特征选择生成更精确的预测模型。正规化运作在一个连续的空间而特征选择是一个离散的空间。因此,正规化通常能够微调模型和产生更精确的估计。

然而,特征选择方法也有自己的优势

  • 正规化tehcniques只对一小部分模型类型可用。值得注意的是,正规化可以应用于线性回归和逻辑回归。然而,如果你正在其他建模技术——说提高了决策树——你通常需要应用特征选择工艺。
  • 特征选择是容易理解和解释给第三方。永远不要低估的重要性,能够描述你的方法来分享你的结果。

的说了,该做的也做了,这三个正则化技术还提供了自己独特的优点和缺点。

  • 因为套索使用L1范数它往往迫使个人完全为零的系数值。因此,套索作为特征选择算法效果很好。很快就确定了少量的关键变量。
  • 相比之下,岭回归使用的L2范数系数(平方之和最小化错误)。岭回归倾向于扩散系数收缩在更多的系数。如果你认为你的模型应该包含大量的系数,岭回归可能是一个更好的选择比套索。
  • 最后,但并非最不重要的是,我们有弹性网就是能弥补一个非常具体的限制的套索。套索无法识别的预测比系数。

假设您正在运行一个癌症研究。

  • 500年你有基因序列不同的癌症患者
  • 你要确定哪些15000种不同的基因产生显著影响疾病的发展。

连续的特征选择是完全不切实际的许多不同的变量。你不能用岭回归,因为它不会强迫系数足够迅速地完全为零。同时,你不能使用套索,因为您可能需要确定超过500种不同的基因。弹性网是一个可能的解决方案。

结论

如果你想要更多的信息关于这个主题有一个MathWork研讨会的主题计算统计:特征选择正规化,收缩,这提供了一个更详细的治疗这些主题。

最后,我想问你是否有实例应用特征选择或正则化算法在你的工作吗?

  • 你有没有使用特征选择?
  • 你看到一个机会应用套索或岭回归你的工作吗?

如果是这样的话,请在这里发布在这里




使用MATLAB®7.13发表

|

评论

留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。