【发布时间】:2014-06-10 10:48:19
【问题描述】:
RPART 对连续变量、有序变量和分类变量使用不同的拆分过程。有没有办法“通知” RPART 关于变量类型?为了说明,我有一个带有整数值的序数变量 (1,..,5)。现在,我需要将它强制转换为字符,这样 RPART 就不会像连续变量一样拆分它。
我不想更改我所有的变量类型,只是为了 RPART。我宁愿以某种方式声明它。
谢谢。
【问题讨论】:
标签: r tree machine-learning rpart
RPART 对连续变量、有序变量和分类变量使用不同的拆分过程。有没有办法“通知” RPART 关于变量类型?为了说明,我有一个带有整数值的序数变量 (1,..,5)。现在,我需要将它强制转换为字符,这样 RPART 就不会像连续变量一样拆分它。
我不想更改我所有的变量类型,只是为了 RPART。我宁愿以某种方式声明它。
谢谢。
【问题讨论】:
标签: r tree machine-learning rpart
问题是 R 怎么知道foo <- c(1,2,3,2,4,5,1,5)(例如)不是数字变量?如果您查看 foo 的类,您会发现它是数字。
R> class(foo)
[1] "numeric"
您遇到的问题是,在非常基本的级别上,您没有告诉 R 数据类型是什么。在这种情况下,简单的解决方案是 不 将其转换为字符向量,而是将其转换为有序因子。如果只是因为这就是数据的事实! rpart 应该选择因素方面并相应地对待它。
因此,通知rpart变量是序数的方法是告诉R它是序数
foo <- as.ordered(foo)
R> foo
[1] 1 2 3 2 4 5 1 5
Levels: 1 < 2 < 3 < 4 < 5
我怀疑您错过了 R 的其他功能,因为您没有告诉它数据的性质。 R 对此做出了不正确的假设。
【讨论】: