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

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

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

  • 數據的大小、質量和性質。
  • 可用計算時間。
  • 任務的緊迫性。
  • 你想用數據作什麼。

即便是經驗豐富的數據科學家也不能在嘗試不一樣的算法以前,判斷哪一種算法會最好。 咱們並非倡導一個一步到位的方法,可是咱們但願首先根據一些明確的因素來提供一些嘗試哪些算法的指導。
算法

機器學習算法速查表

8cd0e819adc727d3cd7bd02725ca348eb7f17e5b

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

因爲該速查表是專爲初學者數據科學家和分析師設計的,因此在討論算法時,咱們將做出一些簡化的假設。機器學習

這裏推薦的算法是來自幾個數據科學家和機器學習專家和開發人員的編譯反饋和提示。有幾個問題,咱們尚未達成協議,對於這些問題,咱們試圖突出共性及調和差別。分佈式

稍後將會添加其餘算法,由於咱們的庫增加包含一套更完整的可用方法。函數

如何使用速查表

將圖表上的路徑和算法標籤讀爲「若是 <路徑標籤> 則使用<算法>」。 例如:工具

  • 若是要進行降維,則使用主成分分析
  • 若是須要快速的數預測,請使用決策樹或邏輯迴歸。
  • 若是須要分層結果,請使用層次聚類。

有時多個分支適用,其餘時候他們都不是絕配。 重要的是要記住,這些路徑旨在做爲有經驗的建議,所以有些建議並不許確。我談到的幾位數據科學家說,找到最好算法的惟一方法就是嘗試全部的算法。性能

機器學習算法的類型

本節提供最受歡迎的機器學習類型的概述。 若是熟悉這些類,並但願繼續討論特定的算法,則能夠跳過本節並轉到下面的什麼時候使用特定算法學習

監督學習

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

  • 分類:當數據用於預測分類變量時,監督學習也稱爲分類。 當分配標籤或指示符時,狗或貓分配給圖像就是這種狀況。 當只有兩個標籤時,這被稱爲二進制分類。 當有兩類以上時,這些問題被稱爲多類分類。
  • 迴歸:當預測連續值時,問題變成一個迴歸問題。
  • 預測:這是基於過去和如今的數據來預測將來的過程。這是最經常使用的分析趨勢。一個常見的例子多是根據本年和前幾年的銷售額估計下一年的銷售額。

半監督學習

監督學習的挑戰是標註數據多是昂貴和耗時的。 若是標籤有限,可使用未標記的示例來加強監督學習。 由於在這種狀況下機器沒有被徹底監督,因此咱們說機器是半監督的。 使用半監督學習,你可使用少許標籤數據的未標記示例來提升學習準確性。

監督學習

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

  • 聚類:分組一組數據示例,使一個組(或一個集羣)中的示例與其餘組中的示例更類似(根據某些標準)。 這一般用於將整個數據集分紅幾組。 能夠在每一個組中進行分析,以幫助用戶找到固有模式。
  • 降維:減小考慮的變量數量。 在許多應用中,原始數據具備很是高的維度特徵,而且一些特徵是冗餘的或與任務無關的。 下降維度有助於找到真實的,潛在的關係。

加強學習

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

選擇算法時的注意事項

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

提供一個數據集時,首先要考慮的是如何得到結果,不管這些結果如何。 初學者傾向於選擇易於實現的算法,並能夠快速得到結果。 這樣作很好,由於這只是過程的第一步。 得到一些結果並熟悉數據後,能夠花費更多時間使用更復雜的算法來增強對數據的理解,從而進一步改進結果。

即便在這個階段,最好的算法可能不是實現最高報告精度的方法,由於算法一般須要仔細調整和普遍的訓練才能得到最佳的可實現性能。

什麼時候使用特定的算法

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

線性迴歸和邏輯迴歸

2368207df9f66e6bebae7bec9af6c9d77a298c7a
0d0925e6f343fe2b85e1d401702cfdae540afea5

 

 

線性迴歸是對連續因變量y與一個或多個預測變量X之間的關係進行建模的方法.YX之間的關係能夠線性建模爲4e18a198a7d6f5e7f7a7908a0a6acf4fc6399e89。根據訓練樣本9b5d4693352cb9c7488b7d98660d0aad931c200d,能夠學習參數向量β。

若是因變量不是連續的是分類的,則可使用logit連接函數將線性迴歸轉換爲邏輯迴歸。 邏輯迴歸是一種簡單,快速而強大的分類算法。 這裏咱們討論二進制的狀況,其中因變量y只取二進制值0c778e6df6e6ecbdc75683900a6707f98ac888ed它能夠容易地擴展到多類分類問題)。

在邏輯迴歸中,咱們使用不一樣的假設類來嘗試預測給定示例屬於「1」類的機率,而不是它屬於「-1」類的機率。 具體來講,咱們將嘗試學習如下形式的函數:7ef6dc857c4130af7e7593a9f3dfbaf86268ad74edb689aa2dcd3440d76a84ec82a730298010144e這裏467ffff444e4b3b66029eb2adefbc85d9ce1212a是sigmoid函數。給定訓練樣例535b5d837f9156eddfd04feed8bfdafca45a69f3,能夠經過使給定數據集β的對數似然度最大化來得知參數向量β。

9d8ae980ab5d38322e973d31c836e0019e43fa24

9e20d3dfe9c61fe8f8925ffd0122aac75dbbdd52

線性SVM和核SVM

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

84bb2e0d4c58ddf6b076cd8456470c393d7e9c53

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

cf6f2234a428f8ffda012ffd93dd49cde2ecca88

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

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

樹和集成樹

87a92df4a53445b387f066981975aa863285a2ff

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

神經網絡和深度學習

049396d28d9afccb929cb16c13af4ed69ab14657

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

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

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

4c3655ee479296a718d508781d039f3a8806281d

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

K-means/ K-modesGMM(高斯混合模型)聚類

663c4b51f789dee2bee96a2e099080caf1182ae3
5f7a0639c4fa2925f1037f644e96ad5fc8c570af

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

DBSCAN

6f2d45485749de7912c1b06742382bc07b495e7f

當聚類數k沒有給出時,能夠經過密度擴散鏈接樣原本使用DBSCAN(基於密度的空間聚類)。

分層聚類

dc049bb829b807507eaced6c57d76eac9194e186

可使用樹結構(樹形圖)來可視化分層分區。 它不須要集羣的數量做爲輸入,而且可使用不一樣的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視覺數據挖掘和機器學習爲初學者學習機器學習和應用機器學習方法提供了一個良好的平臺。

 

309439dee90dd521f0f0ef23096ed4787c0694a3

做者:Hui Li

Dr. Hui Li是SAS數據科學技術的首席科學家。 她目前的工做重點是SAS Viya的深度學習,認知計算和SAS推薦系統。 她得到杜克大學電氣和計算機工程博士學位和碩士學位。 在加入SAS以前,她曾在杜克大學任研究科學家,並在Signal Innovation Group,Inc.擔任研究工程師。 她的研究興趣包括機器學習,大型異構數據,協同過濾建議,貝葉斯統計建模和加強學習。

原文地址:http://click.aliyun.com/m/21630/

相關文章
相關標籤/搜索