MATLAB分類與預測算法函數


1、glmfit()

  功能:構建一個廣義線性回歸模型。

  使用格式:b=glmfit(X,y,distr),根據屬性數據X以及每個記錄對應的類別數據y構建一個線性回歸模型,distr可取值為:binomial、gamma、inverse gaussian、normal(默認值)和poisson,分別代表不同類型的回歸模型。

2、patternnet()  

  功能:構建一個模式識別神經網絡。

  模式識別神經網絡是一個前饋神經網絡,通過對已知含有標簽的數據進行訓練得到神經網絡模型,從而可以對新的不含標簽的數據進行分類。用於輸入的標簽數據需要進行特殊編碼,即一個類別使用一個向量進行表示,比如一共有3個類別,那么類別1可以編碼為[1,0,0],類別3可以編碼為[0,0,1]。

  使用格式:net=patternnet(hiddenSizes,trainFcn,performFcn),構建一個隱含層神經元個數為hiddenSizes,模型函數為trainFcn,性能函數為performFcn的神經網絡net。

  主要的模型函數有:

  Trainscg:使用標度共梯度算法更新權值和偏移值

  Trainlm:使用LM算法更新權值和偏移值

  Trainbr:使用LM算法更新權值和偏移值(貝葉斯正則化)

  Trainrp:根據彈反向傳播算法更新權值和偏移值

3、fitctree()

  功能:構建一個二叉分類樹,每個分支節點根據輸人數據進行確定。

  使用格式:tree=fitctree(x,y),根據數據的屬性數據x以及每個記錄對應的類別數據y構建一個二叉分類樹tree。

4、fitensemble()

  功能:創建一個模型,該函數可以根據不同的參數構建不同的模型,可以用於分類或者回歸。

  使用格式:Ensemble=fitensemble(x,y,Method,NLearn,Learners),根據輸入屬性數據x以及每個記錄對應的y值(如y是離散型變量,則模型為分類模型;如y是連續型變量,則模型為回歸模型)、Method(用於構建的模型名稱)、NLearn(模型學習的循環次數)以及Learners值(弱學習算法名稱,有三個值,分別是“Discriminant”“KNN”“Tree”)構建一個分類或者回歸模型。該模型的性能依賴於弱學習算法的參數設置,如果這些參數設置不合理,將導致較差的性能。

  常用的method

  ①參數值:AdaBoostM1

  適用范圍:適用於二類別分類

  ②參數值:LogitBoost

  適用范圍:適用於二類別分類

  ③參數值:GentleBoost

  適用范圍:適用於二類別分類

  ④參數值:AdaBoostM2

  適用范圍:適用於三類別分類及以上

  使用fitensemble函數構建三個模型,對比三個模型的誤差。

rng(0,'twister')
Xtrain=rand(2000,20);
Ytrain=sum(Xtrain(:,1:5),2)>2.5;
idx=randsample(2000,200);
Ytrain(idx)=~Ytrain(idx);
%構建一個AdaBoostM1模型
ada=fitensemble(Xtrain,Ytrain,'AdaBoostM1',300,'Tree','LearnRate',0.1);
%構建一個RobustBoost模型,設置誤差閾值為0.15
rb1=fitensemble(Xtrain,Ytrain,'RobustBoost',300,'Tree','RobustErrorGoal',0.15,'RobustMaxMargin',1);
%構建一個RobustBoost模型,設置誤差閾值為0.01
rb2=fitensemble(Xtrain,Ytrain,'RobustBoost',300,'Tree','RobustErrorGoal',0.01)
figure
plot(resubLoss(rb1,'Mode','Cumulative'))
hold on
plot(resubLoss(rb2,'Mode','Cumulative'),'r--');
plot(resubLoss(ada,'Mode','Cumulative'),'g.');
hold off
xlabel('Number of trees');
ylabel('Resubstitution error');
legend('ErrorGoal=0.15','ErrorGoal=0.01','AdaBoostM1','Location','NE');

5、fitNaiveBayes()

  功能:創建一個朴素貝葉斯分類器。

  使用格式:NBModel=fitNaiveBayes(x,y),根據輸入數據x以及每個x對應的類別號y(如果y為NaN或者空字符串‘’或者unidefined,都會被視為缺失值,朴素貝葉斯分類器會直接忽略這些值對應的x)構建一個朴素貝葉斯分類器。


免責聲明!

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



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