主要内容

代理分裂

当最优分割的值预测的观察是失踪,如果您指定使用代理分裂,软件发送观察到左或右子节点使用最好的代理指标。当你有缺失数据、树木和乐团的树木与代理将提供更好的预测。这个例子展示了如何提高预测的准确性对数据缺失值通过使用决策树与代理分裂。

加载示例数据

加载电离层数据集。

负载电离层

分区数据集分为训练集和测试集。坚持30%的数据进行测试。

rng (“默认”)%的再现性简历= cvpartition (Y,“坚持”,0.3);

识别培训和测试数据。

Xtrain = X(培训(cv):);Ytrain = Y(培训(cv));Xtest = X(测试(cv):);欧美= Y(测试(cv));

假设值在测试设置的一半人失踪。设置测试集的值的一半

Xtest(兰德(大小(Xtest)) > 0.5) =南;

训练随机森林

150年训练随机森林分类树没有代理分裂。

templ = templateTree (“复制”,真正的);%的再现性随机预测的选择Mdl = fitcensemble (Xtrain Ytrain,“方法”,“包”,“NumLearningCycles”,150,“学习者”,templ);

创建一个决策树模板,使用代理分裂。树使用代理将不丢弃整个观察时,包括在一些预测缺失的数据。

templS = templateTree (“代孕”,“上”,“复制”,真正的);

使用模板训练随机森林templS

Mdls = fitcensemble (Xtrain Ytrain,“方法”,“包”,“NumLearningCycles”,150,“学习者”,templS);

测试的准确性

测试的准确性预测有或没有代理分裂。

预测反应和使用两种方法创建混淆矩阵图。

Xtest Ytest_pred =预测(Mdl);图厘米= confusionchart(欧美,Ytest_pred);厘米。Title =“模型没有代理人”;

图包含一个ConfusionMatrixChart类型的对象。图表类型的ConfusionMatrixChart标题模式没有代理人。

Ytest_preds =预测(Mdls Xtest);图cms = confusionchart(欧美,Ytest_preds);cms。Title =“模型与代理人”;

图包含一个ConfusionMatrixChart类型的对象。ConfusionMatrixChart类型的图表标题和代理模型。

所有非对角元素混淆矩阵表示分类错误的数据。一个好的分类器产生一个混淆矩阵对角看起来占优势。在这种情况下,模型训练的分类误差降低代理分裂。

估计累积分类错误。指定“模式”、“累积”当评估分类错误使用损失函数。的损失函数返回一个向量的元素J使用第一个显示错误J学习者。

图绘制(损失(Mdl Xtest,欧美,“模式”,“累积”)举行情节(损失(Mdls Xtest,欧美,“模式”,“累积”),“r——”)传说(“树没有代理分裂”,“树木与代理分裂”)包含(树木的数量)ylabel (“测试分类错误”)

图包含一个坐标轴对象。坐标轴对象包含2线类型的对象。这些对象代表树木没有代理分裂,树木与代理分裂。

误差值减少树木的数量增加,这表明良好的性能。模型训练的分类误差降低代理分裂。

检查结果的差异的统计学意义与利用compareHoldout。这个函数使用McNemar检验法检验。

(~ p) = compareHoldout (Mdl, Mdls Xtest Xtest,欧美,“替代”,“更大的”)
p = 0.0384

p值表明代理分裂的合奏是更好的具有统计学意义的方式。

估计预测的重要性

预测重要性估计树可以取决于是否使用代理分裂。估计预测措施重要性排列out-of-bag观察。然后,找到五个最重要的预测因子。

小鬼= oobPermutedPredictorImportance (Mdl);[~,印第安纳州]= maxk (imp, 5)
印第安纳州=1×55 3 27 8 14
小鬼= oobPermutedPredictorImportance (Mdls等);[~,第1]= maxk(小鬼,5)
第1 =1×53 5 8 27 7

估计预测的重要性之后,可以排除不重要预测因素和训练模型。消除不重要预测因子为预测,节省了时间和内存,使预测更容易理解。

如果你想要的训练数据包括许多预测和分析预测的重要性,然后指定“NumVariablesToSample”templateTree函数作为“所有”树学习者的合奏。否则,软件可能不选择一些预测,低估了它们的重要性。例如,看到的选择随机森林预测因子

另请参阅

||

相关的话题