r语言-神经网络包RSNNS

来源:转载

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

分享给朋友:
您可能感兴趣的文章:
随机阅读: