2

我正在使用 Weka,并希望使用随机森林进行回归。具体来说,我有一个数据集:

Feature1,Feature2,...,FeatureN,Class
1.0,X,...,1.4,Good
1.2,Y,...,1.5,Good
1.2,F,...,1.6,Bad
1.1,R,...,1.5,Great
0.9,J,...,1.1,Horrible
0.5,K,...,1.5,Terrific
.
.
.

我不想学习预测最可能的类别,而是想学习给定特征向量的类别上的概率分布。我的直觉是,在 Weka 中仅使用 RandomForest 模型是不合适的,因为它会尝试最小化其绝对误差(最大似然)而不是平方误差(条件概率分布)。这种直觉对吗?如果我想执行回归而不是分类,是否有更好的模型可以使用?

编辑:我现在实际上在想,实际上这可能不是问题。据推测,分类器正在学习条件概率 P(Class | Feature1,...,FeatureN),而得到的分类只是在 Class 中找到使概率分布最大化的 c。因此,一个 RandomForest 分类器应该能够给我条件概率分布。我只需要再考虑一下。如果那是错误的,请纠正我。

4

1 回答 1

2

如果要显式预测每个类的概率,则需要不同的输入数据。也就是说,您需要替换要预测的值。您需要 n 个数据集(用于 n 个不同的标签),而不是一个具有类标签的数据集,其中每个唯一特征向量具有聚合数据。您的数据看起来像

Feature1,...,Good
1.0,...,0.5
0.3,...,1.0

Feature1,...,Bad
1.0,...,0.8
0.3,...,0.1

等等。您需要为每个类学习一个模型,并在要分类的任何数据上分别运行它们。也就是说,对于每个标签,您学习一个模型来预测一个数字,该数字是在给定特征向量的情况下属于该类别的概率。

如果您不需要明确预测概率,请查看 Weka 中的贝叶斯分类器,它利用了他们学习的模型中的概率。

于 2012-11-07T19:04:33.097 回答