R语言中已经有很多用于神经网络的package。譬喻nnet、AMORE以及neuralnet,nnet提供了最常见的前馈反向流传神经网络算法。AMORE包则更进一步提供了更为富厚的节制参数,并可以增加多个埋没层。neuralnet包的改造在于提供了弹性反向流传算法和更多的激活函数形式。但以上各包均环绕着BP网络,并未涉及到神经网络中的其它拓扑布局和网络模子。而新出炉的RSNNS包则在这方面有了极大的扩充。
Stuttgart Neural Network Simulator(SNNS)是德国斯图加特大学开拓的优秀神经网络仿真软件,为海外的神经网络研究者所遍及回收。其手册内容极为富厚,同时支持友好的 Linux 平台。而RSNNS则是毗连R和SNNS的东西,在R中即可直接挪用SNNS的函数呼吁。
#载入措施和数据
library(RSNNS)#将数据顺序打乱
data(iris)
iris = iris[sample(1:nrow(iris),length(1:nrow(iris))),1:ncol(iris)]#界说网络输入
irisValues= iris[,1:4]#界说网络输出,并将数据举办名目转换
irisTargets = decodeClassLabels(iris[,5])#从中分别出练习样本和检讨样本
iris = splitForTrainingAndTest(irisValues, irisTargets, ratio=0.15)#数据尺度化
iris = normTrainingAndTestSet(iris)#操作mlp呼吁执行前馈反向流传神经网络算法
model = mlp(iris$inputsTrain, iris$targetsTrain, size=5, learnFunc=”Quickprop”, learnFuncParams=c(0.1, 2.0, 0.0001, 0.1),maxit=100, inputsTest=iris$inputsTest, targetsTest=iris$targetsTest)#操作上面成立的模子举办预测
predictions = predict(model,iris$inputsTest)#生成夹杂矩阵,调查预测精度
confusionMatrix(iris$targetsTest,predictions)功效如下:
predictions
targets 1 2 3
1 7 0 0
2 0 5 0
3 0 1 10
本例中mlp意指多层感知器,RSNNS包中其它重要的网络形式还包罗: dlvq(动态进修向量化网络), rbf(径向基函数网络), elman(elman神经网络), jordan(jordan神经网络), som(自组织映射神经网络), art1(适应性共振神经网络)等等
参考资料:
http://www.ra.cs.uni-tuebingen.de/SNNS/
http://cran.csdb.cn/web/packages/RSNNS/RSNNS.pdf