資料探勘---BP神經網路
R中關於神經網路的包:nnet、AMORE、neuralnet以及RSNNS
nnet
包提供了最常見的前饋反向傳播神經網路演算法,構建單隱層神經網路;
AMORE
包則進一步提供了更為豐富的控制引數,並可以增加多個隱層;
neuralnet
包的改進在於提供了彈性反向傳播演算法和更多的啟用函式形式。
一、構建訓練集與檢驗集
data(iris)
ind <- sample(2,nrow(iris),replace=T,prob=c(0.7,0.3))
trainSet <- iris[ind==1,]
testSet <- iris[ind==2,]
二、nnet包的nnet函式
nnet(traindata,trainlable,size,rang=0.1,decay=5e-4,maxit=300)
#traindata:訓練資料,注意這裡的訓練資料要去掉類標籤
#trainlable:類別
#size:隱層神經元數目
#rang:初始化權值會在-rang和rang之間選擇
#decay:權值衰減引數
#maxit:最大迭代次數
#生成類別的示性函式,把類別數值化才能計算誤差(安裝nnet包才有效)
library(nnet)
trainlable <- class.ind(trainSet$Species)
testlable <- class.ind(testSet$Species)
bpnet <- nnet(trainSet[,- 5],trainlable,size=3,rang=0.1,decay=5e-4,maxit=300)
輸入層4個神經元(4個屬性),隱層3個神經元,輸出層3個神經元(3個類)
b:偏移(每個隱層結點有一個b,每個輸出層結點有一個b)
輸入層:i1,i2,i3,i4
隱層:h1,h2,h3
輸出層:o1,o2,o3
權值
#給出訓練集分類結果
trainpre<-predict(bpnet,trainSet[,-5])
#給出檢驗集的分類結果
testpre<-predict(bpnet,newdata=testSet[,-5])
table(testSet$Species,apply(testpre,1,function(x){names(x)[which.max(x)]}))
#左邊的是行(真實類標籤),右邊是列(預測列標籤)
三、AMORE包
應用AMORE包中的三個函式實現ANN構建:
①newff
函式:實現構建ANN網路框架
②train
函式:實現網路學習過程,即權值訓練過程;
③sim
函式:實現網路預測,對未知樣本類別的推斷。
trainattri <- trainSet[,-5] #訓練樣本特徵資訊
trainlabel <- trainSet[,5] #訓練樣本類別資訊
T <- class.ind(trainlabel) #示性函式
netframe <- newff(n.neurons=c(dim(trainattri)[2],3,dim(T)[2]),# n.neurons:輸入-隱層-輸出層的神經元數目
learning.rate.global=1e-4, #學習速率
momentum.global=0.001, #動量因子
error.criterium="LMS", #誤差預測方法
Stao=NA, #誤差引數
hidden.layer="sigmoid", #隱層神經元啟用函式
output.layer="sigmoid", #輸出層神經元啟用函式
method="ADAPTgdwm") #訓練方法
bpnet <- train(netframe, #由netff構建的網路(框架)
trainattri, #訓練樣本的特徵資訊
T, #訓練樣本的類別資訊
error.criterium="LMS",
report=T,n.shows=20,show.step=500)
#是否提供結果的圖形資訊或文字資訊
#report=T的前提下,report的次數為20,每迭代500次報告一次(步長)
#訓練總次數:n.shows*show.step
testattri <- testSet[,-5]
testlabel <- testSet[,5]
testPre <- sim(bpnet$net,testattri)
#由train函式生成的訓練好權值的ANN模型,bpnet不是sim的操作物件,而是bpnet中的元素net
#bpnet是一個list,bpnet$net即bpnet[[1]]
#待檢測的樣本(行為樣本,列為特徵資訊)
相關文章
- 資料探勘(9):BP神經網路演算法與實踐神經網路演算法
- BP神經網路神經網路
- BP神經網路流程圖神經網路流程圖
- bp神經網路學習神經網路
- 神經網路篇——從程式碼出發理解BP神經網路神經網路
- 機器學習——BP神經網路演算法機器學習神經網路演算法
- 為什麼說BP神經網路就是人工神經網路的一種?神經網路
- Andrew BP 神經網路詳細推導神經網路
- python對BP神經網路實現Python神經網路
- BP神經網路之MATLAB@GUI篇神經網路MatlabGUI
- 【原創】python實現BP神經網路識別Mnist資料集Python神經網路
- AI BP神經網路判斷手寫數字AI神經網路
- 深度神經網路(DNN)反向傳播演算法(BP)神經網路DNN反向傳播演算法
- 資料探勘(10):卷積神經網路演算法的一個實現卷積神經網路演算法
- 構建兩層以上BP神經網路(python程式碼)神經網路Python
- 《TensorFlow2.0》前饋神經網路和 BP 演算法神經網路演算法
- 基於Matlab的BP神經網路分段插值模擬Matlab神經網路
- 【深度學習基礎-08】神經網路演算法(Neural Network)上--BP神經網路例子計算說明深度學習神經網路演算法
- 卷積神經網路學習資料卷積神經網路
- 【深度學習基礎-07】神經網路演算法(Neural Network)上--BP神經網路基礎理論深度學習神經網路演算法
- 神經網路:numpy實現神經網路框架神經網路框架
- 神經網路神經網路
- LSTM神經網路神經網路
- 8、神經網路神經網路
- 模糊神經網路神經網路
- 聊聊從腦神經到神經網路神經網路
- 圖神經網路GNN 庫,液體神經網路LNN/LFM神經網路GNN
- 粒子群優化演算法對BP神經網路優化 Matlab實現優化演算法神經網路Matlab
- 大資料觸動了網路安全哪根神經?大資料
- 資料探勘與分析(網際網路行業)行業
- 機器學習(四):4層BP神經網路(只用numpy不調包)用於訓練鳶尾花資料集|準確率96%機器學習神經網路
- 【深度學習篇】--神經網路中的卷積神經網路深度學習神經網路卷積
- 【神經網路篇】--RNN遞迴神經網路初始與詳解神經網路RNN遞迴
- 卷積神經網路卷積神經網路
- 迴圈神經網路神經網路
- 人工神經網路(ANN)神經網路
- 生成型神經網路神經網路
- 機器學習整理(神經網路)機器學習神經網路