【问题标题】:Implementing one-hot encoding using r使用 r 实现 one-hot 编码
【发布时间】:2019-06-28 01:54:29
【问题描述】:

对于我正在处理的数据集,我想对许多字符变量进行一次性编码,以构建一些预测模型。在我的代码中,我排除了两个变量,因为对它们进行编码没有意义,它们是商品标识符和商店的成立年份。这是我正在使用的代码:

one_hot_encoding = dummyVars("~.", data = train[,- 
c("Item_Identifier", "Outlet_Establishment_Year")], fullRank = T)
ohe_df = data.table(predict(one_hot_encoding, train[,- 
c("Item_Identifier", "Outlet_Establishment_Year")]))
train = cbind(train[,"Item_Identifier"], ohe_df)  

当执行第一行时,它给出了这个错误:

-c("Item_Identifier", "Outlet_Establishment_Year") 中的错误: 一元运算符的参数无效。

为什么?还有一个关于dummyVars 函数的问题:它是否默认排除输入数据集的数值变量?

【问题讨论】:

    标签: r one-hot-encoding


    【解决方案1】:

    是的,它默认排除数字变量。

    关于您的错误,有一些解决方法:

    1. 使用dplyr-package

      select(train, -Item_Identifier, -Outlet_Establishment_Year)

    2. 并且使用 base-R

      train[, -which(names(train) %in% c("Item_Identifier", "Outlet_Establishment_Year")]

      或者只使用列号

      train[, -c(1,6)]

    【讨论】:

    • 不,dummyVars() 函数的其余部分保持不变。
    猜你喜欢
    • 2020-09-18
    • 2018-03-24
    • 2022-01-10
    • 1970-01-01
    • 2017-06-21
    • 2021-04-14
    • 1970-01-01
    • 2021-05-26
    • 2021-11-02
    相关资源
    最近更新 更多