本文主要適用于初學(xué)者到中級數(shù)據(jù)科學(xué)家或分析師,他們有興趣識別和應(yīng)用機器學(xué)習(xí)算法來解決他們感興趣的問題。 一個初學(xué)者面臨各種機器學(xué)習(xí)算法的典型問題是“我應(yīng)該使用哪種算法?”問題的答案取決于許多因素,包括:
即使是經(jīng)驗豐富的數(shù)據(jù)科學(xué)家也不能在嘗試不同的算法之前,判斷哪種算法會最好。我們并不是倡導(dǎo)一個一步到位的方法,但是我們希望首先根據(jù)一些明確的因素來提供一些嘗試哪些算法的指導(dǎo)。 機器學(xué)習(xí)算法速查表 機器學(xué)習(xí)算法速查表幫助你從各種機器學(xué)習(xí)算法中選擇,以找到適合你的具體問題的算法。 本文將引導(dǎo)你完成如何使用速查表的過程。 由于該速查表是專為初學(xué)者數(shù)據(jù)科學(xué)家和分析師設(shè)計的,所以在討論算法時,我們將作出一些簡化的假設(shè)。 這里推薦的算法是來自幾個數(shù)據(jù)科學(xué)家和機器學(xué)習(xí)專家和開發(fā)人員的編譯反饋和提示。有幾個問題,我們還沒有達成協(xié)議,對于這些問題,我們試圖突出共性及調(diào)和差異。 稍后將會添加其他算法,因為我們的庫增長包含一套更完整的可用方法。 如何使用速查表 將圖表上的路徑和算法標簽讀為“如果 <路徑標簽> 則使用<算法>”。 例如:
有時多個分支適用,其他時候他們都不是絕配。 重要的是要記住,這些路徑旨在作為有經(jīng)驗的建議,因此有些建議并不準確。我談到的幾位數(shù)據(jù)科學(xué)家說,找到最好算法的唯一方法就是嘗試所有的算法。 機器學(xué)習(xí)算法的類型 本節(jié)提供最受歡迎的機器學(xué)習(xí)類型的概述。 如果你熟悉這些類型,并希望繼續(xù)討論特定的算法,則可以跳過本節(jié)并轉(zhuǎn)到下面的“何時使用特定算法”。 監(jiān)督學(xué)習(xí) 監(jiān)督學(xué)習(xí)算法基于一組示例進行預(yù)測。例如,可以使用歷史銷售來估計未來價格。通過監(jiān)督學(xué)習(xí),你有一個輸入變量,由標記的訓(xùn)練數(shù)據(jù)和期望的輸出變量組成。你使用算法分析訓(xùn)練數(shù)據(jù),來得到將輸入映射到輸出的函數(shù)。這個推斷函數(shù)通過從訓(xùn)練數(shù)據(jù)推廣來預(yù)測未知情況下的結(jié)果來映射新的未知示例。
半監(jiān)督學(xué)習(xí) 監(jiān)督學(xué)習(xí)的挑戰(zhàn)是標注數(shù)據(jù)可能是昂貴和耗時的。 如果標簽有限,你可以使用未標記的示例來增強監(jiān)督學(xué)習(xí)。 因為在這種情況下機器沒有被完全監(jiān)督,所以我們說機器是半監(jiān)督的。 使用半監(jiān)督學(xué)習(xí),你可以使用少量標簽數(shù)據(jù)的未標記示例來提高學(xué)習(xí)準確性。 非監(jiān)督學(xué)習(xí) 執(zhí)行非監(jiān)督學(xué)習(xí)時,機器將呈現(xiàn)完全未標記的數(shù)據(jù)。 被要求發(fā)現(xiàn)基礎(chǔ)數(shù)據(jù)的固有模式,如聚類結(jié)構(gòu),低維流形或稀疏樹和圖。
增強學(xué)習(xí) 增強學(xué)習(xí)根據(jù)環(huán)境的反饋分析和優(yōu)化agent行為。機器嘗試不同的場景來發(fā)現(xiàn)哪些行為會產(chǎn)生最大的回報,而不是被告知要采取哪些行動。試誤與延遲獎勵區(qū)別增強學(xué)習(xí)與其他技術(shù)。 選擇算法時的注意事項 選擇算法時,請務(wù)必考慮這些方面:準確度,訓(xùn)練時間和易用性。 許多用戶將準確度放在第一位,而初學(xué)者則傾向于關(guān)注他們最了解的算法。 當被提供一個數(shù)據(jù)集時,首先要考慮的是如何獲得結(jié)果,無論這些結(jié)果如何。 初學(xué)者傾向于選擇易于實現(xiàn)的算法,并可以快速獲得結(jié)果。 這樣做很好,因為這只是過程的第一步。 獲得一些結(jié)果并熟悉數(shù)據(jù)后,你可以花費更多時間使用更復(fù)雜的算法來加強對數(shù)據(jù)的理解,從而進一步改進結(jié)果。 即使在這個階段,最好的算法可能不是實現(xiàn)最高報告精度的方法,因為算法通常需要仔細調(diào)整和廣泛的訓(xùn)練才能獲得最佳的可實現(xiàn)性能。 何時使用特定的算法 更仔細地查看各個算法可以幫助你了解它們提供的內(nèi)容以及如何使用它們。 這些描述提供了更多的細節(jié),并提供了什么時候使用特定算法,與速查表對準。 線性回歸和邏輯回歸 線性回歸是對連續(xù)因變量y與一個或多個預(yù)測變量X之間的關(guān)系進行建模的方法.Y和X之間的關(guān)系可以線性建模為 。根據(jù)訓(xùn)練樣本 ,可以學(xué)習(xí)參數(shù)向量β。 如果因變量不是連續(xù)的而是分類的,則可以使用logit鏈接函數(shù)將線性回歸轉(zhuǎn)換為邏輯回歸。 邏輯回歸是一種簡單,快速而強大的分類算法。 這里我們討論二進制的情況,其中因變量y只取二進制值 (它可以容易地擴展到多類分類問題)。 在邏輯回歸中,我們使用不同的假設(shè)類來嘗試預(yù)測給定示例屬于“1”類的概率,而不是它屬于“-1”類的概率。 具體來說,我們將嘗試學(xué)習(xí)以下形式的函數(shù): 和 。這里 是sigmoid函數(shù)。給定訓(xùn)練樣例 ,可以通過使給定數(shù)據(jù)集β的對數(shù)似然度最大化來得知參數(shù)向量β。 線性SVM和核SVM 核機制用于將非線性可分離函數(shù)映射為更高維度的線性可分離函數(shù)。 支持向量機(SVM)訓(xùn)練算法找到由超平面的法向量w和偏差b表示的分類器。 這個超平面(邊界)將不同的類分隔開盡可能大的邊距。 該問題可以轉(zhuǎn)化為約束優(yōu)化問題: 支持向量機(SVM)訓(xùn)練算法找到由超平面的法向量w和偏差b表示的分類器。 這個超平面(邊界)將不同的類分隔開盡可能大的邊距。 該問題可以轉(zhuǎn)化為約束優(yōu)化問題: 當類不可線性分離時,可以使用核機制將非線性可分離空間映射到更高維度的線性可分離空間。 當大多數(shù)因變量是數(shù)字時,邏輯回歸和SVM應(yīng)該是分類的第一個嘗試。 這些機型易于實現(xiàn),其參數(shù)易調(diào),性能也相當不錯。 所以這些模式適合初學(xué)者。 樹和集成樹 決策樹、隨機森林和梯度提升都是基于決策樹的算法。決策樹有許多變種,但它們都做同樣的事情--將特征空間細分為具有相同標簽的區(qū)域。決策樹易于理解和實施。 然而,當我們剪枝并深度運行樹時往往過度擬合數(shù)據(jù)。隨機森林和梯度提升是使用樹算法實現(xiàn)良好準確性以及克服過擬合問題的兩種流行方式。 神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí) 20世紀80年代中期,由于并行和分布式處理能力,神經(jīng)網(wǎng)絡(luò)蓬勃發(fā)展。 但是,這一領(lǐng)域的研究受到廣泛用于優(yōu)化神經(jīng)網(wǎng)絡(luò)參數(shù)的反向傳播訓(xùn)練算法的無效性的阻礙。 支持向量機(SVM)等簡單模型,可以通過解決凸優(yōu)化問題輕松訓(xùn)練,逐漸取代機器學(xué)習(xí)中的神經(jīng)網(wǎng)絡(luò)。 近年來,新的和改進的訓(xùn)練技術(shù),如非監(jiān)督的預(yù)訓(xùn)練和逐層貪婪訓(xùn)練,導(dǎo)致對神經(jīng)網(wǎng)絡(luò)興趣的興起。 越來越強大的計算能力,如圖形處理單元(GPU)和大規(guī)模并行處理(MPP),也激發(fā)了神經(jīng)網(wǎng)絡(luò)的復(fù)興。神經(jīng)網(wǎng)絡(luò)復(fù)興的研究引起了成千上萬層模型的發(fā)明。 換句話說,淺層神經(jīng)網(wǎng)絡(luò)已經(jīng)演變成深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)。 深層神經(jīng)網(wǎng)絡(luò)對于監(jiān)督學(xué)習(xí)已經(jīng)非常成功。 當用于語言和圖像識別時,深層次的學(xué)習(xí)表現(xiàn)與甚至比人類更好。 適用于非監(jiān)督的學(xué)習(xí)任務(wù),如特征提取,深度學(xué)習(xí)還從原始圖像或語音中提取少量人為干預(yù)的特征。 神經(jīng)網(wǎng)絡(luò)由三部分組成:輸入層,隱層和輸出層。 訓(xùn)練樣本定義了輸入和輸出層。 當輸出層是分類變量時,神經(jīng)網(wǎng)絡(luò)是解決分類問題的一種方式。 當輸出層是連續(xù)變量時,網(wǎng)絡(luò)可以用來做回歸。 當輸出層與輸入層相同時,可以使用網(wǎng)絡(luò)來提取內(nèi)在特征。 隱藏層的數(shù)量定義了模型的復(fù)雜性和建模能力。 K-means/ K-modes,GMM(高斯混合模型)聚類 K-means/ K-modes,GMM聚類旨在將n個觀察值分為k個集群。 K-means定義硬分配:樣本將是且僅與一個集群相關(guān)聯(lián)。 然而,GMM為每個樣本定義一個軟分配。 每個樣本具有與每個集群相關(guān)聯(lián)的概率。 當給定集群k的數(shù)量時,兩種算法都是簡單且足夠快的聚類。 DBSCAN 當聚類數(shù)k沒有給出時,可以通過密度擴散連接樣本來使用DBSCAN(基于密度的空間聚類)。 分層聚類 可以使用樹結(jié)構(gòu)(樹形圖)來可視化分層分區(qū)。 它不需要集群的數(shù)量作為輸入,并且可以使用不同的K來以不同的粒度級(即,可以細化/粗化的集群)來查看分區(qū)。 PCA, SVD 和 LDA 我們通常不想將大量的特征直接饋送到機器學(xué)習(xí)算法中,因為一些特征可能是不相關(guān)的,或者“固有的”維度可能小于特征的數(shù)量。 主成分分析(PCA),奇異值分解(SVD)和潛在Dirichlet分配(LDA)均可用于降維。 PCA是一種非監(jiān)督的聚類方法,將原始數(shù)據(jù)空間映射到較低維數(shù)空間,同時保留盡可能多的信息。 PCA基本上找到一個最保留數(shù)據(jù)方差的子空間,其中子空間由數(shù)據(jù)協(xié)方差矩陣的主要特征向量定義。 SVD與PCA相關(guān),意思是中心數(shù)據(jù)矩陣(特征與樣本)的SVD提供了定義與PCA相同的子空間的主要左奇異向量。 然而,SVD是一種更通用的技術(shù),因為它也可以做PCA可能不做的事情。 例如,用戶對電影矩陣的SVD能夠提取可以在推薦系統(tǒng)中使用的用戶資料和電影簡介。 此外,SVD也被廣泛用作自然語言處理(NLP)中稱為潛在語義分析的主題建模工具。 NLP中的相關(guān)技術(shù)是潛在的Dirichlet分配(LDA)。 LDA是概率主題模型,它以與高斯混合模型(GMM)類似的方式將文檔分解為主題,將連續(xù)數(shù)據(jù)分解為高斯密度。 與GMM不同,LDA模型離散數(shù)據(jù),并且限制了主題根據(jù)Dirichlet分布先驗分布。 結(jié)論 這是易于遵循的工作流程。在此得出的當試圖解決一個新問題時的結(jié)論:
SAS視覺數(shù)據(jù)挖掘和機器學(xué)習(xí)為初學(xué)者學(xué)習(xí)機器學(xué)習(xí)和應(yīng)用機器學(xué)習(xí)方法提供了一個良好的平臺。 |
|
來自: 戴佳霖 > 《機器學(xué)習(xí)》