RPART 对连续变量、有序变量和分类变量使用不同的拆分过程。有没有办法“通知” RPART 关于变量类型?为了说明,我有一个带有整数值的序数变量 (1,..,5)。现在,我需要将它强制转换为字符,这样 RPART 就不会像连续变量一样拆分它。
我想避免更改我所有的变量类型,只是为了 RPART。我宁愿以某种方式宣布它。
谢谢。
RPART 对连续变量、有序变量和分类变量使用不同的拆分过程。有没有办法“通知” RPART 关于变量类型?为了说明,我有一个带有整数值的序数变量 (1,..,5)。现在,我需要将它强制转换为字符,这样 RPART 就不会像连续变量一样拆分它。
我想避免更改我所有的变量类型,只是为了 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 对此做出了一个不正确的假设。