【问题标题】:Should I code binary factor variables as zero or one for decision tree?对于决策树,我应该将二进制因子变量编码为零还是一?
【发布时间】:2021-01-22 12:17:45
【问题描述】:

我正在构建一个决策树,我有一堆二进制变量,我将它们编码为因子。

它们都有两个层次,第一层次是“有属性”,第二层次是“没有属性”

并且该属性被替换为列的名称,例如“有蓝色玫瑰踏板”

这是我应用数据的模型,以 iris 作为示例代码

library(rpart)
model <- rpart(Species ~., data = iris)
par(xpd = NA) 
plot(model)
text(model, digits = 3)

我的问题是我应该将二进制因子变量编码为零还是一?

【问题讨论】:

  • 典型的约定是用1 编码真值,用0 编码假值,如果这是问题的话。
  • 用 1 编码 True 对于组合逻辑和算术运算是实用的:(a == True)*2 + (a == False)*3
  • 您通常将因子编码为 0(没有)1(有),因为如果您执行线性回归,则更容易解释系数。正表示与因子的存在呈正相关。
  • 在我的 tibble 中,我应该将它们编码为级别 1 和 0 的因子还是数字?
  • 在您提供rpart(Species ~ .,data=iris) 的示例中,唯一的因素是因变量Species,所以这并不重要,只要您记住水平的基本原理是什么因素。另外,请注意,您需要使用 method = "poisson" 进行分类

标签: r decision-tree


【解决方案1】:

典型的约定是用1 编码True 值,用0 编码False 值。

使用此映射可以通过以下方式组合逻辑和算术运算:

result <- (a == TRUE)*2 + (a == FALSE)*3

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-07
    • 1970-01-01
    • 1970-01-01
    • 2017-03-23
    • 2012-07-21
    • 2020-02-02
    • 2019-07-29
    相关资源
    最近更新 更多