使用随机森林(或其他分类器)进行分层分类

机器算法验证 机器学习 分类 多层次分析 随机森林 分层
2022-03-09 08:20:04

所以,我有一个大约 60 x 1000 的矩阵。我将其视为具有 1000 个特征的 60 个对象;60 个对象分为 3 个类(a、b、c)。每个类有 20 个对象,我们知道真正的分类。我想对这组 60 个训练示例进行监督学习,我对分类器准确性(和相关指标)以及 1000 个特征的特征选择都很感兴趣。

首先,我的命名如何?

现在真正的问题:

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

1个回答

有没有一种很好的方法来使用所有非 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) = not c,f(b) = not c)。

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