【機器學習】 Matlab 2015a內建機器學習演算法匯總 作者:陳法聖
【引言】 今天突然發現MATLAB2015a的版本內建了許多經典的機器學習方法,簡單好用,所以在此撰寫部落格用以簡要匯總(我主要參考了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' |