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

可見,人工神經網絡算法在蘑菇數據分類預測上具有較高的精度。

反饋與建議


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM