新手必看的十種機器學習算法

2020-11-26 雷鋒網

雷鋒網 AI 科技評論按:在神經網絡的成功的帶動下,越來越多的研究人員和開發人員都開始重新審視機器學習,開始嘗試用某些機器學習方法自動解決可以輕鬆採集數據的問題。然而,在眾多的機器學習算法中,哪些是又上手快捷又功能強大、適合新手學習的呢?Towards Data Science 上一篇文章就介紹了十種新手必看的機器學習算法,雷鋒網 AI 科技評論全文編譯如下。

機器學習領域有一條「沒有免費的午餐」定理。簡單解釋下的話,它是說沒有任何一種算法能夠適用於所有問題,特別是在監督學習中。

例如,你不能說神經網絡就一定比決策樹好,反之亦然。要判斷算法優劣,數據集的大小和結構等眾多因素都至關重要。所以,你應該針對你的問題嘗試不同的算法。然後使用保留的測試集對性能進行評估,選出較好的算法。

當然,算法必須適合於你的問題。就比如說,如果你想清掃你的房子,你需要吸塵器,掃帚,拖把。而不是拿起鏟子去開始挖地。

大的原則

不過,對於預測建模來說,有一條通用的原則適用於所有監督學習算法。

機器學習算法可以描述為學習一個目標函數 f,它能夠最好地映射出輸入變量 X 到輸出變量 Y。有一類普遍的學習任務。我們要根據輸入變量 X 來預測出 Y。我們不知道目標函數 f 是什麼樣的。如果早就知道,我們就可以直接使用它,而不需要再通過機器學習算法從數據中進行學習了。

最常見的機器學習就是學習 Y=f(X) 的映射,針對新的 X 預測 Y。這叫做預測建模或預測分析。我們的目標就是讓預測更加精確。

針對希望對機器學習有個基本了解的新人來說,下面將介紹數據科學家們最常使用的 10 種機器學習算法。

1. 線性回歸

線性回歸可能是統計和機器學習領域最廣為人知的算法之一。

以犧牲可解釋性為代價,預測建模的首要目標是減小模型誤差或將預測精度做到最佳。我們從統計等不同領域借鑑了多種算法,來達到這個目標。

線性回歸通過找到一組特定的權值,稱為係數 B。通過最能符合輸入變量 x 到輸出變量 y 關係的等式所代表的線表達出來。


線性回歸

例如:y = B0 + B1 * x 。我們針對給出的輸入 x 來預測 y。線性回歸學習算法的目標是找到 B0 和 B1 的值。

不同的技巧可以用於線性回歸模型。比如線性代數的普通最小二乘法,以及梯度下降優化算法。線性回歸已經有超過 200 年的歷史,已經被廣泛地研究。根據經驗,這種算法可以很好地消除相似的數據,以及去除數據中的噪聲。它是快速且簡便的首選算法。

2. 邏輯回歸

邏輯回歸是另一種從統計領域借鑑而來的機器學習算法。

與線性回歸相同。它的目的是找出每個輸入變量的對應參數值。不同的是,預測輸出所用的變換是一個被稱作 logistic 函數的非線性函數。

logistic 函數像一個大 S。它將所有值轉換為 0 到 1 之間的數。這很有用,我們可以根據一些規則將 logistic 函數的輸出轉換為 0 或 1(比如,當小於 0.5 時則為 1)。然後以此進行分類。

邏輯回歸

正是因為模型學習的這種方式,邏輯回歸做出的預測可以被當做輸入為 0 和 1 兩個分類數據的概率值。這在一些需要給出預測合理性的問題中非常有用。

就像線性回歸,在需要移除與輸出變量無關的特徵以及相似特徵方面,邏輯回歸可以表現得很好。在處理二分類問題上,它是一個快速高效的模型。

3. 線性判別分析

邏輯回歸是一個二分類問題的傳統分類算法。如果需要進行更多的分類,線性判別分析算法(LDA)是一個更好的線性分類方法。

對 LDA 的解釋非常直接。它包括針對每一個類的輸入數據的統計特性。對於單一輸入變量來說包括:

  1. 類內樣本均值

  2. 總體樣本變量


線性判別分析

通過計算每個類的判別值,並根據最大值來進行預測。這種方法假設數據服從高斯分布(鐘形曲線)。所以它可以較好地提前去除離群值。它是針對分類模型預測問題的一種簡單有效的方法。

4. 分類與回歸樹分析

決策樹是機器學習預測建模的一類重要算法。

可以用二叉樹來解釋決策樹模型。這是根據算法和數據結構建立的二叉樹,這並不難理解。每個節點代表一個輸入變量以及變量的分叉點(假設是數值變量)

決策樹

樹的葉節點包括用於預測的輸出變量 y。通過樹的各分支到達葉節點,並輸出對應葉節點的分類值。

樹可以進行快速的學習和預測。通常並不需要對數據做特殊的處理,就可以使用這個方法對多種問題得到準確的結果。

5. 樸素貝葉斯

樸素貝葉斯(Naive Bayes)是一個簡單,但是異常強大的預測建模算法。

這個模型包括兩種概率。它們可以通過訓練數據直接計算得到:1)每個類的概率;2)給定 x 值情況下每個類的條件概率。根據貝葉斯定理,一旦完成計算,就可以使用概率模型針對新的數據進行預測。當你的數據為實數時,通常假設服從高斯分布(鐘形曲線)。這樣你可以很容易地預測這些概率。

貝葉斯定理

之所以被稱作樸素貝葉斯,是因為我們假設每個輸入變量都是獨立的。這是一個強假設,在真實數據中幾乎是不可能的。但對於很多複雜問題,這種方法非常有效。

6. K 最近鄰算法

K 最近鄰算法(KNN)是一個非常簡單有效的算法。KNN 的模型表示就是整個訓練數據集。很簡單吧?

對於新數據點的預測則是,尋找整個訓練集中 K 個最相似的樣本(鄰居),並把這些樣本的輸出變量進行總結。對於回歸問題可能意味著平均輸出變量。對於分類問題則可能意味著類值的眾數(最常出現的那個值)。

訣竅是如何在數據樣本中找出相似性。最簡單的方法就是,如果你的特徵都是以相同的尺度(比如說都是英寸)度量的,你就可以直接計算它們互相之間的歐式距離。

K 最近鄰算法

KNN 需要大量空間來存儲所有的數據。但只是在需要進行預測的時候才開始計算(學習)。你可以隨時更新並組織訓練樣本以保證預測的準確性。

在維數很高(很多輸入變量)的情況下,這種通過距離或相近程度進行判斷的方法可能失敗。這會對算法的性能產生負面的影響。這被稱作維度災難。我建議你只有當輸入變量與輸出預測變量最具有關聯性的時候使用這種算法。

7. 學習矢量量化

K 最近鄰算法的缺點是你需要存儲所有訓練數據集。而學習矢量量化(縮寫為 LVQ)是一個人工神經網絡算法。它允許你選擇需要保留的訓練樣本個數,並且學習這些樣本看起來應該具有何種模式。


學習矢量量化

LVQ 可以表示為一組碼本向量的集合。在開始的時候進行隨機選擇。通過多輪學習算法的迭代,最後得到與訓練數據集最相配的結果。通過學習,碼本向量可以像 K 最近鄰算法那樣進行預測。通過計算新數據樣本與碼本向量之間的距離找到最相似的鄰居(最符合碼本向量)。將最佳的分類值(或回歸問題中的實數值)返回作為預測值。如果你將數據調整到相同的尺度,比如 0 和 1,則可以得到最好的結果。

如果你發現對於你的數據集,KNN 有較好的效果,可以嘗試一下 LVQ 來減少存儲整個數據集對存儲空間的依賴。

8. 支持向量機

支持向量機(SVM)可能是最常用並且最常被談到的機器學習算法。

超平面是一條劃分輸入變量空間的線。在 SVM 中,選擇一個超平面,它能最好地將輸入變量空間劃分為不同的類,要麼是 0,要麼是 1。在 2 維情況下,可以將它看做一根線,並假設所有輸入點都被這根線完全分開。SVM 通過學習算法,找到最能完成類劃分的超平面的一組參數。

支持向量機

超平面和最接近的數據點的距離看做一個差值。最好的超平面可以把所有數據劃分為兩個類,並且這個差值最大。只有這些點與超平面的定義和分類器的構造有關。這些點被稱作支持向量。是它們定義了超平面。在實際使用中,優化算法被用於找到一組參數值使差值達到最大。

SVM 可能是一種最為強大的分類器,它值得你一試。

9. Bagging 和隨機森林

隨機森林是一個常用並且最為強大的機器學習算法。它是一種集成機器學習算法,稱作自舉匯聚或 bagging。

bootstrap 是一種強大的統計方法,用於數據樣本的估算。比如均值。你從數據中採集很多樣本,計算均值,然後將所有均值再求平均。最終得到一個真實均值的較好的估計值。

在 bagging 中用了相似的方法。但是通常用決策樹來代替對整個統計模型的估計。從訓練集中採集多個樣本,針對每個樣本構造模型。當你需要對新的數據進行預測,每個模型做一次預測,然後把預測值做平均得到真實輸出的較好的預測值。

隨機森林

這裡的不同在於在什麼地方創建樹,與決策樹選擇最優分叉點不同,隨機森林通過加入隨機性從而產生次優的分叉點。

每個數據樣本所創建的模型與其他的都不相同。但在唯一性和不同性方面仍然準確。結合這些預測結果可以更好地得到真實的輸出估計值。

如果在高方差的算法(比如決策樹)中得到較好的結果,你通常也可以通過袋裝這種算法得到更好的結果。

10. Boosting 和 AdaBoost

Boosting 是一種集成方法,通過多種弱分類器創建一種強分類器。它首先通過訓練數據建立一個模型,然後再建立第二個模型來修正前一個模型的誤差。在完成對訓練集完美預測之前,模型和模型的最大數量都會不斷添加。

AdaBoost 是第一種成功的針對二分類的 boosting 算法。它是理解 boosting 的最好的起點。現代的 boosting 方法是建立在 AdaBoost 之上。多數都是隨機梯度 boosting 機器。

AdaBoost

AdaBoost 與短決策樹一起使用。當第一棵樹創建之後,每個訓練樣本的樹的性能將用於決定,針對這個訓練樣本下一棵樹將給與多少關注。難於預測的訓練數據給予較大的權值,反之容易預測的樣本給予較小的權值。模型按順序被建立,每個訓練樣本權值的更新都會影響下一棵樹的學習效果。完成決策樹的建立之後,進行對新數據的預測,訓練數據的精確性決定了每棵樹的性能。

因為重點關注修正算法的錯誤,所以移除數據中的離群值非常重要。

結語

當面對各種機器學習算法,一個新手最常問的問題是「我該使用哪個算法」。要回答這個問題需要考慮很多因素:(1)數據的大小,質量和類型;(2)完成計算所需要的時間;(3)任務的緊迫程度;(4)你需要對數據做什麼處理。

在嘗試不同算法之前,就算一個經驗豐富的數據科學家也不可能告訴你哪種算法性能最好。雖然還有很多其他的機器學習算法,但這裡列舉的是最常用的幾種。如果你是一個機器學習的新手,這幾種是最好的學習起點。

via towardsdatascience.com,雷鋒網(公眾號:雷鋒網) AI 科技評論編譯

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

相關焦點

  • 入門| 機器學習新手必看10大算法
    原標題:入門 | 機器學習新手必看10大算法 選自TowardsDataScience 作者:James Le 參與:程耀彤、路雪 本文介紹了機器學習新手需要了解的 10 大算法,包括線性回歸、Logistic 回歸、樸素貝葉斯、K 近鄰算法等。
  • 分享最適合新手入門的10種機器學習算法
    編者按:Medium博主James Le近日在網絡上分享了他認為的最適合新手的機器學習算法,並授權論智進行編譯。以下是我們對原文的編譯,如有錯誤還請指出。 在機器學習界,有這樣一個「沒有免費午餐」的定理。簡單地說,該理論認為,沒有一種算法能解決所有問題,尤其對監督學習而言。
  • 新手必備!十大機器學習算法之旅已啟程
    因此,你應該為你的問題嘗試許多不同的算法,同時使用數據的「測試集」來評估性能並選擇勝出者。  當然,你嘗試的算法必須適合你的問題,這就是選擇正確的機器學習任務的地方。打一個比方,如果你需要清理你的房子,你可以使用真空吸塵器、掃帚或拖把,但是你不會用一個鏟子來挖掘。
  • 史上最全十大機器學習算法,入門必看!
    1介紹關於機器學習算法的研究已經獲得了巨大的成功,哈佛商業評論甚至將數據科學家稱為二十一世紀最具誘惑力的工作。機器學習算法是在沒有人為幹涉的情況下,從大量的數據和歷史經驗中學習數據的結構並提升對某一目標的估計的算法。
  • 流行的機器學習算法總結,幫助你開啟機器學習算法學習之旅
    機器學習算法概述「機器智能是人類永遠需要的一項發明。」— Nick Bostrom.如果您可以回顧幾年前的AI並將其與現在的AI進行比較,您會驚訝地發現AI的發展速度隨著時間的增長呈指數級增長。它已擴展到各種領域,例如ML,Expert Systems,NLP等數十個領域。
  • 算法應用|機器學習python應用,簡單機器學習項目實踐
    可以說這並不是一個正式的項目,只是用來做一個簡單的展示,用於給初次接觸機器學習的讀者快速了解機器學習的過程和結果。1 機器學習中的Hello World頂目學習編程時,往往我們的第一句代碼就是print(「Hello World」),而接下來的這個數據集,可以說得上是機器學習中的Hello World頂目,入門學習機器學習的過程中最常見的一個數據集。
  • 公考新手必看:2021國考準考證列印手冊
    公考新手必看:2021國考準考證列印手冊由北京人事考試網提供:更多關於新手必看,2021國考,準考證列印的內容請關注國家公務員考試網/北京公務員考試網!或關注北京華圖微信公眾號(bjhuatu),國家公務員考試培訓諮詢電話:400-010-1568。
  • 五分鐘了解機器學習十大算法
    本文為有志於成為數據科學家或對此感興趣的讀者們介紹最流行的機器學習算法。機器學習是該行業的一個創新且重要的領域。我們為機器學習程序選擇的算法類型,取決於我們想要實現的目標。現在,機器學習有很多算法。因此,如此多的算法,可能對於初學者來說,是相當不堪重負的。
  • 數據科學家應該知道的頂級機器學習算法
    機器學習算法簡介有兩種方法可以對您可能在現場遇到的機器學習算法進行分類。首先是按照學習風格對算法進行分組。第二個是通過形式或功能上的相似性對算法進行分組。通常,兩種方法都是有用的。但是,我們將專注於通過相似性進行算法分組,並瀏覽各種不同的算法類型。
  • 機器學習十大算法都是何方神聖?
    跟我們生活息息相關的最常見機器學習算法包括電影推薦算法、圖書推薦算法。這些算法都是基於你的電影觀看記錄或圖書購買記錄來給你做推薦的。James Le在KDnuggets上發布了一篇文章,介紹了他是如何入門機器學習的。此外,他在其中摸索出十大常用的機器學習算法,並逐一進行介紹。雷鋒網編譯如下,未經許可不得轉載。如果你想學機器學習,那怎麼入門呢?
  • Python機器學習10:機器學習中的六種分類算法及實現(上)
    在機器學習中,可以使用多種算法模型解決同一個問題,那麼如何從中選擇出最佳的算法模型呢?當然,這個問題沒有一種固定的答案,需要根據不同的問題,嘗試使用多種機器學習方法,比較各種算法模型在該問題上的效果,最終才能決定究竟選擇哪一種模型。
  • 機器學習萌新必學的Top10算法
    原作 James LeRoot 編譯自 KDuggets量子位 報導 | 公眾號 QbitAI在機器學習領域裡,不存在一種萬能的算法可以完美解決所有問題,尤其是像預測建模的監督學習裡。大的原則不過呢,對於所有預測建模的監督學習算法來說,還是有一些通用的底層原則的。機器學習算法,指的是要學習一個目標函數,能夠儘可能地還原輸入和輸出之間的關係。然後根據新的輸入值X,來預測出輸出值Y。精準地預測結果是機器學習建模的任務。
  • 教程| 初學者如何選擇合適的機器學習算法(附速查表)
    選自sas機器之心編譯參與:黃小天、蔣思源、吳攀本文主要的目標讀者是機器學習愛好者或數據科學的初學者,以及對學習和應用機器學習算法解決實際問題抱有濃厚興趣的讀者。面對大量的機器學習算法,初學者通常會問自己一個典型的問題:「我該使用哪一種算法?」
  • 盤點:十大機器學習算法及其應用
    毫無疑問,過去兩年中,機器學習和人工智慧的普及度得到了大幅提升。如果你想學習機器算法,要從何下手呢?以我為例,我是在哥本哈根留學期間,學習AI課程入門的。我們用的教科書是一本AI經典:《Peter Norvig’s Artificial Intelligence?—?A Modern Approach》。
  • 常見的機器學習算法,你知道幾個?
    誕生於1956年的人工智慧,由於受到智能算法、計算速度、存儲水平等因素的影響,在六十多年的發展過程中經歷了多次高潮和低谷。最近幾年,得益於數據量的上漲、運算力的提升,特別是機器學習新算法的出現,人工智慧迎來了大爆發的時代。提到機器學習這個詞時,有些人首先想到的可能是科幻電影裡的機器人。
  • 上古捲軸5矮人渾天儀玩法介紹 新手必看教學
    上古捲軸5矮人渾天儀玩法介紹 新手必看教學 上古捲軸5矮人渾天儀玩法介紹 新手必看教學,上古捲軸
  • 機器學習算法盤點:人工神經網絡、深度學習
    機器學習算法盤點:人工神經網絡、深度學習 佚名 發表於 2016-08-01 16:26:33   機器學習無疑是當前數據分析領域的一個熱點內容。很多人在平時的工作中都或多或少會用到機器學習的算法。
  • 機器學習算法基礎(使用Python代碼)
    今天,作為一名數據科學家,我可以用每小時幾美元的成本,用複雜算法構建數據處理機器。但是實現這並不容易!因為我需要面臨度過無數個黑暗的日日夜夜。機器學習算法類型從廣義上講,有3種類型的機器學習算法。創建本指南背後的想法是簡化世界各地有抱負的數據科學家和機器學習愛好者的旅程。通過本指南,我將幫助您解決機器學習問題並從經驗中獲益。我提供了對各種機器學習算法的高級理解以及運行它們的R&Python代碼。這些應該足以弄髒你的手。線性回歸主要有兩種類型:簡單線性回歸和多元線性回歸。簡單線性回歸的特徵在於一個自變量。
  • 機器學習在合成生物學:一種新的生物工程算法
    機器學習應用現在機器學習正在向一個新的領域——合成生物學領域挺進。為了快速預測新的生物系統,合成生物學需要人工智慧的機器學習。但是,傳統的機器學習算法越來越不適應需要,由於缺乏大量的質量數據而受到阻礙,科學家需要更有效的在細胞的生物工程中的機器算法。
  • 機器學習算法的新女王——XGBoost
    字幕組雙語原文:XGBoost是基於決策樹的集成機器學習算法,使用了梯度提升框架。在涉及非結構化數據(圖像、文本等)的預測問題中,人工神經網絡往往優於所有其他算法或框架。然而,當涉及到中小型結構化/表格數據時,基於決策樹的算法被認為是目前同類中最好的。請參閱下表了解這些年來基於樹的算法的發展。