主要内容

使用的Bootstrap聚合(袋装)使用TreeBagger

统计和机器学习工具箱™提供两个支持Bootstrap聚合(Bagging)回归树的对象:万博1manbetxTreeBagger由使用TreeBagger回归释迦缩短由使用fitrensemble..看套袋式和套袋式的比较之间的差异TreeBagger回归释迦缩短

这个示例显示了使用中的特性进行分类的工作流TreeBagger只有。

使用1985年的汽车进口数据库,具有205个观察,25个预测因子和1个反应,这是保险风险评级或“象征”。前15个变量是数字,最后10个是分类的。符号索引从-3到3取整为整数值。

加载数据集并将其分解为预测器和响应数组。

负载进口- 85Y = X (: 1);X = X(:, 2:结束);isCategorical =[0(1), 1(大小(X, 2) -15年,1)];%分类变量标志

由于袋装使用随机数据图,因此其确切的结果取决于初始随机种子。要在此示例中重现结果,请使用随机流设置。

rng (1945“旋风”

寻找最佳叶片大小

对于回归,一般规则是设置叶片大小为5,并选择三分之一的输入特征进行随机决策分割。在接下来的步骤中,通过比较不同叶片大小的回归得到的均方误差来验证最佳叶片大小。ooberror.计算MSE与已生长树木的数量。必须设置OOBPred“上”以便以后得到超出预期的预测。

叶= [5 10 20 50 100];col =“rbcmy”;数字i = 1:长度(叶)b = treebagger(50,x,y,“方法”“R”“OOBPrediction”“上”...“CategoricalPredictors”,找到(ISCategorical == 1),...“MinLeafSize”、叶(i));情节(oobError (b),坳(我))结束包含('成长树数')ylabel(的均方误差) 传奇({“5”“十”“20”'50'“100”},'地点''东北') 抓住离开

图中包含一个坐标轴。轴线包含5个线型对象。这些物体代表5 10 20 50 100。

红色曲线(叶片大小5)产生最低的MSE值。

估算特征重要性

在实际应用中,您通常会种植数百棵树的集合。例如,前面的代码块使用50棵树来加快处理速度。现在你已经估算出了最优的叶子大小,种植一个更大的集合,有100棵树,并使用它来估计特征的重要性。

b = treebagger(100,x,y,“方法”“R”'Oobpredictorimportance'“上”...“CategoricalPredictors”,找到(ISCategorical == 1),...“MinLeafSize”5);

再次检查错误曲线,以确保在培训期间没有出错。

图绘图(OobError(b))xlabel('成长树数')ylabel(“包外均方误差”

图中包含一个坐标轴。轴包含类型线的对象。

预测能力应该依赖于重要的特征而不是不重要的功能。您可以使用此想法来衡量特征重要性。

对于每个特征,在数据集中的每个观测值中排列该特征的值,并测量排列后的MSE变得有多差。您可以对每个特性重复此操作。

绘制MSE的增加,因为跨越每个输入变量的袋子外观察。的OobpermutedPredictordeltaError数组存储每个变量的平均MSE增长除以所有树的标准差。这个值越大,这个变量就越重要。施加一个任意的0.7的截止值,您可以选择四个最重要的功能。

图酒吧(b.OOBPermutedPredictorDeltaError)包含('功能号码')ylabel(“Out-of-Bag特性重要性”

图中包含一个坐标轴。轴包含类型栏的物体。

IDXVAR =查找(B.OobperMutedPredictordOrtArror> 0.7)
idxvar =1×41 2 16 19
idxcategorical = find(IsCateCorical(IDXVAR)== 1);

OOBIndices的属性TreeBagger追踪哪些观察到树木的袋子。使用此属性,您可以监控所有树木的培训数据中的观测分数。曲线从大约2/3开始,这是一个自举复制品选择的独特观测的分数,并且在大约10棵树上下降到0。

b.NTrees finbag = 0 (1);t = 1: b。NTrees finbag (t) =(所有的总和(~ b.OOBIndices (:, 1: t), 2));结束Finbag = Finbag /尺寸(x,1);图绘图(finbag)xlabel('成长树数')ylabel(“袋装观察的部分”

图中包含一个坐标轴。轴包含类型线的对象。

在减少的特征上生长树木

只使用四个最强大的功能,确定是否可以获得类似的预测力。首先,仅在这些功能上种植100棵树。四个所选功能中的前两个是数字,最后两个是分类的。

b5v = TreeBagger (100 X (:, idxvar), Y,“方法”“R”...'Oobpredictorimportance'“上”“CategoricalPredictors”,idxcategorical,...“MinLeafSize”5);图绘图(OobError(B5V))XLabel('成长树数')ylabel(“包外均方误差”

图中包含一个坐标轴。轴包含类型线的对象。

图栏(B5V.oobpermutedPredictordeltaError)Xlabel(“功能指数”)ylabel(“Out-of-Bag特性重要性”

图中包含一个坐标轴。轴包含类型栏的物体。

这四个最强大的功能将与全套相同的MSE,并且在减少的集合上培训的集合训练彼此类似地等待这些功能。如果从减少的集中删除特征1和2,则算法的预测功率可能不会显着降低。

发现异常值

要查找培训数据中的异常值,请使用近距离矩阵fillProximities

b5v = fillProximities (b5v);

该方法通过减去整个样本的均值离群值来规范化这个度量。然后用这个差值的大小除以整个样本的绝对值中位数。

图直方图(b5v.OutlierMeasure)包含('异常衡量')ylabel(“数量的观察”

图中包含一个坐标轴。轴包含类型直方图的对象。

发现数据中的群集

通过将多维缩放应用于计算的近距离的矩阵,您可以检查输入数据的结构并查找可能的观察集群。的mdsProx方法返回计算的接近矩阵的比例坐标和特征值。如果你用颜色名称 - 值对参数,然后此方法创建两个缩放坐标的散点图。

图(8)[〜,e] = mdsprox(b5v,'颜色''K');包含(“第一比例协调”)ylabel('第二次缩放坐标'

图中包含一个坐标轴。轴包含类型散射的对象。

通过绘制前20个特征值来评估缩放轴的相对重要性。

图酒吧(e(1:20))包含('缩放坐标索引')ylabel(“特征值”

图中包含一个坐标轴。轴包含类型栏的物体。

保存集成电路配置以供后续使用

要使用训练有素的合奏来预测未经操作系统数据的响应,将集合存储到磁盘并稍后检索。如果您不想以任何其他方式计算袋袋数据或重用培训数据的预测,则无需存储集合对象本身。在这种情况下,保存集合的紧凑型版本就足够了。从集合中提取紧凑的对象。

C =紧凑(B5V)
c = CompactTreeBagger集合与100袋决策树:方法:回归数字预测:4属性,方法

您可以保存结果CompactTreeBagger模型在A..mat文件。

另请参阅

|||||

相关话题