【问题标题】:Regression Tree Forest in WekaWeka 的回归树森林
【发布时间】:2012-10-27 20:39:51
【问题描述】:

我正在使用 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 分类器应该能够给我条件概率分布。我只需要再考虑一下。如有错误,请指正。

【问题讨论】:

    标签: data-mining classification weka regression random-forest


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 所以这里的困难在于我没有我想要学习的实际分布数据。相反,我有它的样本。因此,如果我将每个类分成自己的数据集,这将是一个二元分类任务。我想我可以这样做,但是否有一些原则上的理由可以更好地工作?
    • 如果你在预测概率,它就变成了一个回归任务——你预测的是一个数字而不是一个标签。分成几个数据集的目的是能够为每个类单独判断数据属于它的概率是多少。
    猜你喜欢
    • 2019-10-23
    • 2016-04-29
    • 2018-12-02
    • 2013-12-04
    • 2019-12-06
    • 2013-09-22
    • 2021-12-25
    • 2018-06-24
    • 2016-04-24
    相关资源
    最近更新 更多