【发布时间】:2015-06-20 20:53:04
【问题描述】:
如果我的数据框中的一列是数据类型字符,我会收到以下错误。
> 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"
如何解决这些问题?
【问题讨论】:
-
将您的字符值转换为因子。
df$Petal.Width <- factor(df$Petal.Width)。您不能真正为任意字符串值建模。您至少需要假设它们是离散/分类变量。 -
@MrFlick ,感谢您的回复。但是转换为因子的麻烦在于,随着因子数量的增加,这些决策树包确实很慢。有没有办法让它们保持数字/连续变量并使用这个包?
-
您可以将字符值映射到数字并改用
numeric列向量输入。 -
你试过使用包
randomForest吗? -
这是一个方法问题。如果您对这些软件包使用的统计方法以及为什么它们在因子数量上的扩展性不佳有疑问,您会在 Cross Validated 上获得更好的运气,因为此类统计讨论是热门话题。
标签: r decision-tree