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)構建一個朴素貝葉斯分類器。