matlab神經(jīng)網(wǎng)絡(luò)算法實例 matlabSOM神經(jīng)網(wǎng)絡(luò)算法?
matlabSOM神經(jīng)網(wǎng)絡(luò)算法?使用newsom函數(shù)創(chuàng)建網(wǎng)絡(luò):net=newsom(PR,[D1,D2,^],TFCN,DFCN,OLR,OSTEPS,TLR,TND)PR:R個輸入元素的最大值和最小
matlabSOM神經(jīng)網(wǎng)絡(luò)算法?
使用newsom函數(shù)創(chuàng)建網(wǎng)絡(luò):net=newsom(PR,[D1,D2,^],TFCN,DFCN,OLR,OSTEPS,TLR,TND)PR:R個輸入元素的最大值和最小值的設(shè)定值,R*2維矩陣Di:第I層的維數(shù),默認為[58]TFCN:拓撲函數(shù),默認為hextopDFCN:距離函數(shù),默認為linkdistOLR:分類階段學習速率,默認為0.9OSTEPS:分類階段的步長,默認為1000TLR:調(diào)諧階段的學習速率,默認為0.02TNS:調(diào)諧階段的領(lǐng)域距離,默認為1.例子:>> P=[rand(1,400)*2rand(1,400)]>> plot(P(1,:),P(2,:),".","markersize",20)>> net=newsom([0 10 1],[3 5])>> net=train(net,P)>> hold on>> plotsom(net.iw{1,1},net.layers{1}.distances)>> hold off第二個函數(shù):newc函數(shù)功能:該函數(shù)用于創(chuàng)建一個競爭層net=newcnet=newc(PR,S,KLR,CLR)S:神經(jīng)元的數(shù)目KLR:Kohonen學習速度,默認為0.01CLR:Conscience學習速度,默認為0.001net:函數(shù)返回值,一個新的競爭層。也可以參考附件的代碼,里面有一個案例是SOM神經(jīng)網(wǎng)絡(luò)的。
既然使用神經(jīng)網(wǎng)絡(luò)也可以解決分類問題,那SVM、決策樹這些算法還有什么意義呢?
要看你的數(shù)據(jù)量和樣本數(shù)量,不同的樣本數(shù)量和特征數(shù)據(jù)量適合采用的算法都不一樣。神經(jīng)網(wǎng)絡(luò)等深度學習算法需要訓練很大的數(shù)據(jù)集才能構(gòu)建比較好的預測模型。很多互聯(lián)網(wǎng)大公司比較喜歡深度學習算法是他們獲得的用戶數(shù)據(jù)都是數(shù)以億計的海量數(shù)據(jù),這是比較適合卷積神經(jīng)網(wǎng)絡(luò)等深度學習算法。
如果你的樣本數(shù)量很少,比較合適的是使用SVM,決策樹等機器學習算法,如果你的數(shù)據(jù)集比較大,可以考慮使用卷積神經(jīng)網(wǎng)絡(luò)等深度學習算法。
這有一個圖,就是說明任何根據(jù)樣本數(shù)量和數(shù)據(jù)集大小來選擇機器學習算法的。
如果覺得對您有幫助,可以多多點贊哦,也可以隨手點個關(guān)注哦,謝謝!