在R中转换分类变量用于ANN(神经网络)

时间:2014-11-28 07:27:00

标签: r neural-network

我有数据集,其中包含客户的信用详情。我必须使用神经网络库在此数据集上构建神经网络模型。该数据集包含分类变量。我需要在运行它之前转换这些变量。有人可以帮我这个。

数据集中的变量:

checking_balance :< 0 DM,1 - 200 DM,未知,< 0 DM

目的:家具,教育,汽车

employment_duration :> 7年,1 - 4年,4 - 7年

credit_history :非常好,很关键,很好

months_loan_duration :6,48,12,42

谢谢..

1 个答案:

答案 0 :(得分:4)

要使用分类变量作为输入,您可以将其编码为一组布尔输入,每个布尔输入代表一个0或1的类别。例如,您的目的'变量可以转换为三个布尔变量(家具,教育,汽车)。

您可以像这样自动生成带有类别标志的列:

flags = data.frame(Reduce(cbind, 
     lapply(levels(d$purpose), function(x){(d$purpose == x)*1})
))
names(flags) = levels(d$purpose)
d = cbind(d, flags)

# Include the new columns as input variables
levelnames = paste(names(flags), collapse = " + ")
neuralnet(paste("output ~ ", levelnames), d)