R分类算法-神经网络算法

来源:互联网 发布:ps淘宝详情页参数 编辑:程序博客网 时间:2024/06/05 04:12

神经网络(Artifical Neural Network)

神经网络(人工神经网络),是一种模仿生物网络(动物的中枢神经系统,特别是大脑)的结构和功能的数学模型或计算模型。
现代神经网络,是一种非线性的数据建模工具,常用来对输入和输出间复杂的关系进行建模。用来探索数据的未知模式。

这里写图片描述

神经网络用到的包”nnet”
nnet(formula,data,size,decay,maxit,linout,trace)

  • formula 建模表达式
  • data 训练数据
  • size 隐藏层的数量,一般3-5层
  • decay 模型的精度(防止拟合过度)
  • maxit 最大回归次数(防止拟合过度)
  • linout 是否使用S型函数处理输出,一般设置为TRUE
  • trace 是否输出训练过程的日记,一般设置为FALSE

代码实现:

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  228prop.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
原创粉丝点击