各種機器學習的應用場景分別是什麼?

2020-11-23 雷鋒網

雷鋒網(公眾號:雷鋒網)按:本文作者xyzh,本文整理自作者在知乎問題《各種機器學習的應用場景分別是什麼?》下的回答, 雷鋒網獲其授權發布。

關於這個問題我今天正好看到了這個文章,講的正是各個算法的優劣分析,很中肯。

正好14年的時候有人做過一個實驗[1],比較在不同數據集上(121個),不同的分類器(179個)的實際效果。

論文題為:Do we Need Hundreds of Classifiers to Solve Real World Classification Problems?

實驗時間有點早,我嘗試著結合我自己的理解、一些最近的實驗,來談一談吧。主要針對分類器(Classifier)。

寫給懶得看的人:

沒有最好的分類器,只有最合適的分類器。

隨機森林平均來說最強,但也只在9.9%的數據集上拿到了第一,優點是鮮有短板。

SVM的平均水平緊隨其後,在10.7%的數據集上拿到第一。

神經網絡(13.2%)和boosting(~9%)表現不錯。

數據維度越高,隨機森林就比AdaBoost強越多,但是整體不及SVM[2]。

數據量越大,神經網絡就越強。

近鄰 (Nearest Neighbor)

典型的例子是KNN,它的思路就是——對於待判斷的點,找到離它最近的幾個數據點,根據它們的類型決定待判斷點的類型。

它的特點是完全跟著數據走,沒有數學模型可言。

適用情景:

需要一個特別容易解釋的模型的時候。

比如需要向用戶解釋原因的推薦算法。

貝葉斯 (Bayesian)

典型的例子是Naive Bayes,核心思路是根據條件概率計算待判斷點的類型。

是相對容易理解的一個模型,至今依然被垃圾郵件過濾器使用。

適用情景:

需要一個比較容易解釋,而且不同維度之間相關性較小的模型的時候。

可以高效處理高維數據,雖然結果可能不盡如人意。

決策樹 (Decision tree)

決策樹的特點是它總是在沿著特徵做切分。隨著層層遞進,這個劃分會越來越細。

雖然生成的樹不容易給用戶看,但是數據分析的時候,通過觀察樹的上層結構,能夠對分類器的核心思路有一個直觀的感受。

舉個簡單的例子,當我們預測一個孩子的身高的時候,決策樹的第一層可能是這個孩子的性別。男生走左邊的樹進行進一步預測,女生則走右邊的樹。這就說明性別對身高有很強的影響。

適用情景:

因為它能夠生成清晰的基於特徵(feature)選擇不同預測結果的樹狀結構,數據分析師希望更好的理解手上的數據的時候往往可以使用決策樹。

同時它也是相對容易被攻擊的分類器[3]。這裡的攻擊是指人為的改變一些特徵,使得分類器判斷錯誤。常見於垃圾郵件躲避檢測中。因為決策樹最終在底層判斷是基於單個條件的,攻擊者往往只需要改變很少的特徵就可以逃過監測。

受限於它的簡單性,決策樹更大的用處是作為一些更有用的算法的基石。

隨機森林 (Random forest)

提到決策樹就不得不提隨機森林。顧名思義,森林就是很多樹。

嚴格來說,隨機森林其實算是一種集成算法。它首先隨機選取不同的特徵(feature)和訓練樣本(training sample),生成大量的決策樹,然後綜合這些決策樹的結果來進行最終的分類。

隨機森林在現實分析中被大量使用,它相對於決策樹,在準確性上有了很大的提升,同時一定程度上改善了決策樹容易被攻擊的特點。

適用情景:

數據維度相對低(幾十維),同時對準確性有較高要求時。

因為不需要很多參數調整就可以達到不錯的效果,基本上不知道用什麼方法的時候都可以先試一下隨機森林。

SVM (Support vector machine)

SVM的核心思想就是找到不同類別之間的分界面,使得兩類樣本儘量落在面的兩邊,而且離分界面儘量遠。

最早的SVM是平面的,局限很大。但是利用核函數(kernel function),我們可以把平面投射(mapping)成曲面,進而大大提高SVM的適用範圍。

提高之後的SVM同樣被大量使用,在實際分類中展現了很優秀的正確率。

適用情景:

SVM在很多數據集上都有優秀的表現。

相對來說,SVM儘量保持與樣本間距離的性質導致它抗攻擊的能力更強。

和隨機森林一樣,這也是一個拿到數據就可以先嘗試一下的算法。

邏輯斯蒂回歸 (Logistic regression)

邏輯斯蒂回歸這個名字太詭異了,我就叫它LR吧,反正討論的是分類器,也沒有別的方法叫LR。顧名思義,它其實是回歸類方法的一個變體。

回歸方法的核心就是為函數找到最合適的參數,使得函數的值和樣本的值最接近。例如線性回歸(Linear regression)就是對於函數f(x)=ax+b,找到最合適的a,b。

LR擬合的就不是線性函數了,它擬合的是一個概率學中的函數,f(x)的值這時候就反映了樣本屬於這個類的概率。

適用情景:

LR同樣是很多分類算法的基礎組件,它的好處是輸出值自然地落在0到1之間,並且有概率意義。

因為它本質上是一個線性的分類器,所以處理不好特徵之間相關的情況。

雖然效果一般,卻勝在模型清晰,背後的概率學經得住推敲。它擬合出來的參數就代表了每一個特徵(feature)對結果的影響。也是一個理解數據的好工具。

判別分析 (Discriminant analysis)

判別分析主要是統計那邊在用,所以我也不是很熟悉,臨時找統計系的閨蜜補了補課。這裡就現學現賣了。

判別分析的典型例子是線性判別分析(Linear discriminant analysis),簡稱LDA。

(這裡注意不要和隱含狄利克雷分布(Latent Dirichlet allocation)弄混,雖然都叫LDA但說的不是一件事。)

LDA的核心思想是把高維的樣本投射(project)到低維上,如果要分成兩類,就投射到一維。要分三類就投射到二維平面上。這樣的投射當然有很多種不同的方式,LDA投射的標準就是讓同類的樣本儘量靠近,而不同類的儘量分開。對於未來要預測的樣本,用同樣的方式投射之後就可以輕易地分辨類別了。

使用情景:

判別分析適用於高維數據需要降維的情況,自帶降維功能使得我們能方便地觀察樣本分布。它的正確性有數學公式可以證明,所以同樣是很經得住推敲的方式。

但是它的分類準確率往往不是很高,所以不是統計系的人就把它作為降維工具用吧。

同時注意它是假定樣本成正態分布的,所以那種同心圓形的數據就不要嘗試了。

神經網絡 (Neural network)

神經網絡現在是火得不行啊。它的核心思路是利用訓練樣本(training sample)來逐漸地完善參數。還是舉個例子預測身高的例子,如果輸入的特徵中有一個是性別(1:男;0:女),而輸出的特徵是身高(1:高;0:矮)。那麼當訓練樣本是一個個子高的男生的時候,在神經網絡中,從「男」到「高」的路線就會被強化。同理,如果來了一個個子高的女生,那從「女」到「高」的路線就會被強化。

最終神經網絡的哪些路線比較強,就由我們的樣本所決定。

神經網絡的優勢在於,它可以有很多很多層。如果輸入輸出是直接連接的,那它和LR就沒有什麼區別。但是通過大量中間層的引入,它就能夠捕捉很多輸入特徵之間的關係。卷積神經網絡有很經典的不同層的可視化展示(visulization),我這裡就不贅述了。

神經網絡的提出其實很早了,但是它的準確率依賴於龐大的訓練集,原本受限於計算機的速度,分類效果一直不如隨機森林和SVM這種經典算法。

使用情景:

數據量龐大,參數之間存在內在聯繫的時候。

當然現在神經網絡不只是一個分類器,它還可以用來生成數據,用來做降維,這些就不在這裡討論了。

Rule-based methods

這個我是真不熟,都不知道中文翻譯是什麼。

它裡面典型的算法是C5.0 Rules,一個基於決策樹的變體。因為決策樹畢竟是樹狀結構,理解上還是有一定難度。所以它把決策樹的結果提取出來,形成一個一個兩三個條件組成的小規則。

使用情景:

它的準確度比決策樹稍低,很少見人用。大概需要提供明確小規則來解釋決定的時候才會用吧。

提升算法(Boosting)

接下來講的一系列模型,都屬於集成學習算法(Ensemble Learning),基於一個核心理念:三個臭皮匠,頂個諸葛亮。

翻譯過來就是:當我們把多個較弱的分類器結合起來的時候,它的結果會比一個強的分類器更

典型的例子是AdaBoost。

AdaBoost的實現是一個漸進的過程,從一個最基礎的分類器開始,每次尋找一個最能解決當前錯誤樣本的分類器。用加權取和(weighted sum)的方式把這個新分類器結合進已有的分類器中。

它的好處是自帶了特徵選擇(feature selection),只使用在訓練集中發現有效的特徵(feature)。這樣就降低了分類時需要計算的特徵數量,也在一定程度上解決了高維數據難以理解的問題。

最經典的AdaBoost實現中,它的每一個弱分類器其實就是一個決策樹。這就是之前為什麼說決策樹是各種算法的基石。

使用情景:

好的Boosting算法,它的準確性不遜於隨機森林。雖然在[1]的實驗中只有一個擠進前十,但是實際使用中它還是很強的。因為自帶特徵選擇(feature selection)所以對新手很友好,是一個「不知道用什麼就試一下它吧」的算法。

裝袋算法(Bagging)

同樣是弱分類器組合的思路,相對於Boosting,其實Bagging更好理解。它首先隨機地抽取訓練集(training set),以之為基礎訓練多個弱分類器。然後通過取平均,或者投票(voting)的方式決定最終的分類結果。

因為它隨機選取訓練集的特點,Bagging可以一定程度上避免過渡擬合(overfit)。

在[1]中,最強的Bagging算法是基於SVM的。如果用定義不那麼嚴格的話,隨機森林也算是Bagging的一種。

使用情景:

相較於經典的必使算法,Bagging使用的人更少一些。一部分的原因是Bagging的效果和參數的選擇關係比較大,用默認參數往往沒有很好的效果。

雖然調對參數結果會比決策樹和LR好,但是模型也變得複雜了,沒事有特別的原因就別用它了。

Stacking

這個我是真不知道中文怎麼說了。它所做的是在多個分類器的結果上,再套一個新的分類器。

這個新的分類器就基於弱分類器的分析結果,加上訓練標籤(training label)進行訓練。一般這最後一層用的是LR。

Stacking在[1]裡面的表現不好,可能是因為增加的一層分類器引入了更多的參數,也可能是因為有過渡擬合(overfit)的現象。

使用情景:

@莊巖提醒說stacking在數據挖掘競賽的網站kaggle上很火,相信參數調得好的話還是對結果能有幫助的。

這篇文章很好地介紹了stacking的好處。在kaggle這種一點點提升就意味著名次不同的場合下,stacking還是很有效的,但是對於一般商用,它所帶來的提升就很難值回額外的複雜度了。)

多專家模型(Mixture of Experts)

最近這個模型還挺流行的,主要是用來合併神經網絡的分類結果。我也不是很熟,對神經網絡感興趣,而且訓練集異質性(heterogeneity)比較強的話可以研究一下這個。

講到這裡分類器其實基本說完了。講一下問題裡面其他一些名詞吧。

最大熵模型 (Maximum entropy model)

最大熵模型本身不是分類器,它一般是用來判斷模型預測結果的好壞的。

對於它來說,分類器預測是相當於是:針對樣本,給每個類一個出現概率。比如說樣本的特徵是:性別男。我的分類器可能就給出了下面這樣一個概率:高(60%),矮(40%)。

而如果這個樣本真的是高的,那我們就得了一個分數60%。最大熵模型的目標就是讓這些分數的乘積儘量大。

LR其實就是使用最大熵模型作為優化目標的一個算法[4]。

EM

就像最大熵模型一樣,EM不是分類器,而是一個思路。很多算法都是基於這個思路實現的。

@劉奕馳 已經講得很清楚了,我就不多說了。

隱馬爾科夫 (Hidden Markov model)

這是一個基於序列的預測方法,核心思想就是通過上一個(或幾個)狀態預測下一個狀態。

之所以叫「隱」馬爾科夫是因為它的設定是狀態本身我們是看不到的,我們只能根據狀態生成的結果序列來學習可能的狀態。

適用場景:

可以用於序列的預測,可以用來生成序列。

條件隨機場 (Conditional random field)

典型的例子是linear-chain CRF。

具體的使用@Aron有講,我就不獻醜了,因為我從來沒用過這個。

相關的文章:

[1]: Do we need hundreds of classifiers to solve real world classification problems.

Fernández-Delgado, Manuel, et al. J. Mach. Learn. Res 15.1 (2014)

[2]: An empirical evaluation of supervised learning in high dimensions.

Rich Caruana, Nikos Karampatziakis, and Ainur Yessenalina. ICML '08

[3]: Man vs. Machine: Practical Adversarial Detection of Malicious Crowdsourcing Workers

Wang, G., Wang, T., Zheng, H., & Zhao, B. Y. Usenix Security'14

[4]: http://www.win-vector.com/dfiles/LogisticRegressionMaxEnt.pdf

雷鋒網版權文章,未經授權禁止轉載。詳情見轉載須知。

相關焦點

  • 機器學習與深度學習有什麼區別?
    作為人工智慧的核心技術,機器學習和深度學習也變得越來越火。一時間,它們幾乎成為了每個人都在談論的話題。那麼,機器學習和深度學習到底是什麼,它們之間究竟有什麼不同呢? 什麼是機器學習?機器學習(Machine Learning,ML)是人工智慧的子領域,也是人工智慧的核心。它囊括了幾乎所有對世界影響最大的方法(包括深度學習)。
  • 雷射導航agv常見的三大應用場景分別是什麼
    打開APP 雷射導航agv常見的三大應用場景分別是什麼 程大器 發表於 2021-01-08 10:41:13 近年來,隨著智能技術的快速發展
  • 人工智慧製造業應用場景
    人工智慧製造業應用場景 數位化企業 發表於 2021-01-06 10:17:16 隨著智能製造熱潮的到來,人工智慧應用已經貫穿於設計、生產、管理和服務等製造業的各個環節。
  • 簡單粗暴理解與實現機器學習之邏輯回歸:邏輯回歸介紹、應用場景...
    作者 | 汪雯琦責編 | Carol來源 | CSDN 博客學習目標知道邏輯回歸的損失函數知道邏輯回歸的優化方法知道sigmoid函數知道邏輯回歸的應用場景應用LogisticRegression實現邏輯回歸預測知道精確率、召回率指標的區別知道如何解決樣本不均衡情況下的評估了解
  • 「壓縮」會是機器學習的下一個殺手級應用嗎?
    :機器學習的研究正進行的如火如荼,各種新方法層出不窮。儘管這樣,還有一個問題擺在面前,研究這些算法對於現實有什麼用。特別是當討論起機器學習在手機和其他設備上的應用時,經常會被問到到:「機器學習有什麼殺手級應用?」機器學習工程師 Pete Warden 思考了很多種答案,包括從語音交互到全新的使用傳感器數據的方法等,但他認為實際上短期內最激動人性的一個方向是壓縮算法。
  • 機器學習在馬蜂窩酒店聚合中的應用初探
    本文將詳細闡述酒店聚合是什麼,以及時下熱門的機器學習技術在酒店聚合中是如何應用的。Part.1應用場景和挑戰1.酒店聚合的應用場景馬蜂窩酒旅平臺接入了大量的供應商,不同供應商會提供很多相同的酒店,但對同一酒店的描述可能會存在差異,比如:酒店聚合要做的,就是將這些來自不同供應商的酒店信息聚合在一起集中展示給用戶,為用戶提供一站式實時比價預訂服務:下圖為馬蜂窩對不同供應商的酒店進行聚合後的展示,不同供應商的報價一目了然
  • 機器學習是什麼
    講解對象:機器學習是什麼作者:融水公子 rsgz對象:機器學習是什麼英文名:machine learning又稱:預測分析(predictive analytics)或統計學習(statistical learning)實質
  • 麥板石是什麼 麥飯石可以應用在什麼場景
    麥飯石是生活中非常常聽到的材料,用於多個不同的場景。可是很多家庭主人沒有了解過這些材質,所以不太懂麥板石是什麼,也不知道麥飯石可以應用在什麼場景,大家可以參考一下的內容,掌握一些賣鑽石的應用場景以及基本的特點,然後再進行綜合的選擇,以後再考慮這些材料的時候,會更加讓人放心。
  • 機器學習在生命科學中的應用
    機器學習可以應用於drug-develop的所有階段,包括靶標驗證,預後生物標記物的鑑定和試驗中數字pathology數據的分析。目前許多公司已經將投資目標轉向機器學習領域,通過支持機器學習方法的開發,促進drug-develop研發。
  • 人工智慧視域下機器學習的教育應用與創新探索
    機器學習作為人工智慧的一個重要分支,能夠滿足教育大數據分析預測的需求。為此,基於「為何分析、分析什麼、以何分析、何以應用」一系列問題,通過對機器學習的作用對象、作用過程、具體方法和利益相關者等方面的分析,探討了機器學習和智慧教育的適切性。
  • 機器學習在搜索中的應用:個性化排序
    編輯導語:隨著科技的發展,AI、機器學習等逐漸出現在我們的生活裡,有了這些的出現,我們進行搜索時會變得更加準確和智能;本文作者詳細介紹了機器學習在搜索中的應用,我們一起來看一下。AI、機器學習,是現在媒體的高頻曝光詞,市面上的很多應用都逐漸接入了AI的能力;搜索這樣的『古董』級產品,其實也是應用機器學習技術的先驅。本次從搜索的一個場景——搜索結果排序,來聊聊機器學習在搜索產品中的應用。
  • AI應用場景的回顧與展望
    AI應用場景的回顧與展望 人民數字 Fintech 發表於 2021-01-08 09:29:50   2020年,是不平凡的一年,令人難忘的一年,對於人工智慧來說也是如此。
  • 機器學習在領英的規模化應用
    ,近年來湧現出越來越多本科生或者非人工智慧專業出身的工程師,他們努力學習和使用技術來改進產品,幾乎每天都有新的機器學習技術和框架發布。這篇文章將討論領英如何規模化利用技術,幫助更多工程師提升機器學習的效率。近日,領英中國機器學習研發經理李子在IEEE數據挖掘國際會議(ICDM)上分享了領英是如何規模化開展機器學習,介紹領英的核心產品以及如何利用技術幫助更多工程師提升機器學習的效率。
  • 深度| 機器學習對抗性攻擊報告,如何欺騙人工智慧?
    隨著人工智慧和機器學習技術在網際網路的各個領域的廣泛應用,其受攻擊的可能性,以及其是否具備強抗打擊能力一直是安全界一直關注的。之前關於機器學習模型攻擊的探討常常局限於對訓練數據的汙染。由於其模型經常趨向於封閉式的部署,該手段在真實的情況中並不實際可行。
  • 機器學習中各種熵的定義及理解
    更多人關注的公眾號:機器學習算法與Python精研編輯|魚大來源|博客Bo_hemian
  • 【BDTC先睹為快】百度沈國龍:BML百度大規模機器學習雲平臺實踐
    在推薦系統論壇,本次大會邀請到了百度基礎架構部高級架構師沈國龍擔任演講嘉賓,進行題為「 BML百度大規模機器學習雲平臺實踐」的主題演講,分享百度機器學習平臺BML的底層框架實現,包括框架演進、算法研究過程等,以及在不同的業務場景下是如何應用這些算法。沈國龍在接受CSDN的會前採訪中表示,大數據其實是一個綜合學科,開發者需要具備多方面的知識儲備才能勝任。
  • 機器學習技術應用於量子力學基礎研究
    原標題:機器學習技術應用於量子力學基礎研究中科大郭光燦院士團隊李傳鋒、許金時等人與合作者最近將機器學習技術應用於研究量子力學基礎問題,首次實驗實現了基於機器學習算法的多重非經典關聯的同時分類。另一方面,隨著量子信息研究的興起,各種不同的量子關聯已經成為量子信息領域的關鍵資源,在量子計算、量子通信、量子精密測量等過程中扮演著重要角色。李傳鋒、許金時等人將機器學習技術應用於非經典關聯的區分,通過巧妙的實驗設計,在光學系統中製備出一簇參數可調的兩比特量子態。
  • 如何入門Python與機器學習
    編者按:本書節選自圖書《Python與機器學習實戰》,Python本身帶有許多機器學習的第三方庫,但本書在絕大多數情況下只會用到Numpy這個基礎的科學計算庫來進行算法代碼的實現。這樣做的目的是希望讀者能夠從實現的過程中更好地理解機器學習算法的細節,以及了解Numpy的各種應用。不過作為補充,本書會在適當的時候應用scikit-learn這個成熟的第三方庫中的模型。
  • 算法應用|機器學習python應用,簡單機器學習項目實踐
    上一篇文章中介紹了機器學習的簡單知識,還有python中進行機器學習實踐需要的生態環境,接下來將會通過鳶尾花分類這個例子對機器學習做一個簡要的介紹。通過一步一步地實現這個項目來介紹以下內容。導入和使用python中機器學習的各個方面的類庫。導入數據,並通過描述性分析、可視化等對數據進行分析。創建六個模型,並從中選擇準確度最高的模型。
  • 分享實錄 | 第四範式程曉澄:機器學習在推薦系統中的應用
    主講人:程曉澄 | 第四範式資深算法科學家 屈鑫 整理編輯 量子位 出品 | 公眾號 QbitAI 9月20日晚,量子位邀請到第四範式資深算法科學家程曉澄, 他以「機器學習在推薦系統中的應用」為題,與大家分享了 如何用機器學習來優化推薦系統相關技術問題 。