Matlab TreeBagger成本参数fitensemble不工作,因为它适用于类似的功能

3视图(30天)
的成本函数TreeBagger类和fitensemble(袋方法)都是[0 8;1 0]为二进制分类。fitensemble的混淆矩阵显示的分类往往把costy类的支持(如[100 0;20 80]支持假阴性)但TreeBagger并不持有的相同。我有试过3个数据集和TreeBagger似乎忽略了成本作为我省略了成本参数和混淆矩阵就像当你不给费用。我的代码有问题还是TreeBagger吗?(顺便说一句混淆矩阵的问题不是误解,它只是不工作)
我的代码
(TREEBAGGER不工作)
射频= TreeBagger(150年,Xtrain Ytrain“oobpred”,“上”,“成本”,[0 8;1 0])
(FITENSEMBLE作品)
袋= (Xtrain Ytrain,“包”,150年,“类型”、“分类”,“成本”,[0 8;1 0]);
谢谢你的帮助。

答案(1)

Ilya
Ilya 2012年8月27日
fitensemble和TreeBagger使用不同的方法将成本矩阵。
fitensemble使用成本矩阵更新类的先验概率。这个方案描述: //www.tianjin-qmedu.com/help/toolbox/stats/bsvjye9.html bsw73lr 每棵树的数据然后引导使用这些类先验多项抽样概率。即每个引导复制品是由观察类的误分类代价更高。
TreeBagger接连数据使用一个未加权的计划。每个副本都有相同的比例,平均而言,类的原始数据。先验概率和成本矩阵传递到单独的树木。
这两种方法是敏感的误分类代价。因为袋装的树木通常分裂最好水平(minleaf = 1),每棵树的后验概率预测要么是0或1。引导副本的计划是由某个类的观测显示更多敏感类先验和误分类代价,因为有更多的树叶的观察类错误分类的成本就越高。
如果你想要终极控制的误分类成本占,你可以训练不需要通过成本TreeBagger矩阵或类先验概率,然后调整后验概率预测包括成本的知识。一个导致这种调整是这里所描述的: //www.tianjin-qmedu.com/help/toolbox/stats/bq_u8tb.html bs31lmr
3评论
UT
UT 2012年8月27日
您提出的方法是一个很好的处理外部错误分类的方法。然而,我看到了很多数据集使用,成本(甚至误分类代价等[0 100;1 0]或[0 1000;1 0])不会改变混淆矩阵。混乱的误分类垫为我的两个类是相等的。等原因,来到我的头脑非常简单的方式使用over-sampling复制我costy类观测。这工作很好,costy类的分类器在忙工作。你有一个特定的数据集treebagger记住,可能工作得很好吗?

登录置评。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!