快速選擇合適的機器學習演算法

本文主要適用於初學者到中級數據科學家或分析師,他們有興趣識別和應用機器學習演算法來解決他們感興趣的問題。

一個初學者面臨各種機器學習演算法的典型問題是「我應該使用哪種演算法?」問題的答案取決於許多因素,包括:

  • 數據的大小、質量和性質。

  • 可用計算時間。

  • 任務的緊迫性。

  • 你想用數據做什麼。

  • 即使是經驗豐富的數據科學家也不能在嘗試不同的演算法之前,判斷哪種演算法會最好。我們並不是倡導一個一步到位的方法,但是我們希望首先根據一些明確的因素來提供一些嘗試哪些演算法的指導。

    機器學習演算法速查表

    機器學習演算法速查表幫助你從各種機器學習演算法中選擇,以找到適合你的具體問題的演算法。 本文將引導你完成如何使用速查表的過程。

    由於該速查表是專為初學者數據科學家和分析師設計的,所以在討論演算法時,我們將作出一些簡化的假設。

    這裡推薦的演算法是來自幾個數據科學家和機器學習專家和開發人員的編譯反饋和提示。有幾個問題,我們還沒有達成協議,對於這些問題,我們試圖突出共性及調和差異。

    稍後將會添加其他演算法,因為我們的庫增長包含一套更完整的可用方法。

    如何使用速查表

    將圖表上的路徑和演算法標籤讀為「如果 <路徑標籤> 則使用<演算法>」。 例如:

  • 如果要進行降維,則使用主成分分析法。

  • 如果需要快速的數值預測,請使用決策樹或邏輯回歸。

  • 如果需要分層結果,請使用層次聚類。

  • 有時多個分支適用,其他時候他們都不是絕配。 重要的是要記住,這些路徑旨在作為有經驗的建議,因此有些建議並不準確。我談到的幾位數據科學家說,找到最好演算法的唯一方法就是嘗試所有的演算法。

    機器學習演算法的類型

    本節提供最受歡迎的機器學習類型的概述。 如果你熟悉這些類型,並希望繼續討論特定的演算法,則可以跳過本節並轉到下面的「何時使用特定演算法」。

    監督學習

    監督學習演算法基於一組示例進行預測。例如,可以使用歷史銷售來估計未來價格。通過監督學習,你有一個輸入變數,由標記的訓練數據和期望的輸出變數組成。你使用演算法分析訓練數據,來得到將輸入映射到輸出的函數。這個推斷函數通過從訓練數據推廣來預測未知情況下的結果來映射新的未知示例。

  • 分類:當數據用於預測分類變數時,監督學習也稱為分類。當分配標籤或指示符時,狗或貓分配給圖像就是這種情況。當只有兩個標籤時,這被稱為二進位分類。當有兩類以上時,這些問題被稱為多類分類。

  • 回歸:當預測連續值時,問題變成一個回歸問題。

  • 預測:這是基於過去和現在的數據來預測未來的過程。這是最常用的分析趨勢。一個常見的例子可能是根據本年和前幾年的銷售額估計下一年的銷售額。

  • 半監督學習

    監督學習的挑戰是標註數據可能是昂貴和耗時的。 如果標籤有限,你可以使用未標記的示例來增強監督學習。 因為在這種情況下機器沒有被完全監督,所以我們說機器是半監督的。 使用半監督學習,你可以使用少量標籤數據的未標記示例來提高學習準確性。

    非監督學習

    執行非監督學習時,機器將呈現完全未標記的數據。 被要求發現基礎數據的固有模式,如聚類結構,低維流形或稀疏樹和圖。

  • 聚類:分組一組數據示例,使一個組(或一個集群)中的示例與其他組中的示例更相似(根據某些標準)。 這通常用於將整個數據集分成幾組。 可以在每個組中進行分析,以幫助用戶找到固有模式。

  • 降維:減少考慮的變數數量。在許多應用中,原始數據具有非常高的維度特徵,並且一些特徵是冗餘的或與任務無關的。降低維度有助於找到真實的,潛在的關係。

  • 增強學習

    增強學習根據環境的反饋分析和優化agent行為。機器嘗試不同的場景來發現哪些行為會產生最大的回報,而不是被告知要採取哪些行動。試誤與延遲獎勵區別增強學習與其他技術。

    選擇演算法時的注意事項

    選擇演算法時,請務必考慮這些方面:準確度,訓練時間和易用性。 許多用戶將準確度放在第一位,而初學者則傾向於關注他們最了解的演算法。

    當被提供一個數據集時,首先要考慮的是如何獲得結果,無論這些結果如何。 初學者傾向於選擇易於實現的演算法,並可以快速獲得結果。 這樣做很好,因為這只是過程的第一步。 獲得一些結果並熟悉數據後,你可以花費更多時間使用更複雜的演算法來加強對數據的理解,從而進一步改進結果。

    即使在這個階段,最好的演算法可能不是實現最高報告精度的方法,因為演算法通常需要仔細調整和廣泛的訓練才能獲得最佳的可實現性能。

    何時使用特定的演算法

    更仔細地查看各個演算法可以幫助你了解它們提供的內容以及如何使用它們。 這些描述提供了更多的細節,並提供了什麼時候使用特定演算法,與速查表對準。

    線性回歸和邏輯回歸

    線性回歸是對連續因變數y與一個或多個預測變數X之間的關係進行建模的方法.Y和X之間的關係可以線性建模為

    。根據訓練樣本

    ,可以學習參數向量β。

    如果因變數不是連續的而是分類的,則可以使用logit鏈接函數將線性回歸轉換為邏輯回歸。 邏輯回歸是一種簡單,快速而強大的分類演算法。 這裡我們討論二進位的情況,其中因變數y只取二進位值

    (它可以容易地擴展到多類分類問題)。

    在邏輯回歸中,我們使用不同的假設類來嘗試預測給定示例屬於「1」類的概率,而不是它屬於「-1」類的概率。 具體來說,我們將嘗試學習以下形式的函數:

    。這裡

    是sigmoid函數。給定訓練樣例

    ,可以通過使給定數據集β的對數似然度最大化來得知參數向量β。

    線性SVM和核SVM

    核機制用於將非線性可分離函數映射為更高維度的線性可分離函數。 支持向量機(SVM)訓練演算法找到由超平面的法向量w和偏差b表示的分類器。 這個超平面(邊界)將不同的類分隔開儘可能大的邊距。 該問題可以轉化為約束優化問題:

    支持向量機(SVM)訓練演算法找到由超平面的法向量w和偏差b表示的分類器。 這個超平面(邊界)將不同的類分隔開儘可能大的邊距。 該問題可以轉化為約束優化問題:

    當類不可線性分離時,可以使用核機制將非線性可分離空間映射到更高維度的線性可分離空間。

    當大多數因變數是數字時,邏輯回歸和SVM應該是分類的第一個嘗試。 這些機型易於實現,其參數易調,性能也相當不錯。 所以這些模式適合初學者。

    樹和集成樹

    決策樹、隨機森林和梯度提升都是基於決策樹的演算法。決策樹有許多變種,但它們都做同樣的事情--將特徵空間細分為具有相同標籤的區域。決策樹易於理解和實施。 然而,當我們剪枝並深度運行樹時往往過度擬合數據。隨機森林和梯度提升是使用樹演算法實現良好準確性以及克服過擬合問題的兩種流行方式。

    神經網路和深度學習

    20世紀80年代中期,由於並行和分散式處理能力,神經網路蓬勃發展。 但是,這一領域的研究受到廣泛用於優化神經網路參數的反向傳播訓練演算法的無效性的阻礙。 支持向量機(SVM)等簡單模型,可以通過解決凸優化問題輕鬆訓練,逐漸取代機器學習中的神經網路。

    近年來,新的和改進的訓練技術,如非監督的預訓練和逐層貪婪訓練,導致對神經網路興趣的興起。 越來越強大的計算能力,如圖形處理單元(GPU)和大規模並行處理(MPP),也激發了神經網路的復興。神經網路復興的研究引起了成千上萬層模型的發明。

    換句話說,淺層神經網路已經演變成深度學習神經網路。 深層神經網路對於監督學習已經非常成功。 當用於語言和圖像識別時,深層次的學習表現與甚至比人類更好。 適用於非監督的學習任務,如特徵提取,深度學習還從原始圖像或語音中提取少量人為干預的特徵。

    神經網路由三部分組成:輸入層,隱層和輸出層。 訓練樣本定義了輸入和輸出層。 當輸出層是分類變數時,神經網路是解決分類問題的一種方式。 當輸出層是連續變數時,網路可以用來做回歸。 當輸出層與輸入層相同時,可以使用網路來提取內在特徵。 隱藏層的數量定義了模型的複雜性和建模能力。

    K-means/ K-modes,GMM(高斯混合模型)聚類

    K-means/ K-modes,GMM聚類旨在將n個觀察值分為k個集群。 K-means定義硬分配:樣本將是且僅與一個集群相關聯。 然而,GMM為每個樣本定義一個軟分配。 每個樣本具有與每個集群相關聯的概率。 當給定集群k的數量時,兩種演算法都是簡單且足夠快的聚類。

    DBSCAN

    當聚類數k沒有給出時,可以通過密度擴散連接樣本來使用DBSCAN(基於密度的空間聚類)。

    分層聚類

    可以使用樹結構(樹形圖)來可視化分層分區。 它不需要集群的數量作為輸入,並且可以使用不同的K來以不同的粒度級(即,可以細化/粗化的集群)來查看分區。

    PCA, SVD 和 LDA

    我們通常不想將大量的特徵直接饋送到機器學習演算法中,因為一些特徵可能是不相關的,或者「固有的」維度可能小於特徵的數量。 主成分分析(PCA),奇異值分解(SVD)和潛在Dirichlet分配(LDA)均可用於降維。

    PCA是一種非監督的聚類方法,將原始數據空間映射到較低維數空間,同時保留儘可能多的信息。 PCA基本上找到一個最保留數據方差的子空間,其中子空間由數據協方差矩陣的主要特徵向量定義。

    SVD與PCA相關,意思是中心數據矩陣(特徵與樣本)的SVD提供了定義與PCA相同的子空間的主要左奇異向量。 然而,SVD是一種更通用的技術,因為它也可以做PCA可能不做的事情。 例如,用戶對電影矩陣的SVD能夠提取可以在推薦系統中使用的用戶資料和電影簡介。 此外,SVD也被廣泛用作自然語言處理(NLP)中稱為潛在語義分析的主題建模工具。

    NLP中的相關技術是潛在的Dirichlet分配(LDA)。 LDA是概率主題模型,它以與高斯混合模型(GMM)類似的方式將文檔分解為主題,將連續數據分解為高斯密度。 與GMM不同,LDA模型離散數據,並且限制了主題根據Dirichlet分布先驗分布。

    結論

    這是易於遵循的工作流程。在此得出的當試圖解決一個新問題時的結論:

  • 定義問題。你想解決什麼問題?

  • 從簡單的開始。熟悉數據和基線結果。

  • 然後嘗試更複雜的東西。

  • SAS視覺數據挖掘和機器學習為初學者學習機器學習和應用機器學習方法提供了一個良好的平台。


    推薦閱讀:

    如何挑選合適尺碼的跑鞋?留夠5毫米的空間
    第一次「親吻」女孩哪裡最合適
    性,要怎麼說出口 講多少才合適?(圖)
    用女性敏感部位當廁所裝飾品合適嗎?
    雞腿鹵多久合適?

    TAG:學習 | 機器學習 | 演算法 | 選擇 | 合適 | 機器 | 算法 |