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)产生最低的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
文件。
袖珍的
|Fillprox.
|fitrensemble.
|mdsprox
|ooberror.
|TreeBagger