學習機器學習之如何根據需求選擇一種算法

第 1 步:對問題進行分類
這是一個兩步步驟:

  1. 通過輸入分類:如果我們有標籤數據,這是一個監督學習問題。如果我們有無標籤數據並且想要去發現結構,這是一個無監督學習問題。如果我們想要通過與環境交互優化目標函數,這是一個強化學習問題。

  2. 通過輸出分類:如果一個模型的輸出是一個數字,這是一個迴歸問題。如果模型的輸出是一個類(或者分類),這是一個分類問題。如果模型的輸出是輸入組的集合,這是一個分類問題。

第2步:找到可用的算法
分類:支持向量機(SVM),人工神經網絡,邏輯迴歸,決策樹和隨機樹。
迴歸:線性迴歸,貝葉斯線性迴歸,決策樹迴歸
聚合(Clustering):層次聚類,k- 均值聚類
異常檢測(還是屬於分類或迴歸問題):K 最近鄰(對象通過其 k 最近鄰的多數投票來分類。 k-NN 迴歸中,輸出爲對象的屬性值。該值爲其 k 最近鄰值的平均值),單類支持向量機

第3步:實現所有適用的算法
我們希望通過最小化特徵工程快速而簡單地完成幾種算法的實現。在這個階段,我們主要興趣在粗略來看那個算法表現更好。

第4步:特徵工程
搭建特徵工程,使用一組經過精心挑選的評估標準比較每個算法在數據集上的表現。
主成分分析(Principal component analysis,PCA):一種線性降維方法,可以找出包含信息量較高的特徵主成分,可以解釋數據中的大多數方差。
前向搜索: 最開始不選取任何特徵,計算模型的交叉驗證誤差,然後選擇最相關的特徵,將這個特徵加入到已有特徵;重複選取其它所有候選特徵直到達到期望數量的特徵爲止。
反向搜索: 從所有特徵開始。計算模型的交叉驗證誤差先移除最不相關的特徵,對其它所有候選特徵,重複這一過程直到達到期望數量的特徵爲止。

第5步:超參數優化
最後,你可能想優化算法的超參數。例如,主成分分析中的主成分個數,k 近鄰算法的參數 k,或者是神經網絡中的層數和學習速率。最好的方法是使用交叉驗證來選擇。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章