如果我的数据框中的一列是数据类型字符,我会得到以下错误.
> 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"
我该如何解决这些问题?
最佳答案 响应变量的规模和所有解释变量对于CTree算法的两个方面很重要:(1)在每个节点中执行的关联测试,以确定应该使用哪个变量进行拆分. (2)在给定的解释变量中选择最佳分裂点.
关联测试总是捕获响应和每个解释变量之间的“相关性”或“缺乏独立性”.相关性度量的类型取决于所涉及的变量的规模(参见Cross Validated:https://stats.stackexchange.com/questions/144143上的这篇文章).变量可以是数字(或整数),无序分类(即因子),有序分类或删失(Surv对象).为数据框中的给定变量选择适当的变量类型对于从树中获得有意义的结果至关重要.
类似地,确定给定变量中可能的二进制分裂在很大程度上取决于规模.并且字符不是一个标准方法,如何评估相关性或分裂.