面對各種各樣的機器學習算法——“我應該用哪一個?”,是一名初學者經常遇到的問題。問題的答案,取決于許多因素,包括:
數據的大小,質量和性質
可用的計算時間
任務的緊迫性
你想對數據做什么
即便是經驗豐富的數據科學家,也無法在嘗試各種算法之前,判斷出哪種算法的效果最好。在這里,我并不是忽悠大家要一步到位。我的意思是,要根據明確的因素,搞清楚應該優先嘗試哪些算法。
機器學習算法速查表
該流程圖展示了何時使用哪些算法
機器學習算法速查表,幫助你找到適合不同具體問題的算法。本文將引導你如何使用速查表。
該速查表專為初階數據科學家和分析師設計。因而在討論算法時,我們將對假設做一些簡化。
這里推薦的算法,來自于多位數據科學家、機器學習專家的編譯反饋和提示。 有幾個問題我們還沒有達成一致,對于這些問題,我們試圖突出共同點,調和差異。
當我們的庫在將來更加完整,包含更多可用方法時,將會添加額外的算法。
如何使用速查表對圖表上的路徑和算法標簽,看作“如果 <路徑標簽> 就使用 <算法>”。例如:
如果要降維,就使用主成分分析。
如果需要快速的數字預測,就用決策樹或邏輯回歸。
如果需要分層結果,就使用層次聚類。
有時候,適用的分支有多個,其他時候完美適用的一個也沒有。 重要的是記住:這些路徑僅僅是經驗總結,有的建議并不準確。 我聊過的幾位數據科學家都說,找到最佳算法的唯一方法,就是嘗試所有的算法。
機器學習算法的類型本節將對最常見的機器學習算法類型,做個概述。 如果您對這些類別很熟悉,可以跳過本節到下面的“何時使用特定算法”。
監督學習監督學習算法會根據樣例集做預測。 例如,可以使用歷史銷售預估將來價格。 在監督學習中,有標記過的訓練數據組成的輸入變量,以及輸出變量。 你用算法來分析訓練數據,學習從輸入映射到輸出的函數。這個預測函數通過從訓練數據中進行歸納,對新的未知的樣本建立映射,來預測未知情況下的結果。
分類:當數據用于預測分類變量時,監督學習也稱為分類。 圖像處理中經典的貓狗識別:根據圖像內容,向圖片分配"狗"或"貓"標簽就是這種案例。 當只有兩個標簽時,這被稱為二進制分類。 當有兩類以上時,這些問題被稱為多類分類。
回歸:當預測連續值時,問題就成為了一個回歸問題。
預測:根據過去和現在的數據,對未來進行預測。 最常被用來分析趨勢。 一個常見的例子可能是根據今年和前幾年的銷售情況估計下一年的銷售額。
半監督學習監督學習的困難在于,標注數據非常昂貴、費時。如果標注數據有限,可以使用未標注數據來加強監督學習。在這種情況下機器不是完全監督的,我們就稱是半監督。通過半監督學習,可以使用未標注數據和少量的標注數據來提高學習的準確性。
無監督學習進行無監督學習時,機器僅使用未標注數據。目標是發現數據中的內在模式,比如聚類結構,一個低維的流形(manifold),或者一個稀疏樹和圖。
聚類:對一組數據進行分組,使得同一組(或一類)中的數據比其他組中的數據更加相似(根據一些規則)。這通常用來將整個數據集劃分成幾個數據組。在每個數據組中進行分析,能幫助用戶找到內在的關聯。
降維:減少約束條件下的變量數量。在許多應用中,原始數據特征維度特別高,并且一些特征是冗余的、或者和結果無關。降維能夠幫助找到正確的潛在關聯。
增強學習增強學習基于環境反饋,分析并優化代理的行為。機器會嘗試不同場景,找出產生最大的收益的行為,不需要被告知做什么。試錯和延時獎勵,是增強學習和其他技術的主要區別。
選擇算法的注意事項選擇一個算法時,通常要考慮這三個方面:準確性,訓練時間和易用性。許多人將準確性放在首位,但是初學者傾向于選擇他們最了解的算法。
當拿到一個數據集時,首先要考慮的是如何獲取結果,不管這些結果可能看起來是什么樣子的。初學者傾向于選擇容易實現并且能夠快速得到結果的算法。這種做法是可取的,因為這只是第一步工作。一旦你得到了一些結果并且熟悉了這些數據,你可以會花費更多時間、使用更加復雜的算法來增強你對這些數據的理解,來進一步改進結果。
即使在這種情況下,最好的算法,可能并不是有最高準確率的方法,因為一個算法通常需要仔細的調參和大量訓練才能達到它的最優性能。
(雷鋒網更多請訪問原文地址)
via SAS