随机森林(或其他分类器)的分层分类


12

因此,我得到了大约60 x 1000的矩阵。我将其视为具有1000个特征的60个对象。这60个对象分为3类(a,b,c)。每个类别20个对象,我们知道真正的分类。我想在这60个训练示例集上进行有监督的学习,并且我对分类器的准确性(和相关指标)以及对1000个特征的特征选择都感兴趣。

首先,我的命名方式如何?

现在真正的问题是:

如我所述,我可以在上面添加随机森林,或者其他任何数量的分类器。但是有一个微妙之处-我真的只关心区分c类与a类和b类。我可以合并类a和b,但是有一种很好的方法来使用先验知识,即所有非c对象都可能形成两个不同的集群吗?我更喜欢使用随机森林或其变体,因为事实证明它对类似于我的数据有效。但是我可以说服我尝试其他方法。


您的命名法没有任何问题。这是60个物品吗?然后,为了计算分类准确性,您需要将数据集分为训练,测试(以及验证)集。有多种方法可以做到这一点,但我认为倍交叉验证是最常见的。ķ
emrea

1
是的,只有这60个。但是我认为,对于随机森林,每个决策树都是用样本的子集创建的,因此,您可以通过将现有60个样本中的每个样本仅应用于森林中那些没有在施工期间看不到该样品。(stat.berkeley.edu/~breiman/RandomForests/cc_home.htm#ooberr)因此,这里可能不需要典型的交叉验证。
user116293 2012年

您应该非常担心在这里过拟合。您有1000个带有60个对象的变量,如果这是另一个问题,我会感觉好多了,我仍然会说,您应该担心过拟合。在进行分析之前,是否有逻辑或语义上的方法可以减少变量的数量?
2014年

Answers:


8

有没有一种使用先验知识的好方法,即所有非c对象都可能形成两个不同的簇

如果您使用的是基于树的方法,那么我认为这并不重要,因为这些分类器会划分特征空间,然后查看每个类中样本的比例。因此,重要的是类c在每个终端节点中的相对出现。

但是,如果您使用的是法线,LDA等的混合体,那么将两个群集组合在一起将不是一个好主意(假设类a和b组成了唯一的群集)。在这里,您需要保留类结构以准确描述映射到a,b和c的特征空间。这些模型假定每个类的要素具有不同的正态分布。如果将a和b组合在一起,则将强制单个正态分布适合于混合物。

总而言之,对于树来说,如果您执行以下操作就无关紧要:

I.创建三个分类器(1. a vs b,2。a vs c和3. b vs c),然后使用基于投票的方法进行预测。

二。合并类a和b形成两类问题。

三,预测所有三个类别,然后将预测映射到两个类别的值(例如f(c)= c,f(a)=非c,f(b)=非c)。

但是,如果使用适合每个类的分布的方法,请避免使用II。并测试I.或III。更适合您的问题


III听起来不错-尽管我认为如果分类器说样本是.33 a,.33 b和.34 c,我可能应该将a和b的概率求和,从而选择“非c”。
user116293 2012年

1
对于(I),有什么好的分割表决程序(1:a,2:c,3:b),或者这真的太稀有了,以至于没什么关系呢?
user116293 2012年

对于III。你的建议是正确的。对于I.,在3类数据上,我认为没有任何措施可以拆分表决(每个表决1个),因为必须侵犯传递性。但是,对于4个以上的班级,您可以想象在顶部有平局,在这种情况下,您可以使用数字而不是赢/输;即,权重之和为最大权重类别。
muratoa 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.