【发布时间】:2021-08-31 16:07:40
【问题描述】:
我想通过 tidyverse 在 R 中进行 one-hot 编码,而不是使用 caret、mltools 等包。
## Load vcd package
library(vcd)
## Load Arthritis dataset (data frame)
data(Arthritis)
Arthritis[1:5, ][2:5]
Treatment Sex Age Improved
1 Treated Male 27 Some
2 Treated Male 29 None
3 Treated Male 30 None
4 Treated Male 32 Marked
5 Treated Male 46 Marked
在 tidyverse 中是否有一种简单的方法可以做到这一点,我为每个分类列保留 n-1 个值?例如,性别在这个数据集中是二进制的,所以我只需要一个用于男性或女性的单热编码列。年龄特征将被忽略。
【问题讨论】:
-
我不完全理解您所说的“保留 n-1 个值” 是什么意思。您介意明确并显示我们可以提出的任何代码的预期输出吗?谢谢!
-
例如,Sex 有两个值(男性和女性),我只想将其编码为 1 列(n - 1 = 2 -1 = 1),例如可以将其命名为 Sex_Male。
-
你说的是添加虚拟变量吗?
-
是的,本质上是虚拟变量,很抱歉造成混淆
-
我将此标记为骗子(为了使第一个其他问题保持在顶部),但这仍然是一个好问题。随意接受其中一个答案。
标签: r machine-learning