神经网络(人工神经网络),是一种模仿生物网络(动物的中枢神经系统,特别是大脑)的结构和功能的数学模型或计算模型。 现代神经网络,是一种非线性的数据建模工具,常用来对输入和输出间复杂的关系进行建模。用来探索数据的未知模式。
神经网络用到的包”nnet” nnet(formula,data,size,decay,maxit,linout,trace)
代码实现:
library(nnet)
#数据清洗
data <- read.csv("customers.csv")
for(colName in names(data)) {
data <- data[data[, colName]!='NULL', ]
}
write.csv(data, file="data.csv", row.names=FALSE, quote=FALSE)
data <- read.csv("data.csv")
data <- data[, colnames(data)!='CustomerID']
#设置虚拟变量
mmFormula <- ~ .;
modelData <- model.matrix(mmFormula, data)
data <- as.data.frame(modelData[, -1])
names(data)
total <- nrow(data)
index <- sample(1:total, total*0.7)
data.train <- data[index, ]
data.test <- data[-index, ]
formula <- Home.OwnershipRent ~ .;
data.train.nnet = nnet(
formula = formula,
data = data.train,
size = 3,
decay = 0.1,
linout = T,
trace = F
)
data.test.predict <- predict(
data.train.nnet,
newdata = data.test
)
data.test.predict <- ifelse(data.test.predict>0.5, "Rent", "Own")
table(data.test$Home.Ownership, data.test.predict)
data.test.predict
Own Rent
0 530 78
1 90 228
prop.table(table(data.test$Home.Ownership, data.test.predict), 1)
data.test.predict
Own Rent
0 0.8717105 0.1282895
1 0.2830189 0.7169811