五分鐘了解機器學習十大算法

2021-01-11 InfoQ技術實驗室

本文為有志於成為數據科學家或對此感興趣的讀者們介紹最流行的機器學習算法。

機器學習是該行業的一個創新且重要的領域。我們為機器學習程序選擇的算法類型,取決於我們想要實現的目標。

現在,機器學習有很多算法。因此,如此多的算法,可能對於初學者來說,是相當不堪重負的。今天,我們將簡要介紹 10 種最流行的機器學習算法,這樣你就可以適應這個激動人心的機器學習世界了!

讓我們言歸正傳!

1. 線性回歸

線性回歸(Linear Regression)可能是最流行的機器學習算法。線性回歸就是要找一條直線,並且讓這條直線儘可能地擬合散點圖中的數據點。它試圖通過將直線方程與該數據擬合來表示自變量(x 值)和數值結果(y 值)。然後就可以用這條線來預測未來的值!

這種算法最常用的技術是最小二乘法(Least of squares)。這個方法計算出最佳擬合線,以使得與直線上每個數據點的垂直距離最小。總距離是所有數據點的垂直距離(綠線)的平方和。其思想是通過最小化這個平方誤差或距離來擬合模型。

例如,簡單線性回歸,它有一個自變量(x 軸)和一個因變量(y 軸)

2. 邏輯回歸

邏輯回歸(Logistic regression)與線性回歸類似,但它是用於輸出為二進位的情況(即,當結果只能有兩個可能的值)。對最終輸出的預測是一個非線性的 S 型函數,稱為 logistic function, g()。

這個邏輯函數將中間結果值映射到結果變量 Y,其值範圍從 0 到 1。然後,這些值可以解釋為 Y 出現的概率。S 型邏輯函數的性質使得邏輯回歸更適合用於分類任務。

邏輯回歸曲線圖,顯示了通過考試的概率與學習時間的關係。

3. 決策樹

決策樹(Decision Trees)可用於回歸和分類任務。

在這一算法中,訓練模型通過學習樹表示(Tree representation)的決策規則來學習預測目標變量的值。樹是由具有相應屬性的節點組成的。

在每個節點上,我們根據可用的特徵詢問有關數據的問題。左右分支代表可能的答案。最終節點(即葉節點)對應於一個預測值。

每個特徵的重要性是通過自頂向下方法確定的。節點越高,其屬性就越重要。

決定是否在餐廳等候的決策樹示例。

4. 樸素貝葉斯

樸素貝葉斯(Naive Bayes)是基於貝葉斯定理。它測量每個類的概率,每個類的條件概率給出 x 的值。這個算法用於分類問題,得到一個二進位「是 / 非」的結果。看看下面的方程式。

P(c|x)=P(x|c)PP(x)P(c|x)=P(x|c)PP(x)

P(c|x)=P(c|x)= 給定預測變量 X,c 類事件的概率。P(x|c)=P(x|c)= 給定 c 時,x 的概率。P=P= 類的概率。P(x)=P(x)= 預測的概率。樸素貝葉斯分類器是一種流行的統計技術,可用於過濾垃圾郵件!

5. 支持向量機(SVM)

支持向量機(Support Vector Machine,SVM)是一種用於分類問題的監督算法。支持向量機試圖在數據點之間繪製兩條線,它們之間的邊距最大。為此,我們將數據項繪製為 n 維空間中的點,其中,n 是輸入特徵的數量。在此基礎上,支持向量機找到一個最優邊界,稱為超平面(Hyperplane),它通過類標籤將可能的輸出進行最佳分離。

超平面與最近的類點之間的距離稱為邊距。最優超平面具有最大的邊界,可以對點進行分類,從而使最近的數據點與這兩個類之間的距離最大化。

例如,H1 沒有將這兩個類分開。但 H2 有,不過只有很小的邊距。而 H3 以最大的邊距將它們分開了。

6. K- 最近鄰算法(KNN)

K- 最近鄰算法(K-Nearest Neighbors,KNN)非常簡單。KNN 通過在整個訓練集中搜索 K 個最相似的實例,即 K 個鄰居,並為所有這些 K 個實例分配一個公共輸出變量,來對對象進行分類。

K 的選擇很關鍵:較小的值可能會得到大量的噪聲和不準確的結果,而較大的值是不可行的。它最常用於分類,但也適用於回歸問題。

用於評估實例之間相似性的距離可以是歐幾裡得距離(Euclidean distance)、曼哈頓距離(Manhattan distance)或明氏距離(Minkowski distance)。歐幾裡得距離是兩點之間的普通直線距離。它實際上是點坐標之差平方和的平方根。

KNN 分類示例

7. K- 均值

K- 均值(K-means)是通過對數據集進行分類來聚類的。例如,這個算法可用於根據購買歷史將用戶分組。它在數據集中找到 K 個聚類。K- 均值用於無監督學習,因此,我們只需使用訓練數據 X,以及我們想要識別的聚類數量 K。

該算法根據每個數據點的特徵,將每個數據點迭代地分配給 K 個組中的一個組。它為每個 K- 聚類(稱為質心)選擇 K 個點。基於相似度,將新的數據點添加到具有最近質心的聚類中。這個過程一直持續到質心停止變化為止。

8. 隨機森林

隨機森林(Random Forest)是一種非常流行的集成機器學習算法。這個算法的基本思想是,許多人的意見要比個人的意見更準確。在隨機森林中,我們使用決策樹集成(參見決策樹)。

為了對新對象進行分類,我們從每個決策樹中進行投票,並結合結果,然後根據多數投票做出最終決定。

(a)在訓練過程中,每個決策樹都是基於訓練集的引導樣本來構建的。(b)在分類過程中,輸入實例的決定是根據多數投票做出的。

9. 降維

由於我們今天能夠捕獲的數據量之大,機器學習問題變得更加複雜。這就意味著訓練極其緩慢,而且很難找到一個好的解決方案。這一問題,通常被稱為「維數災難」(Curse of dimensionality)。

降維(Dimensionality reduction)試圖在不丟失最重要信息的情況下,通過將特定的特徵組合成更高層次的特徵來解決這個問題。主成分分析(Principal Component Analysis,PCA)是最流行的降維技術。

主成分分析通過將數據集壓縮到低維線或超平面 / 子空間來降低數據集的維數。這儘可能地保留了原始數據的顯著特徵。

可以通過將所有數據點近似到一條直線來實現降維的示例。

10. 人工神經網絡(ANN)

人工神經網絡(Artificial Neural Networks,ANN)可以處理大型複雜的機器學習任務。神經網絡本質上是一組帶有權值的邊和節點組成的相互連接的層,稱為神經元。在輸入層和輸出層之間,我們可以插入多個隱藏層。人工神經網絡使用了兩個隱藏層。除此之外,還需要處理深度學習。

人工神經網絡的工作原理與大腦的結構類似。一組神經元被賦予一個隨機權重,以確定神經元如何處理輸入數據。通過對輸入數據訓練神經網絡來學習輸入和輸出之間的關係。在訓練階段,系統可以訪問正確的答案。

如果網絡不能準確識別輸入,系統就會調整權重。經過充分的訓練後,它將始終如一地識別出正確的模式。

每個圓形節點表示一個人工神經元,箭頭表示從一個人工神經元的輸出到另一個人工神經元的輸入的連接。

接下來是什麼?

現在,你已經了解了最流行的機器學習算法的基礎介紹。你已經準備好學習更為複雜的概念,甚至可以通過深入的動手實踐來實現它們。如果你想了解如何實現這些算法,可以參考 Educative 出品的 Grokking Data Science課程,該課程將這些激動人心的理論應用於清晰、真實的應用程式。

祝你學習愉快!

延伸閱讀 / 學習資料:

Become a Machine Learning Engineer (成為機器學習工程師)Machine learning 101 & data science: Tips from an industry expert (機器學習 101 與數據科學:來自行業轉接的建議)How to ace your next ML interview (如何在下一次機器學習面試取得好成績)How to deploy machine learning models with Azure Machine Learning (如何利用 Azure Machine Learning 部署機器學習模型)How and why to become a machine learning engineer (成為機器學習工程師的方法及理由)The practical approach to machine learning for software engineers (面向軟體工程師的機器學習實用方法)The disconnect b/w industry deep learning and university courses (行業深度學習與大學課程脫節)My experience working with ML at Google and Microsoft (我在 Google 和 Microsoft 使用機器學習的經驗)作者介紹:

Fahim ul Haq,曾在 Facebook、Microsoft 工作。Educative.io 聯合創始人。Educative 旨在幫助學生使用交互式課程來學習編程知識。

相關焦點

  • 機器學習十大算法都是何方神聖?
    跟我們生活息息相關的最常見機器學習算法包括電影推薦算法、圖書推薦算法。這些算法都是基於你的電影觀看記錄或圖書購買記錄來給你做推薦的。James Le在KDnuggets上發布了一篇文章,介紹了他是如何入門機器學習的。此外,他在其中摸索出十大常用的機器學習算法,並逐一進行介紹。雷鋒網編譯如下,未經許可不得轉載。如果你想學機器學習,那怎麼入門呢?
  • 機器學習十大算法都是何方神聖?看完你就懂了
    大數據原本在工業界中就已經炙手可熱,而基於大數據的機器學習則更加流行,因為其通過對數據的計算,可以實現數據預測、為公司提供決策依據。跟我們生活息息相關的最常見機器學習算法包括電影推薦算法、圖書推薦算法。這些算法都是基於你的電影觀看記錄或圖書購買記錄來給你做推薦的。James Le 在 KDnuggets 上發布了一篇文章,介紹了他是如何入門機器學習的。
  • 機器學習初學者必須知道的十大算法
    還在為不知道學什麼算法入門機器學習感到頭疼?本文作者通過自身的學習向初學者介紹十大機器學習(ML)算法,並附有數字和實例以便於理解。哈佛商業評論稱數據科學家是21世紀最性感的工作。所以,對於那些ML剛剛開始的人來說,這篇博客機器學習算法工程師需要知道的十大算法是非常有用的。ML算法是可以從數據中學習並從中改進的算法,無需人工幹預。
  • 盤點:十大機器學習算法及其應用
    毫無疑問,過去兩年中,機器學習和人工智慧的普及度得到了大幅提升。如果你想學習機器算法,要從何下手呢?以我為例,我是在哥本哈根留學期間,學習AI課程入門的。我們用的教科書是一本AI經典:《Peter Norvig’s Artificial Intelligence?—?A Modern Approach》。
  • 五分鐘向長輩解釋機器學習,這樣最通俗!
    全文共2746字,預計學習時長5分鐘什麼是機器學習呢?如果是對此一竅不通的長輩來問你這個問題,你該如何回答?本文將用最簡單的詞彙來嘗試解釋這一話題,包括每個人都應該知道的最主要也是最重要的部分。如果你不了解Facebook,那麼再舉一個更常見的例子,你在瀏覽Netflix時,網頁會推薦一些可能喜歡的劇集或電影。其實,這就有點機器學習的意味了。再比如說,機器學習在自動駕駛汽車上發揮著重要作用。汽車會收集大量的數據來學習怎樣開得更好更安全。顯而易見的是,機器學習將在未來的生活中扮演重要的角色。
  • 【技術必備】解讀 2016 年十大機器學習算法及其應用
    原標題:【技術必備】解讀 2016 年十大機器學習算法及其應用 新智元編譯 來源:kdnuggets 【新智元導讀】 機器學習領域都有哪些常用算法?本文帶來盤點。 毫無疑問,過去兩年中,機器學習和人工智慧的普及度得到了大幅提升。 如果你想學習機器算法,要從何下手呢?
  • 十大機器學習算法之旅已啟程
    因此,你應該為你的問題嘗試許多不同的算法,同時使用數據的「測試集」來評估性能並選擇勝出者。  當然,你嘗試的算法必須適合你的問題,這就是選擇正確的機器學習任務的地方。打一個比方,如果你需要清理你的房子,你可以使用真空吸塵器、掃帚或拖把,但是你不會用一個鏟子來挖掘。
  • 2018.12十大機器學習熱門網文
    為此,我們使用Mybridge AI這個機器學習算法,通過分享數與閱讀時間這兩個維度來對文章進行綜合考量。這是一個競爭很激烈的文章列表,你會發現很多機器學習大牛分享的經驗與技巧。第二部分 - 學習如何在Pixel 3手機中估算景深被Go-Explore解決的蒙特祖瑪的復仇,一種新的適應硬探索的問題的算法
  • 實時監測太陽耀斑,機器學習算法果然強!耀斑數分鐘就會影響地球
    博科園:本文為天文學類實時監測太陽耀斑,機器學習算法果然強這項由CIRES和NOAA國家環境信息中心(NCEI)科學家開發的機器學習技術,搜索大量的衛星數據,以找出對空間天氣有重要意義的特徵。太陽和太空條件變化會影響地球上的各種技術,阻礙無線電通信,破壞電網,降低導航系統的精確度。
  • 史上最全十大機器學習算法,入門必看!
    1介紹關於機器學習算法的研究已經獲得了巨大的成功,哈佛商業評論甚至將數據科學家稱為二十一世紀最具誘惑力的工作。機器學習算法是在沒有人為幹涉的情況下,從大量的數據和歷史經驗中學習數據的結構並提升對某一目標的估計的算法。
  • 流行的機器學習算法總結,幫助你開啟機器學習算法學習之旅
    AI的ML領域是為實現非常精確的目標而創建的,它引入了多種算法,從而可以更順暢地進行數據處理和決策。什麼是機器學習算法?機器學習算法是任何模型背後的大腦,可讓機器學習並使其更智能。這些算法的工作方式是,為它們提供第一批數據,並且隨著時間的流逝和算法的準確性的提高,額外的數據也被引入到算法中。
  • 機器學習在合成生物學:一種新的生物工程算法
    為了快速預測新的生物系統,合成生物學需要人工智慧的機器學習。但是,傳統的機器學習算法越來越不適應需要,由於缺乏大量的質量數據而受到阻礙,科學家需要更有效的在細胞的生物工程中的機器算法。勞倫斯·伯克利國家實驗室(Berkeley Lab)的科學家最近開發出了一種新的工具,可將機器學習算法適應合成生物學的需求,從而系統地指導開發生物工程,這一新的機器學習方法可加速生物工程,比目前的預測途逕行為的方法快得多。
  • 算法應用|機器學習python應用,簡單機器學習項目實踐
    可以說這並不是一個正式的項目,只是用來做一個簡單的展示,用於給初次接觸機器學習的讀者快速了解機器學習的過程和結果。1 機器學習中的Hello World頂目學習編程時,往往我們的第一句代碼就是print(「Hello World」),而接下來的這個數據集,可以說得上是機器學習中的Hello World頂目,入門學習機器學習的過程中最常見的一個數據集。
  • 想了解機器學習?你需要知道的十個基礎算法
    毫無疑問,作為人工智慧的子領域—機器學習在過去的幾年中越來越受歡迎。由於大數據是目前科技行業最熱門的趨勢,基於大量的數據機器學習在提前預測和做出建議方面有巨大的潛力。一些有關機器學習常見的例子有:Netflix基於你以前看過的電影再給你做出影片的推薦,或者亞馬遜根據你以前買過的書籍再給你進行圖書推薦。如果想了解更多有關機器學習的知識,要從哪裡開始呢?作者第一次入門是在哥本哈根海外交流時選了一門有關人工智慧的課程。
  • 新手必看的十種機器學習算法
    然而,在眾多的機器學習算法中,哪些是又上手快捷又功能強大、適合新手學習的呢?Towards Data Science 上一篇文章就介紹了十種新手必看的機器學習算法,雷鋒網 AI 科技評論全文編譯如下。如果早就知道,我們就可以直接使用它,而不需要再通過機器學習算法從數據中進行學習了。最常見的機器學習就是學習 Y=f(X) 的映射,針對新的 X 預測 Y。這叫做預測建模或預測分析。我們的目標就是讓預測更加精確。針對希望對機器學習有個基本了解的新人來說,下面將介紹數據科學家們最常使用的 10 種機器學習算法。1.
  • 機器學習算法一覽(附python和R代碼)
    寫這篇文章的目的,就是希望它可以讓有志於從事數據科學和機器學習的諸位在學習算法的路上少走些路。我會在文章中舉例一些機器學習的問題,你們也可以在思考解決這些問題的過程中得到啟發。我也會寫下對於各種機器學習算法的一些個人理解,並且提供R和Python的執行代碼。讀完這篇文章,讀者們至少可以行動起來親手試試寫一個機器學習的程序。
  • 機器學習算法基礎(使用Python代碼)
    今天,作為一名數據科學家,我可以用每小時幾美元的成本,用複雜算法構建數據處理機器。但是實現這並不容易!因為我需要面臨度過無數個黑暗的日日夜夜。機器學習算法類型從廣義上講,有3種類型的機器學習算法。創建本指南背後的想法是簡化世界各地有抱負的數據科學家和機器學習愛好者的旅程。通過本指南,我將幫助您解決機器學習問題並從經驗中獲益。我提供了對各種機器學習算法的高級理解以及運行它們的R&Python代碼。這些應該足以弄髒你的手。線性回歸主要有兩種類型:簡單線性回歸和多元線性回歸。簡單線性回歸的特徵在於一個自變量。
  • 入門| 機器學習新手必看10大算法
    參與:程耀彤、路雪 本文介紹了機器學習新手需要了解的 10 大算法,包括線性回歸、Logistic 回歸、樸素貝葉斯、K 近鄰算法等。 大原則 不過也有一個普遍原則,即所有監督機器學習算法預測建模的基礎。
  • 數據科學家應該知道的頂級機器學習算法
    機器學習算法簡介有兩種方法可以對您可能在現場遇到的機器學習算法進行分類。首先是按照學習風格對算法進行分組。第二個是通過形式或功能上的相似性對算法進行分組。通常,兩種方法都是有用的。但是,我們將專注於通過相似性進行算法分組,並瀏覽各種不同的算法類型。
  • 常見的機器學習算法,你知道幾個?
    誕生於1956年的人工智慧,由於受到智能算法、計算速度、存儲水平等因素的影響,在六十多年的發展過程中經歷了多次高潮和低谷。最近幾年,得益於數據量的上漲、運算力的提升,特別是機器學習新算法的出現,人工智慧迎來了大爆發的時代。提到機器學習這個詞時,有些人首先想到的可能是科幻電影裡的機器人。