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