天天看點

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

本文主要适用于初學者到中級資料科學家或分析師,他們有興趣識别和應用機器學習算法來解決他們感興趣的問題。

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

資料的大小、品質和性質。

可用計算時間。

任務的緊迫性。

你想用資料做什麼。

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

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

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

由于該速查表是專為初學者資料科學家和分析師設計的,是以在讨論算法時,我們将作出一些簡化的假設。

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

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

将圖表上的路徑和算法标簽讀為“如果 <路徑标簽> 則使用<算法>”。 例如:

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

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

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

有時多個分支适用,其他時候他們都不是絕配。 重要的是要記住,這些路徑旨在作為有經驗的建議,是以有些建議并不準确。我談到的幾位資料科學家說,找到最好算法的唯一方法就是嘗試所有的算法。

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

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

分類:當資料用于預測分類變量時,監督學習也稱為分類。 當配置設定标簽或訓示符時,狗或貓配置設定給圖像就是這種情況。 當隻有兩個标簽時,這被稱為二進制分類。 當有兩類以上時,這些問題被稱為多類分類。

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

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

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

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

聚類:分組一組資料示例,使一個組(或一個叢集)中的示例與其他組中的示例更相似(根據某些标準)。 這通常用于将整個資料集分成幾組。 可以在每個組中進行分析,以幫助使用者找到固有模式。

降維:減少考慮的變量數量。 在許多應用中,原始資料具有非常高的次元特征,并且一些特征是備援的或與任務無關的。 降低次元有助于找到真實的,潛在的關系。

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

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

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

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

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

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

線性回歸是對連續因變量y與一個或多個預測變量x之間的關系進行模組化的方法.y和x之間的關系可以線性模組化為

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

。根據訓練樣本

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

,可以學習參數向量β。

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

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

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

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

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

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

。這裡

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

是sigmoid函數。給定訓練樣例

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

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

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

核機制用于将非線性可分離函數映射為更高次元的線性可分離函數。 支援向量機(svm)訓練算法找到由超平面的法向量w和偏差b表示的分類器。 這個超平面(邊界)将不同的類分隔開盡可能大的邊距。 該問題可以轉化為限制優化問題:

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

支援向量機(svm)訓練算法找到由超平面的法向量w和偏差b表示的分類器。 這個超平面(邊界)将不同的類分隔開盡可能大的邊距。 該問題可以轉化為限制優化問題:

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

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

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

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

決策樹、随機森林和梯度提升都是基于決策樹的算法。決策樹有許多變種,但它們都做同樣的事情--将特征空間細分為具有相同标簽的區域。決策樹易于了解和實施。 然而,當我們剪枝并深度運作樹時往往過度拟合資料。随機森林和梯度提升是使用樹算法實作良好準确性以及克服過拟合問題的兩種流行方式。

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

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

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

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

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

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

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

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

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

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

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

我們通常不想将大量的特征直接饋送到機器學習算法中,因為一些特征可能是不相關的,或者“固有的”次元可能小于特征的數量。 主成分分析(pca),奇異值分解(svd)和潛在dirichlet配置設定(lda)均可用于降維。

pca是一種非監督的聚類方法,将原始資料空間映射到較低維數空間,同時保留盡可能多的資訊。 pca基本上找到一個最保留資料方差的子空間,其中子空間由資料協方差矩陣的主要特征向量定義。

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

nlp中的相關技術是潛在的dirichlet配置設定(lda)。 lda是機率主題模型,它以與高斯混合模型(gmm)類似的方式将文檔分解為主題,将連續資料分解為高斯密度。 與gmm不同,lda模型離散資料,并且限制了主題根據dirichlet分布先驗分布。

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

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

從簡單的開始。熟悉資料和基線結果。

然後嘗試更複雜的東西。

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

作者:hui li

dr. hui li是sas資料科學技術的首席科學家。 她目前的工作重點是sas viya的深度學習,認知計算和sas推薦系統。 她獲得杜克大學電氣和計算機工程博士學位和碩士學位。 在加入sas之前,她曾在杜克大學任研究科學家,并在signal innovation group,inc.擔任研究工程師。 她的研究興趣包括機器學習,大型異構資料,協同過濾建議,貝葉斯統計模組化和增強學習。

以上為譯文

文章原标題《<b>which machine learning algorithm should i use?</b>》,作者:<b>hui li</b>,譯者:tiamo_zn,審校:海棠。

繼續閱讀