R语言-神经网络包RSNNS

<head> <title></title> </head> <body>

斯图加特神经网络模拟器(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

可见,人工神经网络算法在蘑菇数据分类预测上具有较高的精度。

反馈与建议

posted @ 2015-12-17 20:03  ShangFR  阅读(7913)  评论(1编辑  收藏  举报