斯圖加特神經網絡模擬器(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