1. 程式人生 > >Matlab自帶機器學習演算法彙總

Matlab自帶機器學習演算法彙總

【引言】

今天突然發現MATLAB 2015a的版本自帶了許多經典的機器學習方法,簡單好用,所以在此撰寫部落格用以簡要彙總(我主要參考了MATLAB自帶的幫助文件)。
MATLAB每個機器學習方法都有很多種方式實現,並可進行高階配置(比如訓練決策樹時設定的各種引數),這裡由於篇幅的限制,不再詳細描述。我僅列出我認為的最簡單的使用方法。詳細使用方法,請按照我給出的函式名,在MATLAB中使用如下命令進行查閱:
  1. doc <函式名>  

【正文】

Matlab用於訓練機器學習模型的函式主要分為三類:
  1. 有監督學習
  2. 無監督學習
  3. 整合學習

1.有監督學習

類名

方法名

函式名

說明

線性迴歸

多元線性迴歸

fitlm

具有多個預測變數的線性迴歸

逐步迴歸

stepwise

互動式逐步迴歸

多目標的多元線性迴歸

mvregress

使用多變數輸出的線性迴歸

有正則化的多元線性迴歸

lasso

使用彈性網正則化的多元線性迴歸

ridge

Ridge迴歸

非線性迴歸

fitnlm

擬合非線性迴歸模型

廣義線性模型

正態分佈擬合

fitglm

'Distribution' 設定為 'normal'

二項分佈擬合

fitglm

'Distribution' 設定為 'binomial'

泊松分佈擬合

fitglm

'Distribution' 設定為 'poisson'

gamma分佈擬合

fitglm

'Distribution' 設定為 'gamma'

反高斯分佈擬合

fitglm

'Distribution' 設定為 'inverse gaussian'

進行變數選擇的逐步迴歸

stepwiseglm

互動式逐步迴歸

帶有正則化的廣義線性迴歸

lassoglm

使用彈性網正則化的廣義線性迴歸

迴歸分類

決策樹

(CART)

分類樹

fitctree

訓練分類二叉決策樹

迴歸樹

fitrtree

訓練迴歸二叉決策樹

支援

向量機

二分類支援向量機

fitcsvm

訓練二分類支援向量機分類

多分類支援向量機

fitcecoc

適用SVM或其他分類器的多類模型

判別分析

fitcdiscr

擬合判別分析分類器

樸素貝葉斯分類器

fitcnb

訓練樸素貝葉斯分類

最近鄰

k-近鄰

fitcknn

擬合k-近鄰分類器




2.無監督學習

類名

方法名

函式名

說明

分層聚類

通過聚類樹進行聚類

cluster

返回聚類後各樣本類別

通過資料進行聚類

clusterdata

返回聚類後各樣本類別

分成聚類樹

linkage

訓練分層聚類樹

通過距離聚類

K-means聚類

kmeans

K-medoids聚類

kmedoids

最近鄰

全域性最近鄰搜尋

ExhaustiveSearcher

準備全域性最近鄰居搜尋

KD樹搜尋

KDTreeSearcher

生成KD樹

createns

使用KD樹搜尋

KNN搜尋

knnsearch

使用Kd-tree或全域性k-最近鄰搜尋

範圍搜尋

rangesearch

使用全域性與Kd-tree查詢指定範圍的近鄰

高斯混合模型

高斯混合模型

fitgmdist

擬合高斯混合模型

基於高斯混合模型的聚類

cluster

生成基於高斯混合模型的聚類

隱馬爾可夫模型

估計隱馬爾可夫模型

hmmtrain

通過觀測估計隱馬爾科夫模型引數

hmmestimate

通過狀態和觀測估計引數

生成觀測序列

hmmgenerate

生成隱馬爾可夫模型狀態和觀測

最可能狀態路徑

hmmviterbi

計算最可能的狀態路徑

後驗狀態概率

hmmdecode

計算隱馬爾可夫模型後驗狀態概率


3.整合學習

類名

方法名

函式名

說明

Boosting

二分類:AdaBoostM1

fitensemble

'Method' 配置為 'AdaBoostM1'

二分類:LogitBoost

fitensemble

'Method' 配置為 ' LogitBoost'

二分類:GentleBoost

fitensemble

'Method' 配置為 ' GentleBoost'

二分類:RobustBoost

fitensemble

'Method' 配置為 ' RobustBoost'

多分類: AdaBoostM2

fitensemble

'Method' 配置為 ' AdaBoostM2'

多分類: LPBoosts

fitensemble

'Method' 配置為 ' LPBoosts'

多分類:TotalBoost

fitensemble

'Method' 配置為 ' TotalBoost'

多分類:RUSBoost

fitensemble

'Method' 配置為 ' RUSBoost'

迴歸:LSBoost

fitensemble

'Method' 配置為 'LPBoost'

提升二分類為多分類模型

fitcecoc

基於二分類模型訓練多分類模型

Bagging(多分類或迴歸)

fitensemble

'Method' 配置為 'Bag'

隨機子空間(多分類或迴歸)

fitensemble

'Method' 配置為 'Subspace'