【问题标题】:Actual characters used (0) when using rpart() in R在 R 中使用 rpart() 时使用的实际字符 (0)
【发布时间】:2019-08-28 18:35:38
【问题描述】:

我正在尝试建立一个模型来确定评论是正面的还是负面的。我已经加载了我的所有数据,将其标记为一个数据框,如果推荐与否,第一列是一个因素。

> str(reviewtokensdf)
'data.frame':   500 obs. of  270 variables:
 $ recommend       : Factor w/ 2 levels "0","1": 1 2 2 1 2 2 1 2 2 2 ...
 $ made            : num  3 0 0 0 0 0 1 0 0 0 ...
 $ site            : num  1 1 0 0 0 0 0 0 0 0 ...
 $ use             : num  1 0 0 0 1 0 0 0 0 0 ...
 $ one             : num  2 1 0 0 0 0 0 0 0 0 ...
 $ will            : num  1 1 1 0 0 0 0 0 0 0 ...
 $ make            : num  2 1 0 0 1 0 0 0 0 1 ...
 $ book            : num  6 0 0 0 3 0 0 0 0 0 ...
 $ place           : num  3 0 0 0 0 1 0 0 0 0 ...
 $ stay            : num  1 0 0 0 0 0 0 0 0 0 ...
 $ night           : num  1 0 0 2 0 0 0 0 0 1 ...
 $ arriv           : num  1 0 0 0 1 0 0 0 0 0 ...
 $ small           : num  1 0 0 0 0 0 0 0 0 0 ...
 $ floor           : num  1 0 0 3 0 0 1 0 0 0 ...

现在我一直使用较小的子集 (n=500) 仅用于测试目的,但这应该不是问题。 我一直在广泛使用这个( https://medium.com/analytics-vidhya/customer-review-analytics-using-text-mining-cd1e17d6ee4e) 指导教程,但我一直遇到这个问题:

当我使用此代码时:

tree = rpart(formula = recommend ~ ., data = reviewtokensdf,  method="class",control = rpart.control(minsplit = 200,  minbucket = 30, cp = 0.0001))
printcp(tree)

我希望在“树构造中实际使用的变量:”部分中至少看到一些单词,但它一直保持为 0,我不知道为什么。

    Classification tree:
    rpart(formula = recommend ~ ., data = reviewtokensdf, method = "class", 
        control = rpart.control(minsplit = 200, minbucket = 30, cp = 1e-04))

    Variables actually used in tree construction:
    character(0)

    Root node error: 40/500 = 0.08

    n= 500 

      CP nsplit rel error xerror xstd
    1  0      0         1      0    0

我尝试将 rpart 参数分解为基础知识(因此取消 rpart.control 等),而不是骰子。我在公式字段中尝试了 reviewtokensdf$recommended 之类的东西,结果相同。

当我运行我提到的指南中的示例数据时,一切都很好。但我看不出有什么不同。

【问题讨论】:

    标签: r machine-learning rpart


    【解决方案1】:

    问题在于您的rpart.control。它可能已经很好地调整了 当您拥有包含数千个文档的完整数据集,但只有 500,这些都是不好的选择。试试

    rpart.control(minsplit = 20, minbucket = 5, cp = 0.01)
    

    您可能会拆分一些节点。我不是说这些是 不错的选择,但它们将是一个更好的起点。走着瞧吧 和调整。

    【讨论】:

      猜你喜欢
      • 2014-06-16
      • 2015-08-29
      • 2021-09-10
      • 1970-01-01
      • 2018-02-08
      • 2020-08-18
      • 1970-01-01
      • 2016-03-07
      • 2010-11-22
      相关资源
      最近更新 更多