【问题标题】:Class probability randomForest in RR中的类概率randomForest
【发布时间】:2014-09-15 22:20:07
【问题描述】:

我正在尝试获取随机森林二元分类的类概率。我正在努力获得正确的语法。我试图阅读帮助文件,但我没有找到答案。有什么想法吗?

> str(training)
'data.frame':   160051 obs. of  5 variables:
 $ repeater           : Factor w/ 2 levels "FALSE","TRUE": 1 1 1 1 1 1 1 1 1 1 ...
 $ offervalue         : num  0.75 0.75 1.5 0.75 1.25 1.25 1 0.75 0.75 0.75 ...
 $ has_bought_brand   : Factor w/ 2 levels "FALSE","TRUE": 1 1 2 1 1 1 2 1 1 1 ...
 $ has_bought_company : Factor w/ 2 levels "FALSE","TRUE": 1 1 2 1 2 2 2 2 1 1 ...
 $ has_bought_category: Factor w/ 2 levels "FALSE","TRUE": 2 1 1 1 2 2 2 1 1 1 ...

> model <- randomForest(repeater ~ offervalue + has_bought_brand + has_bought_company + has_bought_category, training, ntree=50)

> testPrediction <- predict(model, testing)

> str(testPrediction)
 Factor w/ 2 levels "FALSE","TRUE": 1 1 1 1 1 1 1 1 1 1 ...
 - attr(*, "names")= chr [1:64020] "4" "5" "11" "12" ...

【问题讨论】:

    标签: r machine-learning random-forest


    【解决方案1】:

    首先,在发布代码时,请确保它是reproducible;理想情况下,我们应该能够将其复制/粘贴到我们自己的 R 会话中,以获得与您相同的错误/问题。发布数据集的str() 没有帮助。通常,您可以在所涉及功能的帮助页面中找到简单的示例。以下示例来自?randomForest

    set.seed(71)
    iris.rf <- randomForest(Species ~ ., data=iris, importance=TRUE,
                            proximity=TRUE)
    

    由于class(iris.rf)==c("randomForest.formula", "randomForest"),当您调用predict(iris.rf) 时,您实际上是在调用predict.randomForest()?predict.randomForest 的帮助页面提供了所有各种参数的文档,包括 type= 参数。默认情况下它只返回预测的类,但您可以使用type="prob"返回预测概率)

    predict(iris.rf, type="prob")
    

    返回

             setosa  versicolor   virginica
    1   1.000000000 0.000000000 0.000000000
    2   1.000000000 0.000000000 0.000000000
    3   1.000000000 0.000000000 0.000000000
    4   1.000000000 0.000000000 0.000000000
    # etc ....
    

    【讨论】:

    • 感谢您提供关于使用公共数据在 Stack Overflow 上发布示例的好建议。
    猜你喜欢
    • 2014-11-01
    • 2017-08-13
    • 2022-06-28
    • 2018-10-29
    • 1970-01-01
    • 2018-10-27
    • 2022-01-14
    • 2022-01-05
    • 2016-08-11
    相关资源
    最近更新 更多