【问题标题】:R predict function using 'prob' typeR使用'prob'类型预测函数
【发布时间】:2018-12-31 06:56:32
【问题描述】:

我有一个包含销售交互详细信息的数据框 ('fulltrans')。我试图预测的变量是跨多个变量的关联交互是否有效地导致了客户销售(“标志”)。我正在尝试使用以下代码将决策树模型拟合到 fulltrans:

    '%ni%' <- Negate('%in%')
    trainDataIndex <- createDataPartition(fulltrans$Flag, p=0.7, list=F)
    trainData <- fulltrans[trainDataIndex, ]
    testData <- fulltrans[-trainDataIndex, ]
    down_train <- downSample(x = testData [, colnames(trainData) %ni% "Flag"], y= trainData$Flag)
    rectree_fit <- rpart(Class ~., data = down_train)
    test <- predict(rectree_fit, testData, type = 'prob')
    View(test)

使用模型预测后,输出如下:

                 0         1
    4    0.1623616 0.8376384
    7    0.1623616 0.8376384
    15   0.1623616 0.8376384
    22   0.1147541 0.8852459
    ...

如果我理解正确,左侧是数据框中特定观察值的索引。我将如何过滤测试中 1 的百分比大于 70% 的事务,并从 testData 中检索与这些索引关联的完整交互详细信息?

我已经尝试过了,但过滤名为 1 的列似乎存在问题。

     View(filter(test, '1' >= .80))

或者,有没有办法让我生成索引号列表,然后只从主数据框中选择该索引列表?

谢谢!

【问题讨论】:

  • 1 是一个非标准变量名。尝试在它周围加上反引号,如 ` 1 `。
  • @DanY 谢谢你的建议。刚试了一下,继续得到这个错误 视图中的错误:没有适用于 'filter_' 的方法应用于类“c('matrix','double','numeric')”的对象

标签: r prediction


【解决方案1】:

这是我想出的解决方案。我提取了测试表的行名,并从原始数据帧 fulltrans 中索引了这些行名。

    test <- predict(rectree_fit, testData, type = 'prob')
    index_list <- as.numeric(rownames(test))
    test_w_details <- fulltrans[c(pls),]
    View(test_w_details)

输出包括所有原始变量及其相关行的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多