r - 尝试使用 one_hot 编码时出错
问题描述
我知道这可能是一个潜在的重复问题,但我发现其他答案在我的情况下不起作用。
我正在使用以下数据集:
> str(total_data)
'data.frame': 32260 obs. of 13 variables:
$ age : int 40 42 44 32 25 31 30 30 27 28 ...
$ workclass : Factor w/ 4 levels "Other-Unknown",..: 3 2 2 1 2 2 2 3 2 3 ...
$ education : Ord.factor w/ 7 levels "1"<"2"<"3"<"4"<..: 2 3 2 2 2 3 2 2 2 2 ...
$ marital.status : Factor w/ 5 levels "Divorced","Married",..: 2 1 2 3 3 3 3 2 2 3 ...
$ occupation : Factor w/ 6 levels "Blue-Collar",..: 5 3 6 2 1 6 6 1 1 6 ...
$ race : Factor w/ 5 levels "Amer-Indian-Eskimo",..: 1 5 1 1 5 5 5 5 5 5 ...
$ sex : Factor w/ 2 levels "Female","Male": 2 2 2 1 2 2 2 2 1 1 ...
$ hours.per.week : int 84 40 40 38 40 38 48 70 35 38 ...
$ naitive.country: Factor w/ 41 levels "?","Cambodia",..: 39 39 39 39 39 39 39 12 39 39 ...
$ classifier : chr "<=50K" "<=50K" ">50K" "<=50K" ...
$ class_num : Factor w/ 2 levels "1","2": 1 1 2 1 1 1 1 2 1 1 ...
$ age_norm : num 0.315 0.342 0.37 0.205 0.11 ...
$ hours_norm : num 0.847 0.398 0.398 0.378 0.398 ...
我正在尝试使用 one_hot() 将因子编码为二进制,但收到以下错误消息:
encoded_data <- one_hot(total_data, dropCols = FALSE)
错误信息:
Error in `[.data.frame`(dt, , cols, with = FALSE) :
unused argument (with = FALSE)
我不确定“with”参数是什么,因为我在 R 文档中没有看到它。
我还看到有人建议使用model.matrix。但是,当我使用它时,我的有序因子也会被编码,这是我试图避免的。
这就是我的有序因子变量发生的情况:
education.L education.Q education.C education^4 education^5 education^6
-3.779645e-01 9.690821e-17 4.082483e-01 -0.5640761 4.364358e-01 -0.19738551
-1.889822e-01 -3.273268e-01 4.082483e-01 0.0805823 -5.455447e-01 0.49346377
我也不确定为什么属性名称后有时会有字母或数字。即教育**.L** 与教育**^5**
解决方案
将 data.frame 转换为 data.table,它应该可以正常工作。
library(data.table)
dt = data.table(total_data)
one_hot(dt)
推荐阅读
- amazon-web-services - lambda 函数中的 Rest-API 调用失败
- javascript - VS Code 显示模块未找到,即使 WebPack 构建有效
- html - 如何在 Mobile Res 上更改字体颜色
- python - 如何使用 sympy 为 x 的正弦生成泰勒级数
- java - 在 xml 文件中找不到元素“beans”错误的声明
- php - .htaccess 用 GET 变量重写
- apache-camel - 数据不使用骆驼从一个端点传输到另一个端点
- dialogflow-es - DialogFlow GCF 实现 - 拥有项目的计费帐户在状态缺席时被禁用
- python - 如何在 Numpy 中使用 timeit
- x86 - 在为 intel64 vs amd64 开发软件时,我需要担心什么?