最近在國外網站看到一篇不錯的文章,所以就翻譯過來給大家分享一下。主要介紹初學者怎么選擇機器學習算法,希望對各位初學者有幫助。
原文如下:
一個初學者面臨各種機器學習算法的典型問題是“我應該使用哪種算法?”問題的答案取決于許多因素,包括:
- 數據的大小,質量和性質。
- 可用的計算時間。
- 任務的緊迫性。
- 你想對數據做什么
即使是經驗豐富的數據科學家也不能在嘗試不同的算法之前,判斷哪種算法會最好。我們并不主張采取一個完整的方法,但是我們希望根據一些明確的因素,為哪些算法首先提供一些指導。
機器學習算法備忘表
該 機器學習算法備忘表 幫助您從各種機器學習算法選擇找到適合您的具體問題適當的算法。本文將引導您完成如何使用工作表的過程。
由于該作弊表是專為初學者數據科學家和分析師設計的,所以在討論算法時,我們將作出一些簡化的假設。
這里推薦的算法來自于數據科學家和機器學習專家和開發人員的編譯反饋和提示。有幾個問題我們還沒有達成協議,對于這些問題,我們試圖突出共同點,調和差異。
稍后將會添加其他算法,因為我們的庫增長以包含更完整的一組可用方法。
如何使用備忘表
將圖表上的路徑和算法標簽讀為“If then use ”。例如:
- 如果要執行尺寸縮減,則使用主成分分析。
- 如果您需要快速的數字預測,請使用決策樹或邏輯回歸。
- 如果需要分層結果,請使用層次聚類。
有時候會有一個以上的分支機構適用,而其他的時間也不會是完美的。重要的是要記住,這些路徑旨在作為經驗法則建議,因此有些建議并不準確。我談到的幾位數據科學家說,找到最好算法的唯一方法就是嘗試所有的算法。
機器學習算法的類型
本節提供最受歡迎的機器學習類型的概述。如果您熟悉這些類別,并希望繼續討論特定的算法,則可以跳過本節并轉到下面的“何時使用特定算法”。
監督學習
受監督的學習算法基于一組示例進行預測。例如,可以使用歷史銷售來估計未來價格。通過監督學習,您有一個輸入變量,由標記的訓練數據和期望的輸出變量組成。您使用算法分析訓練數據,以學習將輸入映射到輸出的功能。這個推斷功能通過從訓練數據推廣來預測未知情況下的結果來映射新的未知示例。
- 分類:當數據用于預測分類變量時,監督學習也稱為分類。當分配標簽或指示符時,狗或貓分配給圖像就是這種情況。當只有兩個標簽時,這被稱為二進制分類。當有兩類以上時,這些問題被稱為多類分類。
- 回歸:當預測連續值時,問題成為一個回歸問題。
- 預測:這是根據過去和現在的數據對未來進行預測的過程。最常用來分析趨勢。一個常見的例子可能是根據今年和前幾年的銷售情況估計下一年的銷售額。
半監督學習
監督學習的挑戰是標注數據可能是昂貴和耗時的。如果標簽有限,您可以使用未標記的示例來增強監督學習。因為在這種情況下機器沒有被完全監督,所以我們說機器是半監督的。使用半監督學習,您可以使用少量標簽數據的未標記示例來提高學習準確性。
無監督學習
執行無監督學習時,機器將呈現完全未標記的數據。被要求發現基礎數據的內在模式,如聚類結構,低維流形或稀疏樹和圖。
- 聚類:分組一組數據示例,使一個組(或一個集群)中的示例與其他組中的示例更相似(根據某些標準)。這通常用于將整個數據集分成幾組。可以在每個組中執行分析,以幫助用戶找到內在模式。
- 尺寸扣除:減少考慮的變量數量。在許多應用中,原始數據具有非常高的維度特征,并且一些特征是冗余的或與任務無關的。降低維度有助于找到真實的,潛在的關系。
加強學習
加強學習根據環境的反饋分析和優化代理人的行為。機器嘗試不同的場景來發現哪些行為產生最大的回報,而不是被告知采取哪些行動。試驗和錯誤和延遲獎勵將強化學習與其他技術區分開來。
選擇算法時的注意事項
選擇算法時,請務必考慮這些方面:準確度,培訓時間和易用性。許多用戶將準確度放在第一位,而初學者則傾向于關注他們最了解的算法。
當提供數據集時,首先要考慮的是如何獲得結果,無論這些結果如何。初學者傾向于選擇易于實現的算法,并可以快速獲得結果。這樣做很好,只要這只是過程的第一步。獲得一些結果并熟悉數據后,您可以花費更多時間使用更復雜的算法來加強對數據的理解,從而進一步改進結果。
即使在這個階段,最好的算法可能不是實現最高報告精度的方法,因為算法通常需要仔細調整和廣泛的訓練才能獲得最佳的可實現性能。