R中的决策树的派对包不支持字符数据类型?

时间:2015-04-15 03:17:01

标签: r decision-tree

如果我的数据框中的一列是数据类型字符,我会收到以下错误。

> library("party")
> r2 <- ctree(Sepal.Length ~ .,data=df)
Error in trafo(data = data, numeric_trafo = numeric_trafo, factor_trafo = factor_trafo,  : 
  data class character is not supported
> plot(r2)    
> sapply(df,class)
Sepal.Length  Sepal.Width Petal.Length  Petal.Width      Species 
    "factor"     "factor"     "factor"  "character"     "factor" 

有时,我也会收到此错误

 Error in match.arg(type) : 
  'arg' should be one of “response”, “node”, “prob” > 
> sapply(df,class)
          AGE        GENDER          STAY      GRADE          XYNS        CHARGE 
    "integer"     "integer"      "factor"     "integer"     "integer"     "integer" 

我如何解决这些问题?

1 个答案:

答案 0 :(得分:2)

响应变量的比例和所有解释变量对于CTree算法的两个方面很重要:(1)在每个节点中执行的关联测试,以确定应该使用哪个变量进行拆分。 (2)在给定的解释变量中选择最佳分裂点。

关联测试总是捕获&#34;相关性&#34;或者&#34;缺乏独立性&#34;响应和每个解释变量之间。相关性度量的类型取决于所涉及变量的规模(参见本文关于交叉验证:https://stats.stackexchange.com/questions/144143)。变量可以是数字(或整数),无序分类(即因子),有序分类或删失(Surv对象)。为数据框中的给定变量选择合适的变量类型对于从树中获得有意义的结果至关重要。

类似地,确定给定变量中可能的二进制分裂在很大程度上取决于规模。并且character不是一个标准方法,如何评估相关性或分裂。