主要内容gydF4y2Ba

合奏正规化gydF4y2Ba

正则化是在不降低预测性能的前提下,为集合选择较少的弱学习者的过程。目前,您可以正则化回归集成。(您还可以在非集成上下文中正则化判别分析分类器;看到gydF4y2Ba正则化判别分析分类器gydF4y2Ba.)gydF4y2Ba

的gydF4y2Ba规范gydF4y2Ba方法找到一组最优的学习权值gydF4y2BaαgydF4y2BatgydF4y2Ba,减少gydF4y2Ba

∑gydF4y2Ba ngydF4y2Ba =gydF4y2Ba 1gydF4y2Ba NgydF4y2Ba wgydF4y2Ba ngydF4y2Ba ggydF4y2Ba (gydF4y2Ba (gydF4y2Ba ∑gydF4y2Ba tgydF4y2Ba =gydF4y2Ba 1gydF4y2Ba TgydF4y2Ba αgydF4y2Ba tgydF4y2Ba hgydF4y2Ba tgydF4y2Ba (gydF4y2Ba xgydF4y2Ba ngydF4y2Ba )gydF4y2Ba )gydF4y2Ba ,gydF4y2Ba ygydF4y2Ba ngydF4y2Ba )gydF4y2Ba +gydF4y2Ba λgydF4y2Ba ∑gydF4y2Ba tgydF4y2Ba =gydF4y2Ba 1gydF4y2Ba TgydF4y2Ba |gydF4y2Ba αgydF4y2Ba tgydF4y2Ba |gydF4y2Ba .gydF4y2Ba

在这里gydF4y2Ba

  • λgydF4y2Ba≥0gydF4y2Ba是您提供的一个参数,称为套索参数。gydF4y2Ba

  • hgydF4y2BatgydF4y2Ba是否对一个弱势学习者进行训练gydF4y2BaNgydF4y2Ba观察与预测gydF4y2BaxgydF4y2BangydF4y2Ba、响应gydF4y2BaygydF4y2BangydF4y2Ba,重量gydF4y2BawgydF4y2BangydF4y2Ba.gydF4y2Ba

  • ggydF4y2Ba(gydF4y2BafgydF4y2Ba,gydF4y2BaygydF4y2Ba) = (gydF4y2BafgydF4y2Ba- - - - - -gydF4y2BaygydF4y2Ba)gydF4y2Ba2gydF4y2Ba是平方误差。gydF4y2Ba

集合在相同的(gydF4y2BaxgydF4y2BangydF4y2Ba,gydF4y2BaygydF4y2BangydF4y2Ba,gydF4y2BawgydF4y2BangydF4y2Ba)数据用于训练,所以gydF4y2Ba

∑gydF4y2Ba ngydF4y2Ba =gydF4y2Ba 1gydF4y2Ba NgydF4y2Ba wgydF4y2Ba ngydF4y2Ba ggydF4y2Ba (gydF4y2Ba (gydF4y2Ba ∑gydF4y2Ba tgydF4y2Ba =gydF4y2Ba 1gydF4y2Ba TgydF4y2Ba αgydF4y2Ba tgydF4y2Ba hgydF4y2Ba tgydF4y2Ba (gydF4y2Ba xgydF4y2Ba ngydF4y2Ba )gydF4y2Ba )gydF4y2Ba ,gydF4y2Ba ygydF4y2Ba ngydF4y2Ba )gydF4y2Ba

是集合替换误差。误差用均方误差(MSE)来测量。gydF4y2Ba

如果你使用gydF4y2BaλgydF4y2Ba= 0gydF4y2Ba,gydF4y2Ba规范gydF4y2Ba通过最小化再替换MSE来寻找弱学习权值。整套服装往往训练过度。换句话说,再替换误差通常小于真正的泛化误差。通过使再替换误差更小,你可能会使集合精度更差,而不是提高它。另一方面,正的值gydF4y2BaλgydF4y2Ba推的大小gydF4y2BaαgydF4y2BatgydF4y2Ba系数为0。这通常会改善泛化误差。当然,如果你愿意的话gydF4y2BaλgydF4y2Ba如果太大,所有的最优系数都是0,那么集合就没有任何精度。通常你可以找到一个最佳的范围gydF4y2BaλgydF4y2Ba其中正则化集合的精度优于或可与无正则化全集合的精度相媲美。gydF4y2Ba

套索正则化的一个很好的特性是它能够将优化后的系数精确地驱动到0。如果一个学习者的体重gydF4y2BaαgydF4y2BatgydF4y2Ba为0时,该学习者可从正则集合中排除。最后,你得到了一个准确性提高,学习者更少的合奏。gydF4y2Ba

正则化回归集合gydF4y2Ba

本例使用数据基于汽车的许多属性来预测汽车的保险风险。gydF4y2Ba

加载gydF4y2Ba进口- 85gydF4y2Ba数据进入MATLAB工作空间。gydF4y2Ba

负载gydF4y2Ba进口- 85gydF4y2Ba;gydF4y2Ba

查看数据的描述,找到分类变量和预测器名称。gydF4y2Ba

描述gydF4y2Ba
描述=gydF4y2Ba9 x79 char数组gydF4y2Ba1985汽车进口从UCI数据库存储库的http://archive.ics.uci.edu/ml/machine -学习- databases/autos/imports - 85. -名字”的变量被重新排序位置变量数值(简称““连续”UCI网站)左值并分类”的权利。具体来说,变量1:16是:符号,归一化损失,' '轴距,长度,宽度,高度,路沿重量,发动机尺寸,镗孔,冲程,' ' '压缩比,马力,峰值转速,城市英里数,公路英里数,和价格。变量17:26是:制造,燃料类型,吸气,门的数目,车身样式,驱动轮,发动机位置,发动机类型,缸的数目,和燃料系统。gydF4y2Ba

该过程的目标是从其他预测器中预测“符号”(数据中的第一个变量)。"symboling"是一个整数gydF4y2Ba3gydF4y2Ba(好保险风险)到gydF4y2Ba3.gydF4y2Ba(可怜的保险风险)。您可以使用分类集合而不是回归集合来预测这种风险。当要在回归和分类之间做出选择时,应该先尝试回归。gydF4y2Ba

准备集合拟合的数据。gydF4y2Ba

Y = X (: 1);X (: 1) = [];VarNames = {gydF4y2Ba“normalized-losses”gydF4y2Ba的轴距gydF4y2Ba“长度”gydF4y2Ba“宽度”gydF4y2Ba“高度”gydF4y2Ba...gydF4y2Ba整备质量的gydF4y2Ba发动机的大小的gydF4y2Ba“生”gydF4y2Ba“中风”gydF4y2Ba的压缩比gydF4y2Ba...gydF4y2Ba“马力”gydF4y2Ba“peak-rpm”gydF4y2Ba“city-mpg”gydF4y2Ba“highway-mpg”gydF4y2Ba“价格”gydF4y2Ba“使”gydF4y2Ba...gydF4y2Ba“可燃物类型”gydF4y2Ba“愿望”gydF4y2Ba“num-of-doors”gydF4y2Ba“身体作风”gydF4y2Ba驱动轮的gydF4y2Ba...gydF4y2Ba“引擎位置”gydF4y2Ba发动机型号的gydF4y2Ba“num-of-cylinders”gydF4y2Ba“燃油系统”gydF4y2Ba};catidx = 16:25;gydF4y2Ba%的分类预测指标gydF4y2Ba

从使用300棵树的数据创建一个回归集合。gydF4y2Ba

ls = fitrensemble (X, Y,gydF4y2Ba“方法”gydF4y2Ba,gydF4y2Ba“LSBoost”gydF4y2Ba,gydF4y2Ba“NumLearningCycles”gydF4y2Ba, 300,gydF4y2Ba...gydF4y2Ba“LearnRate”gydF4y2Ba, 0.1,gydF4y2Ba“PredictorNames”gydF4y2BaVarNames,gydF4y2Ba...gydF4y2Ba“ResponseName”gydF4y2Ba,gydF4y2Ba“象征”gydF4y2Ba,gydF4y2Ba“CategoricalPredictors”gydF4y2Bacatidx)gydF4y2Ba
ls = RegressionEnsemble PredictorNames: {1x25 cell} ResponseName: 'Symboling' CategoricalPredictors: [16 17 18 19 20 21 22 23 24 25] ResponseTransform: 'none' NumObservations: 205 numtraining: 300 Method: 'LSBoost' LearnerNames: {'Tree'} reasonforterminate: '完成所请求的训练周期数后正常终止。'FitInfo: [300x1 double] FitInfoDescription: {2x1 cell}规范化:[]属性,方法gydF4y2Ba

最后一行,gydF4y2Ba正则化gydF4y2Ba,为空([])。要使合奏化,你必须使用gydF4y2Ba规范gydF4y2Ba方法。gydF4y2Ba

简历= crossval (ls,gydF4y2Ba“KFold”gydF4y2Ba5);图;情节(kfoldLoss(简历,gydF4y2Ba“模式”gydF4y2Ba,gydF4y2Ba“累积”gydF4y2Ba));包含(gydF4y2Ba树木的数量gydF4y2Ba);ylabel (gydF4y2Ba“旨在MSE”gydF4y2Ba);ylim (0.2 [2])gydF4y2Ba

图中包含一个axes对象。axis对象包含一个类型为line的对象。gydF4y2Ba

看起来你可能会从一个较小的乐团获得满意的演奏,也许是一个包含50到100棵树的乐团。gydF4y2Ba

调用gydF4y2Ba规范gydF4y2Ba方法来尝试找到可以从集合中删除的树。默认情况下,gydF4y2Ba规范gydF4y2Ba检查10个套索值(gydF4y2BaλgydF4y2Ba)参数以指数形式间隔。gydF4y2Ba

ls =调整(ls)gydF4y2Ba
ls = RegressionEnsemble PredictorNames: {1x25 cell} ResponseName: 'Symboling' CategoricalPredictors: [16 17 18 19 20 21 22 23 24 25] ResponseTransform: 'none' NumObservations: 205 numtraining: 300 Method: 'LSBoost' LearnerNames: {'Tree'} reasonforterminate: '完成所请求的训练周期数后正常终止。'正则化:[1x1 struct]属性,方法gydF4y2Ba

的gydF4y2Ba正则化gydF4y2Ba财产不再是空的。gydF4y2Ba

根据套索参数绘制替换均方误差(MSE)和非零权重的学习者数量。分别将值绘制在gydF4y2Baλ= 0gydF4y2Ba.使用对数刻度,因为的值gydF4y2BaλgydF4y2Ba指数是间隔。gydF4y2Ba

图;semilogx (ls.Regularization.Lambda ls.Regularization.ResubstitutionMSE,gydF4y2Ba...gydF4y2Ba“bx - - - - - -”gydF4y2Ba,gydF4y2Ba“Markersize”gydF4y2Ba10);线([1 e - 3 1 e - 3]、[ls.Regularization.ResubstitutionMSE (1)gydF4y2Ba...gydF4y2Bals.Regularization.ResubstitutionMSE (1)),gydF4y2Ba...gydF4y2Ba“标记”gydF4y2Ba,gydF4y2Ba“x”gydF4y2Ba,gydF4y2Ba“Markersize”gydF4y2Ba10gydF4y2Ba“颜色”gydF4y2Ba,gydF4y2Ba“b”gydF4y2Ba);r0 = resubLoss (ls);线([ls.Regularization.Lambda (2) ls.Regularization.Lambda(结束),gydF4y2Ba...gydF4y2Ba(r0 r0),gydF4y2Ba“颜色”gydF4y2Ba,gydF4y2Ba“r”gydF4y2Ba,gydF4y2Ba“线型”gydF4y2Ba,gydF4y2Ba“——”gydF4y2Ba);包含(gydF4y2Ba“λ”gydF4y2Ba);ylabel (gydF4y2Ba“Resubstitution MSE”gydF4y2Ba);注释(gydF4y2Ba“文本框”gydF4y2Ba,[0.5 0.22 0.5 0.05],gydF4y2Ba“字符串”gydF4y2Ba,gydF4y2Ba“unregularized乐团”gydF4y2Ba,gydF4y2Ba...gydF4y2Ba“颜色”gydF4y2Ba,gydF4y2Ba“r”gydF4y2Ba,gydF4y2Ba“字形大小”gydF4y2Ba14岁的gydF4y2Ba“线型”gydF4y2Ba,gydF4y2Ba“没有”gydF4y2Ba);gydF4y2Ba

图中包含一个axes对象。坐标轴对象包含3个line类型的对象。gydF4y2Ba

图;重对数(ls.Regularization.Lambda总和(ls.Regularization.TrainedWeights > 0, 1));线((1 e - 3 1 e - 3),gydF4y2Ba...gydF4y2Ba[总和(ls.Regularization.TrainedWeights (: 1) > 0)gydF4y2Ba...gydF4y2Basum (ls.Regularization.TrainedWeights (: 1) > 0)),gydF4y2Ba...gydF4y2Ba“标记”gydF4y2Ba,gydF4y2Ba“x”gydF4y2Ba,gydF4y2Ba“markersize”gydF4y2Ba10gydF4y2Ba“颜色”gydF4y2Ba,gydF4y2Ba“b”gydF4y2Ba);线([ls.Regularization.Lambda (2) ls.Regularization.Lambda(结束),gydF4y2Ba...gydF4y2Ba(ls。NTrained ls.NTrained],...gydF4y2Ba“颜色”gydF4y2Ba,gydF4y2Ba“r”gydF4y2Ba,gydF4y2Ba“线型”gydF4y2Ba,gydF4y2Ba“——”gydF4y2Ba);包含(gydF4y2Ba“λ”gydF4y2Ba);ylabel (gydF4y2Ba学习者的数量gydF4y2Ba);注释(gydF4y2Ba“文本框”gydF4y2Ba,[0.3 0.8 0.5 0.05],gydF4y2Ba“字符串”gydF4y2Ba,gydF4y2Ba“unregularized乐团”gydF4y2Ba,gydF4y2Ba...gydF4y2Ba“颜色”gydF4y2Ba,gydF4y2Ba“r”gydF4y2Ba,gydF4y2Ba“字形大小”gydF4y2Ba14岁的gydF4y2Ba“线型”gydF4y2Ba,gydF4y2Ba“没有”gydF4y2Ba);gydF4y2Ba

图中包含一个axes对象。坐标轴对象包含3个line类型的对象。gydF4y2Ba

再替代MSE值很可能过于乐观。的误差的更可靠的估计值gydF4y2BaλgydF4y2Ba,交叉验证集成使用gydF4y2BacvshrinkgydF4y2Ba.绘制结果交叉验证损失(MSE)和学习者数量对比图gydF4y2BaλgydF4y2Ba.gydF4y2Ba

rng (0,gydF4y2Ba“旋风”gydF4y2Ba)gydF4y2Ba%的再现性gydF4y2Ba[mse, nlearn] = cvshrink (ls,gydF4y2Ba“λ”gydF4y2Bals.Regularization.Lambda,gydF4y2Ba“KFold”gydF4y2Ba5);gydF4y2Ba
警告:一些折叠没有任何受过训练的弱学习者。gydF4y2Ba
图;semilogx (ls.Regularization.Lambda ls.Regularization.ResubstitutionMSE,gydF4y2Ba...gydF4y2Ba“bx - - - - - -”gydF4y2Ba,gydF4y2Ba“Markersize”gydF4y2Ba10);持有gydF4y2Ba在gydF4y2Ba;semilogx (ls.Regularization.Lambda、mse、gydF4y2Ba“ro - - - - - -”gydF4y2Ba,gydF4y2Ba“Markersize”gydF4y2Ba10);持有gydF4y2Ba从gydF4y2Ba;包含(gydF4y2Ba“λ”gydF4y2Ba);ylabel (gydF4y2Ba的均方误差gydF4y2Ba);传奇(gydF4y2Ba“resubstitution”gydF4y2Ba,gydF4y2Ba交叉验证的gydF4y2Ba,gydF4y2Ba“位置”gydF4y2Ba,gydF4y2Ba“西北”gydF4y2Ba);线([1 e - 3 1 e - 3]、[ls.Regularization.ResubstitutionMSE (1)gydF4y2Ba...gydF4y2Bals.Regularization.ResubstitutionMSE (1)),gydF4y2Ba...gydF4y2Ba“标记”gydF4y2Ba,gydF4y2Ba“x”gydF4y2Ba,gydF4y2Ba“Markersize”gydF4y2Ba10gydF4y2Ba“颜色”gydF4y2Ba,gydF4y2Ba“b”gydF4y2Ba,gydF4y2Ba“HandleVisibility”gydF4y2Ba,gydF4y2Ba“关闭”gydF4y2Ba);线([1 e - 3 1 e - 3], [mse (1) mse(1)]。gydF4y2Ba“标记”gydF4y2Ba,gydF4y2Ba“o”gydF4y2Ba,gydF4y2Ba...gydF4y2Ba“Markersize”gydF4y2Ba10gydF4y2Ba“颜色”gydF4y2Ba,gydF4y2Ba“r”gydF4y2Ba,gydF4y2Ba“线型”gydF4y2Ba,gydF4y2Ba“——”gydF4y2Ba,gydF4y2Ba“HandleVisibility”gydF4y2Ba,gydF4y2Ba“关闭”gydF4y2Ba);gydF4y2Ba

图中包含一个axes对象。坐标轴对象包含两个line类型的对象。这些对象表示替换、交叉验证。gydF4y2Ba

图;重对数(ls.Regularization.Lambda总和(ls.Regularization.TrainedWeights > 0, 1));持有;gydF4y2Ba
当前的情节举行gydF4y2Ba
重对数(ls.Regularization.Lambda nlearn,gydF4y2Ba“r——”gydF4y2Ba);持有gydF4y2Ba从gydF4y2Ba;包含(gydF4y2Ba“λ”gydF4y2Ba);ylabel (gydF4y2Ba学习者的数量gydF4y2Ba);传奇(gydF4y2Ba“resubstitution”gydF4y2Ba,gydF4y2Ba交叉验证的gydF4y2Ba,gydF4y2Ba“位置”gydF4y2Ba,gydF4y2Ba“不”gydF4y2Ba);线((1 e - 3 1 e - 3),gydF4y2Ba...gydF4y2Ba[总和(ls.Regularization.TrainedWeights (: 1) > 0)gydF4y2Ba...gydF4y2Basum (ls.Regularization.TrainedWeights (: 1) > 0)),gydF4y2Ba...gydF4y2Ba“标记”gydF4y2Ba,gydF4y2Ba“x”gydF4y2Ba,gydF4y2Ba“Markersize”gydF4y2Ba10gydF4y2Ba“颜色”gydF4y2Ba,gydF4y2Ba“b”gydF4y2Ba,gydF4y2Ba“HandleVisibility”gydF4y2Ba,gydF4y2Ba“关闭”gydF4y2Ba);线([1 e - 3 e - 3], [nlearn (1) nlearn(1)]。gydF4y2Ba“标记”gydF4y2Ba,gydF4y2Ba“o”gydF4y2Ba,gydF4y2Ba...gydF4y2Ba“Markersize”gydF4y2Ba10gydF4y2Ba“颜色”gydF4y2Ba,gydF4y2Ba“r”gydF4y2Ba,gydF4y2Ba“线型”gydF4y2Ba,gydF4y2Ba“——”gydF4y2Ba,gydF4y2Ba“HandleVisibility”gydF4y2Ba,gydF4y2Ba“关闭”gydF4y2Ba);gydF4y2Ba

图中包含一个axes对象。坐标轴对象包含两个line类型的对象。这些对象表示替换、交叉验证。gydF4y2Ba

交叉验证误差的检验表明,交叉验证的均方误差几乎是平坦的gydF4y2BaλgydF4y2Ba多一点gydF4y2Ba1)依照gydF4y2Ba.gydF4y2Ba

检查gydF4y2Bals.Regularization.LambdagydF4y2Ba找出在平坦区域的MSE的最大值(超过一点)gydF4y2Ba1)依照gydF4y2Ba).gydF4y2Ba

jj = 1:长度(ls.Regularization.Lambda);[jj; ls.Regularization.Lambda]gydF4y2Ba
ans =gydF4y2Ba2×10gydF4y2Ba1.000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 0 0.0019 0.0045 0.0107 0.0254 0.0602 0.1428 0.3387 0.8033 1.9048gydF4y2Ba

元素gydF4y2Ba5gydF4y2Ba的gydF4y2Bals.Regularization.LambdagydF4y2Ba是有价值的gydF4y2Ba0.0254gydF4y2Ba在平坦的范围内,这是最大的。gydF4y2Ba

方法减小集合大小gydF4y2Ba缩小gydF4y2Ba方法。gydF4y2Ba缩小gydF4y2Ba返回一个不包含训练数据的紧凑集合。通过交叉验证,估计了新的紧凑系综的泛化误差gydF4y2Bamse (5)gydF4y2Ba.gydF4y2Ba

cmp =收缩(ls,gydF4y2Ba“weightcolumn”gydF4y2Ba5)gydF4y2Ba
cmp = CompactRegressionEnsemble PredictorNames: {1x25 cell} ResponseName: ' symbolic ' CategoricalPredictors: [16 17 18 19 20 21 22 23 24 25] ResponseTransform: 'none' numtraining: 8 Properties, MethodsgydF4y2Ba

新组合中的树木数量从300棵显著减少gydF4y2BalsgydF4y2Ba.gydF4y2Ba

比较集合的大小。gydF4y2Ba

深圳(1)=谁(gydF4y2Bacmp的gydF4y2Ba);深圳(2)=谁(gydF4y2Ba“ls”gydF4y2Ba);(深圳(1)。字节深圳(2).bytes]gydF4y2Ba
ans =gydF4y2Ba1×2gydF4y2Ba91209 3227100gydF4y2Ba

缩减后的组合的规模是原来的一小部分。注意,您的集成大小可能根据您的操作系统而不同。gydF4y2Ba

将简化集合的MSE与原始集合的MSE进行比较。gydF4y2Ba

图;情节(kfoldLoss(简历,gydF4y2Ba“模式”gydF4y2Ba,gydF4y2Ba“累积”gydF4y2Ba));持有gydF4y2Ba在gydF4y2Ba情节(cmp.NTrained mse (5),gydF4y2Ba“罗”gydF4y2Ba,gydF4y2Ba“MarkerSize”gydF4y2Ba10);包含(gydF4y2Ba树木的数量gydF4y2Ba);ylabel (gydF4y2Ba“旨在MSE”gydF4y2Ba);传奇(gydF4y2Ba“unregularized乐团”gydF4y2Ba,gydF4y2Ba“正规化合奏”gydF4y2Ba,gydF4y2Ba...gydF4y2Ba“位置”gydF4y2Ba,gydF4y2Ba“不”gydF4y2Ba);持有gydF4y2Ba从gydF4y2Ba

图中包含一个axes对象。坐标轴对象包含两个line类型的对象。这些对象代表非正则集合,正则集合。gydF4y2Ba

减少的组合在使用更少的树的同时,损失更低。gydF4y2Ba

另请参阅gydF4y2Ba

|gydF4y2Ba|gydF4y2Ba|gydF4y2Ba|gydF4y2Ba|gydF4y2Ba|gydF4y2Ba

相关的话题gydF4y2Ba

Baidu
map