如何用R中的几个分类变量对数据集进行热编码?

如何用R中的几个分类变量对数据集进行热编码?,r,analytics,data-science,one-hot-encoding,R,Analytics,Data Science,One Hot Encoding,有人知道我如何更好地清理这些数据,以便对其进行逻辑回归吗 我试图用多个类别(如下面的示例数据集所示)对变量进行热编码,但不确定如何进行 我计划将收入更改为1和0,因为只有2个类别,但我不能对其余类别执行相同的操作 我目前的计划是对所有列出的变量进行逻辑回归: data <- read.csv("adult_income.csv") mylogit <- glm(formula = income ~ age + workclass + educaitonal-num +

有人知道我如何更好地清理这些数据,以便对其进行逻辑回归吗

我试图用多个类别(如下面的示例数据集所示)对变量进行热编码,但不确定如何进行

我计划将收入更改为1和0,因为只有2个类别,但我不能对其余类别执行相同的操作

我目前的计划是对所有列出的变量进行逻辑回归:

data <- read.csv("adult_income.csv")
mylogit <- glm(formula = income ~ age + workclass + educaitonal-num + 
                   martial status + occupation + race + gender + 
                   capital-gain + capital-loss + hours-per-week + 
                   native-country, data = data, family = "binomial")

dataR在as.factor()函数中封装变量时,hot会很好地对分类变量进行内部编码。

问题已经在

R中得到了回答,当您将变量包装到as.factor()函数中时,一个hot在内部对分类变量进行了很好的编码。 问题已经在

使用
数据。表
mltools

df <- as.data.table(df)
df_oh <- one_hot(df)
导致:
> head(df)
  age education_level marital_status  occupation  gender    hours income
1  26              12        Widowed Poledancing   Woman 39.69357   >50K
2  70              12        Widowed Poledancing     Man 39.35318   >50K
3  21              14       Divorced       Admin   Woman 40.72573  <=50K
4  56               1        Married     Banking     Man 39.04525   >50K
5  81               2        Widowed     Farming Unicorn 39.21665  <=50K
6  38               5        Widowed       Admin     Man 39.94481  <=50K
>头部(df)
年龄教育水平婚姻状况职业性别时数收入
12612丧偶波兰舞女39.69357>50K
27012丧偶波兰男子39.35318>50K
32114离婚行政管理妇女40.72573 50K
5 812丧偶农业独角兽39.21665
使用
数据。表
mltools

df <- as.data.table(df)
df_oh <- one_hot(df)
导致:
> head(df)
  age education_level marital_status  occupation  gender    hours income
1  26              12        Widowed Poledancing   Woman 39.69357   >50K
2  70              12        Widowed Poledancing     Man 39.35318   >50K
3  21              14       Divorced       Admin   Woman 40.72573  <=50K
4  56               1        Married     Banking     Man 39.04525   >50K
5  81               2        Widowed     Farming Unicorn 39.21665  <=50K
6  38               5        Widowed       Admin     Man 39.94481  <=50K
>头部(df)
年龄教育水平婚姻状况职业性别时数收入
12612丧偶波兰舞女39.69357>50K
27012丧偶波兰男子39.35318>50K
32114离婚行政管理妇女40.72573 50K

5 81 2丧偶农业独角兽39.21665安装库假人

例如:

library(dummies)
# example data 
df1 <- data.frame(id = 1:4, year = 1991:1994)
df1 <- cbind(df1, dummy(df1$year, sep = "_"))

安装库假人

例如:

library(dummies)
# example data 
df1 <- data.frame(id = 1:4, year = 1991:1994)
df1 <- cbind(df1, dummy(df1$year, sep = "_"))

我的目标是创建一个logit模型,根据个人的年龄、职业、工人阶级等,该模型可以反映个人收入高于或低于50k的概率。我相信matrix.model()就是您想要的。如果它对分类变量使用一个热编码,我就不肯定了。欢迎来到Stackoverflow,@peterpra!如果您可以通过
dput(head(df))
将数据发布到原始问题中或创建模拟数据,则效果会更好。您可能会发现下面的链接很有用:您可能会发现这个链接很有用:我的目标是创建一个logit模型,根据个人的年龄、职业、工人阶级等,该模型反映个人收入高于或低于50k的概率。我相信matrix.model()就是您想要的。如果它对分类变量使用一个热编码,我就不肯定了。欢迎来到Stackoverflow,@peterpra!如果您可以通过
dput(head(df))
将数据发布到原始问题中或创建模拟数据,则效果会更好。您可能会发现以下链接很有用:您可能会发现此链接很有用: