斯图加特神经网络模拟器(Stuttgart Neural Network Simulator)
人工神经网络(Artificial Neural Networks,简写为ANNs)是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。 —— 百度百科
Stuttgart Neural Network Simulator(SNNS)是德国斯图加特大学开发的优秀神经网络仿真软件,为国外的神经网络研究者所广泛采用。本文旨在通过使用R语言RSNNS包中mlp函数(多层感知器)对蘑菇数据建立预测模型,演示斯图加特神经网络模拟器的强大功能。RSNNS包中其它重要的网络形式还包括:dlvq(动态学习向量化网络)、rbf(径向基函数网络)、elman(elman神经网络)、 jordan(jordan神经网络)、som(自组织映射神经网络)、art1(适应性共振神经网络)等等。
R语言实现
#载入程序和数据
library("RSNNS")
## Warning: package 'RSNNS' was built under R version 3.2.3
## Loading required package: Rcpp
library("reshape")
## Warning: package 'reshape' was built under R version 3.2.3
mashroom = read.csv(file.choose()) #定义网络输入 mashroomValues= mashroom[,-1] #定义网络输出,并将数据进行格式转换 mashroomTargets = decodeClassLabels(mashroom[,1]) #从中划分出训练样本和检验样本 mashroom = splitForTrainingAndTest(mashroomValues, mashroomTargets, ratio=0.15) #数据标准化 mashroom = normTrainingAndTestSet(mashroom)
利用mlp命令执行前馈反向传播神经网络算法
model = mlp(mashroom(inputsTrain, mashroom)targetsTrain, size=10, inputsTest=mashroom(inputsTest, targetsTest=mashroom)targetsTest,linOut=T)
plotIterativeError(model)
par(mar=numeric(4),family='serif')
plot.nnet(model)
## Loading required package: scales
## Warning in plot.nnet(model): Bias layer not applicable for rsnns object
#利用上面建立的模型进行预测 predictions = predict(model,mashroom$inputsTest)
生成混淆矩阵,观察预测精度
confusionMatrix(mashroom$targetsTest,predictions)
## predictions
## targets 1 2
## 1 473 16
## 2 0 730
可见,人工神经网络算法在蘑菇数据分类预测上具有较高的精度。
反馈与建议
- 作者:ShangFR
- 邮箱:shangfr@foxmail.com