ClassificationTree的函数。适合自动修剪?

6视图(30天)
亲爱的所有,
我目前试图构造一个分类树,使用不同的解释变量Y变量x我想用购物车,因此尝试使用这个函数 Classification.Tree.fit (Y, X) 在MATLAB。
问题是我的变量Y两类,“s”和“n”,“n”是非常罕见的,意义~只有5%的数据是这个特定的类。这意味着大多数的y类的“年代”。
构建树的时候,我约8 - 10水平,终端节点很少有(或没有多少)预测观测。现在,我们种植的树表示 ,如果我做到以下几点: [~,~,~,bestLevel] = cvLoss(树,“树”,“所有”);
我得到bestLevel根(!),意味着每一个未来的预测价值将只是一个类…难道我的预测价值X是坏的,还是我做错一些吗?
我还想知道:当构造初始树——函数Classification.Tree.fit()自动修剪树一个“最佳大小”在返回之前,还是做一个尽可能大的树和叶子这之后用户删除吗?
1评论
艾利斯
艾利斯 2017年11月15日
你知道它修剪算法被使用(成本复杂性修剪,修剪规则后,悲观主义者错误修剪,修剪错误基地,....)

登录置评。

接受的答案

Ilya
Ilya 2012年6月30日
我描述的策略在不平衡数据在这篇文章中学习 //www.tianjin-qmedu.com/matlabcentral/answers/11549-leraning-classification-with-most-training-samples-in-one-category 最简单的做法是“前”设置为“统一”。
最优修剪水平可以等于最大的修剪水平一些数据。这未必是一个迹象表明事情错了。
看看“MergeLeaves”和“修剪”参数ClassificationTree.fit的医生。ClassificationTree的“修剪”医生说 计算 修剪树的最优序列。这棵树 修剪;计算最优序列。的医生说MergeLeaves ClassificationTree合并的叶子,源自相同的父节点,并给一笔风险值大于或等于与父节点相关联的风险。即ClassificationTree适用于少量的修剪,树叶。如果树砍掉分类错误(默认),这相当于合并叶子,每叶分享最受欢迎的课。
5个评论
安德鲁
安德鲁 2014年10月3日
编辑:安德鲁 2014年10月3日
这是真的吗?在我看来“MergeLeaves”功能并不像修剪做同样的事情。也没有指定修剪”“实际上修剪树:它仅仅计算PruneList。有些告诉是你建议的解决方案不允许用户设置修剪水平。我尝试了这个建议并没有得到使用它小得多的树。
所以我还没有找到一种方法,得到一袋修剪树木,在创建的时候或在事后通过调用“修剪”。你的评论关于这个被不必要的提高整体精度,但也许一个理由想要这个功能(我)是创建一个小合奏与原始性能相似。注意,我不是在谈论一个较少的弱学习者在这种情况下,但有一个体弱的学习者的大小可以修剪,不仅通过MinLeaf / MinParent有限,这是一个不同的方法。
所以就好了如果修剪方法支持,对一个和个人CompactClassificationTre万博1manbetxes。(一个可以产生与PruneList后者,使用“修剪”设置为“在”像你说的,所以为什么不提供能力来做修剪吗?)

登录置评。

更多的答案(0)

社区寻宝

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

开始狩猎!