神经网络实例

junjun
2016年2月10日


实例一、神经网络用于鸢尾花

nnet包的nnet函数,nnet只能创建single-hidden-layer的神经网络

#1、加载数据
data("iris")

#2、创建训练集和测试集数据
index <- sample(1:2, nrow(iris), prob=c(0.7, 0.3), replace = T)
train_iris <- iris[index==1, ]
test_iris <- iris[index==2, ]

#3、建模
library(nnet)
model <- nnet(Species~., train_iris, size=20, decay=0.01, maxit=500, trace=F)

#4、模型评估
model
## a 4-20-3 network with 163 weights
## inputs: Sepal.Length Sepal.Width Petal.Length Petal.Width 
## output(s): Species 
## options were - softmax modelling  decay=0.01
pred <- predict(model, train_iris, type="class")
mean(pred==train_iris[, 5])
## [1] 0.9807692
table(pred, train_iris[, 5])
##             
## pred         setosa versicolor virginica
##   setosa         39          0         0
##   versicolor      0         25         1
##   virginica       0          1        38
#5、预测
pred_iris <- predict(model, test_iris, type="class")
mean(pred_iris==test_iris[, 5])
## [1] 1
table(pred_iris, test_iris[, 5])
##             
## pred_iris    setosa versicolor virginica
##   setosa         11          0         0
##   versicolor      0         24         0
##   virginica       0          0        11