入門| 機器學習新手必看10大算法

2020-11-22 搜狐網

原標題:入門 | 機器學習新手必看10大算法

選自TowardsDataScience

作者:James Le

參與:程耀彤、路雪

本文介紹了機器學習新手需要了解的 10 大算法,包括線性回歸、Logistic 回歸、樸素貝葉斯、K 近鄰算法等。

在機器學習中,有一種叫做「沒有免費的午餐」的定理。簡而言之,它指出沒有任何一種算法對所有問題都有效,在監督學習(即預測建模)中尤其如此。

例如,你不能說神經網絡總是比決策樹好,反之亦然。有很多因素在起作用,例如數據集的大小和結構。

因此,你應該針對具體問題嘗試多種不同算法,並留出一個數據「測試集」來評估性能、選出優勝者。

當然,你嘗試的算法必須適合你的問題,也就是選擇正確的機器學習任務。打個比方,如果你需要打掃房子,你可能會用吸塵器、掃帚或拖把,但是你不會拿出鏟子開始挖土。

大原則

不過也有一個普遍原則,即所有監督機器學習算法預測建模的基礎。

機器學習算法被描述為學習一個目標函數 f,該函數將輸入變量 X 最好地映射到輸出變量 Y:Y = f(X)

這是一個普遍的學習任務,我們可以根據輸入變量 X 的新樣本對 Y 進行預測。我們不知道函數 f 的樣子或形式。如果我們知道的話,我們將會直接使用它,不需要用機器學習算法從數據中學習。

最常見的機器學習算法是學習映射 Y = f(X) 來預測新 X 的 Y。這叫做預測建模或預測分析,我們的目標是儘可能作出最準確的預測。

對於想了解機器學習基礎知識的新手,本文將概述數據科學家使用的 top 10 機器學習算法。

1. 線性回歸

線性回歸可能是統計學和機器學習中最知名和最易理解的算法之一。

預測建模主要關注最小化模型誤差或者儘可能作出最準確的預測,以可解釋性為代價。我們將借用、重用包括統計學在內的很多不同領域的算法,並將其用於這些目的。

線性回歸的表示是一個方程,它通過找到輸入變量的特定權重(稱為係數 B),來描述一條最適合表示輸入變量 x 與輸出變量 y 關係的直線。

線性回歸

例如:y = B0 + B1 * x

我們將根據輸入 x 預測 y,線性回歸學習算法的目標是找到係數 B0 和 B1 的值。

可以使用不同的技術從數據中學習線性回歸模型,例如用於普通最小二乘法和梯度下降優化的線性代數解。

線性回歸已經存在了 200 多年,並得到了廣泛研究。使用這種技術的一些經驗是儘可能去除非常相似(相關)的變量,並去除噪音。這是一種快速、簡單的技術,可以首先嘗試一下。

2. Logistic 回歸

Logistic 回歸是機器學習從統計學中借鑑的另一種技術。它是解決二分類問題的首選方法。

Logistic 回歸與線性回歸相似,目標都是找到每個輸入變量的權重,即係數值。與線性回歸不同的是,Logistic 回歸對輸出的預測使用被稱為 logistic 函數的非線性函數進行變換。

logistic 函數看起來像一個大的 S,並且可以將任何值轉換到 0 到 1 的區間內。這非常實用,因為我們可以規定 logistic 函數的輸出值是 0 和 1(例如,輸入小於 0.5 則輸出為 1)並預測類別值。

Logistic 回歸

由於模型的學習方式,Logistic 回歸的預測也可以作為給定數據實例(屬於類別 0 或 1)的概率。這對於需要為預測提供更多依據的問題很有用。

像線性回歸一樣,Logistic 回歸在刪除與輸出變量無關的屬性以及非常相似(相關)的屬性時效果更好。它是一個快速的學習模型,並且對於二分類問題非常有效。

3. 線性判別分析(LDA)

Logistic 回歸是一種分類算法,傳統上,它僅限於只有兩類的分類問題。如果你有兩個以上的類別,那麼線性判別分析是首選的線性分類技術。

LDA 的表示非常簡單直接。它由數據的統計屬性構成,對每個類別進行計算。單個輸入變量的 LDA 包括:

線性判別分析

進行預測的方法是計算每個類別的判別值並對具備最大值的類別進行預測。該技術假設數據呈高斯分布(鐘形曲線),因此最好預先從數據中刪除異常值。這是處理分類預測建模問題的一種簡單而強大的方法。

4. 分類與回歸樹

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

決策樹模型的表示是一個二叉樹。這是算法和數據結構中的二叉樹,沒什麼特別的。每個節點代表一個單獨的輸入變量 x 和該變量上的一個分割點(假設變量是數字)。

決策樹

決策樹的葉節點包含一個用於預測的輸出變量 y。通過遍歷該樹的分割點,直到到達一個葉節點並輸出該節點的類別值就可以作出預測。

決策樹學習速度和預測速度都很快。它們還可以解決大量問題,並且不需要對數據做特別準備。

5. 樸素貝葉斯

樸素貝葉斯是一個簡單但是很強大的預測建模算法。

該模型由兩種概率組成,這兩種概率都可以直接從訓練數據中計算出來:1)每個類別的概率;2)給定每個 x 的值,每個類別的條件概率。一旦計算出來,概率模型可用於使用貝葉斯定理對新數據進行預測。當你的數據是實值時,通常假設一個高斯分布(鐘形曲線),這樣你可以簡單的估計這些概率。

貝葉斯定理

樸素貝葉斯之所以是樸素的,是因為它假設每個輸入變量是獨立的。這是一個強大的假設,真實的數據並非如此,但是,該技術在大量複雜問題上非常有用。

6. K 近鄰算法

KNN 算法非常簡單且有效。KNN 的模型表示是整個訓練數據集。是不是很簡單?

KNN 算法在整個訓練集中搜索 K 個最相似實例(近鄰)並匯總這 K 個實例的輸出變量,以預測新數據點。對於回歸問題,這可能是平均輸出變量,對於分類問題,這可能是眾數(或最常見的)類別值。

訣竅在於如何確定數據實例間的相似性。如果屬性的度量單位相同(例如都是用英寸表示),那麼最簡單的技術是使用歐幾裡得距離,你可以根據每個輸入變量之間的差值直接計算出來其數值。

K 近鄰算法

KNN 需要大量內存或空間來存儲所有數據,但是只有在需要預測時才執行計算(或學習)。你還可以隨時更新和管理訓練實例,以保持預測的準確性。

距離或緊密性的概念可能在非常高的維度(很多輸入變量)中會瓦解,這對算法在你的問題上的性能產生負面影響。這被稱為維數災難。因此你最好只使用那些與預測輸出變量最相關的輸入變量。

7. 學習向量量化

K 近鄰算法的一個缺點是你需要遍歷整個訓練數據集。學習向量量化算法(簡稱 LVQ)是一種人工神經網絡算法,它允許你選擇訓練實例的數量,並精確地學習這些實例應該是什麼樣的。

學習向量量化

LVQ 的表示是碼本向量的集合。這些是在開始時隨機選擇的,並逐漸調整以在學習算法的多次迭代中最好地總結訓練數據集。在學習之後,碼本向量可用於預測(類似 K 近鄰算法)。最相似的近鄰(最佳匹配的碼本向量)通過計算每個碼本向量和新數據實例之間的距離找到。然後返回最佳匹配單元的類別值或(回歸中的實際值)作為預測。如果你重新調整數據,使其具有相同的範圍(比如 0 到 1 之間),就可以獲得最佳結果。

如果你發現 KNN 在你的數據集上達到很好的結果,請嘗試用 LVQ 減少存儲整個訓練數據集的內存要求。

8. 支持向量機(SVM)

支持向量機可能是最受歡迎和最廣泛討論的機器學習算法之一。

超平面是分割輸入變量空間的一條線。在 SVM 中,選擇一條可以最好地根據輸入變量類別(類別 0 或類別 1)對輸入變量空間進行分割的超平面。在二維中,你可以將其視為一條線,我們假設所有的輸入點都可以被這條線完全的分開。SVM 學習算法找到了可以讓超平面對類別進行最佳分割的係數。

支持向量機

超平面和最近的數據點之間的距離被稱為間隔。分開兩個類別的最好的或最理想的超平面具備最大間隔。只有這些點與定義超平面和構建分類器有關。這些點被稱為支持向量,它們支持或定義了超平面。實際上,優化算法用於尋找最大化間隔的係數的值。

SVM 可能是最強大的立即可用的分類器之一,值得一試。

9. Bagging 和隨機森林

隨機森林是最流行和最強大的機器學習算法之一。它是 Bootstrap Aggregation(又稱 bagging)集成機器學習算法的一種。

bootstrap 是從數據樣本中估算數量的一種強大的統計方法。例如平均數。你從數據中抽取大量樣本,計算平均值,然後平均所有的平均值以便更好的估計真實的平均值。

bagging 使用相同的方法,但是它估計整個統計模型,最常見的是決策樹。在訓練數據中抽取多個樣本,然後對每個數據樣本建模。當你需要對新數據進行預測時,每個模型都進行預測,並將所有的預測值平均以便更好的估計真實的輸出值。

隨機森林

隨機森林是對這種方法的一種調整,在隨機森林的方法中決策樹被創建以便於通過引入隨機性來進行次優分割,而不是選擇最佳分割點。

因此,針對每個數據樣本創建的模型將會與其他方式得到的有所不同,不過雖然方法獨特且不同,它們仍然是準確的。結合它們的預測可以更好的估計真實的輸出值。

如果你用方差較高的算法(如決策樹)得到了很好的結果,那麼通常可以通過 bagging 該算法來獲得更好的結果。

10. Boosting 和 AdaBoost

Boosting 是一種集成技術,它試圖集成一些弱分類器來創建一個強分類器。這通過從訓練數據中構建一個模型,然後創建第二個模型來嘗試糾正第一個模型的錯誤來完成。一直添加模型直到能夠完美預測訓練集,或添加的模型數量已經達到最大數量。

AdaBoost 是第一個為二分類開發的真正成功的 boosting 算法。這是理解 boosting 的最佳起點。現代 boosting 方法建立在 AdaBoost 之上,最顯著的是隨機梯度提升。

AdaBoost

AdaBoost 與短決策樹一起使用。在第一個決策樹創建之後,利用每個訓練實例上樹的性能來衡量下一個決策樹應該對每個訓練實例付出多少注意力。難以預測的訓練數據被分配更多權重,而容易預測的數據分配的權重較少。依次創建模型,每個模型在訓練實例上更新權重,影響序列中下一個決策樹的學習。在所有決策樹建立之後,對新數據進行預測,並且通過每個決策樹在訓練數據上的精確度評估其性能。

因為在糾正算法錯誤上投入了太多注意力,所以具備已刪除異常值的乾淨數據非常重要。

總結

初學者在面對各種機器學習算法時經常問:「我應該用哪個算法?」這個問題的答案取決於很多因素,包括:(1)數據的大小、質量和特性;(2)可用的計算時間;(3)任務的緊迫性;(4)你想用這些數據做什麼。

即使是經驗豐富的數據科學家在嘗試不同的算法之前,也無法分辨哪種算法會表現最好。雖然還有很多其他的機器學習算法,但本篇文章中討論的是最受歡迎的算法。如果你是機器學習的新手,這將是一個很好的學習起點。

原文連結:https://towardsdatascience.com/a-tour-of-the-top-10-algorithms-for-machine-learning-newbies-dde4edffae11

本文為機器之心編譯,轉載請聯繫本公眾號獲得授權。返回搜狐,查看更多

責任編輯:

相關焦點

  • 新手必看的十種機器學習算法
    然而,在眾多的機器學習算法中,哪些是又上手快捷又功能強大、適合新手學習的呢?Towards Data Science 上一篇文章就介紹了十種新手必看的機器學習算法,雷鋒網 AI 科技評論全文編譯如下。如果早就知道,我們就可以直接使用它,而不需要再通過機器學習算法從數據中進行學習了。最常見的機器學習就是學習 Y=f(X) 的映射,針對新的 X 預測 Y。這叫做預測建模或預測分析。我們的目標就是讓預測更加精確。針對希望對機器學習有個基本了解的新人來說,下面將介紹數據科學家們最常使用的 10 種機器學習算法。1.
  • 分享最適合新手入門的10種機器學習算法
    編者按:Medium博主James Le近日在網絡上分享了他認為的最適合新手的機器學習算法,並授權論智進行編譯。以下是我們對原文的編譯,如有錯誤還請指出。 在機器學習界,有這樣一個「沒有免費午餐」的定理。簡單地說,該理論認為,沒有一種算法能解決所有問題,尤其對監督學習而言。
  • 地下蟻國怎麼玩 新手入門必看攻略
    導 讀 地下蟻國怎麼玩大家都知道了嗎,遊戲的難度還是不小的,如果是萌新的玩家剛剛接觸這款遊戲,想要順利玩轉遊戲還是有難度的,下面為大家分享一些地下蟻國新手入門必看攻略
  • 新手必備!十大機器學習算法之旅已啟程
    大的原則  然而,有一個共同的原則,即所有監督機器學習算法預測建模的基礎。  機器學習算法被描述為學習一個目標函數,將輸入變量(X)最佳映射到輸出變量(Y)的目標函數(f):Y = f(X)  這是一個通用的學習任務,我們希望在未來(Y)給出預測輸入變量(X)的新例子。我們不知道函數(f)是什麼樣子或是它的形式。
  • 史上最全十大機器學習算法,入門必看!
    1介紹關於機器學習算法的研究已經獲得了巨大的成功,哈佛商業評論甚至將數據科學家稱為二十一世紀最具誘惑力的工作。機器學習算法是在沒有人為幹涉的情況下,從大量的數據和歷史經驗中學習數據的結構並提升對某一目標的估計的算法。
  • 盤點| 機器學習入門算法:從線性模型到神經網絡
    原標題:盤點 | 機器學習入門算法:從線性模型到神經網絡 選自Dataconomy 機器之心編譯 參與:王宇欣、吳攀、蔣思源幾十年來,機器學習實際上已經變成了一門獨立的領域。由於現代計算能力的進步,我們最近才能夠真正大規模地利用機器學習。而實際上機器學習是如何工作的呢?答案很簡單:算法(algorithm)。 機器學習是人工智慧(artificial intelligence)的一種,其本質上講,就是計算機可以在無需編程的情況下自己學習概念(concept)。
  • 機器學習十大算法都是何方神聖?
    跟我們生活息息相關的最常見機器學習算法包括電影推薦算法、圖書推薦算法。這些算法都是基於你的電影觀看記錄或圖書購買記錄來給你做推薦的。James Le在KDnuggets上發布了一篇文章,介紹了他是如何入門機器學習的。此外,他在其中摸索出十大常用的機器學習算法,並逐一進行介紹。雷鋒網編譯如下,未經許可不得轉載。如果你想學機器學習,那怎麼入門呢?
  • 盤點:十大機器學習算法及其應用
    毫無疑問,過去兩年中,機器學習和人工智慧的普及度得到了大幅提升。如果你想學習機器算法,要從何下手呢?以我為例,我是在哥本哈根留學期間,學習AI課程入門的。我們用的教科書是一本AI經典:《Peter Norvig’s Artificial Intelligence?—?A Modern Approach》。
  • 如何用免費GPU學習AI算法?這篇算法資源大集錦別錯過
    AI Studio精選項目大合集零基礎新手如何利用好AI studio熟悉Python可登陸百度AI Studio獲取深度學習新手入門項目合集即使你是Python新手也沒關係,AI Studio社區提供了新手入門教程,不需要你在本地搭建環境,直接在AI Studio提供的環境跑例程,增刪改代碼,測試自己的想法。Python新手項目:《Python零基礎速成課》。學完了上面的新手Python課程,在開始深度學習前想實戰一下Python技巧?
  • 人工智慧研學社 · 入門組 | 《終極算法》研習第二期
    可以說,機器學習所代表的人工智慧,已經不再是一個新鮮的概念,科技、醫療、金融、安防,甚至政治、社會研究,都逐漸將這類強大的算法整合到自己的架構中去,以發揮更大的效能。在這樣的浪潮之下,了解人工智慧與機器學習,是每一個關心科技與社會發展的人必做的功課。然而,這並不是一個低門檻的領域,人工智慧也有其漫長的歷史和複雜的發展結構,想要了解事情的全貌,無法一蹴而就。
  • 機器學習入門必讀:6種簡單實用算法及學習曲線、思維導圖
    作者 | 盧譽聲來源 | 大數據DT(ID:hzdashuju)大部分的機器學習算法主要用來解決兩類問題——分類問題和回歸問題。在本文當中,我們介紹一些簡單但經典實用的傳統機器學習算法,讓大家對機器學習算法有一個基本的感性認識。有的人說機器學習入門並不難,有的人會覺得機器學習難以理解。那麼該如何去學習機器學習這種技術與方法呢?
  • 10大機器學習算法,看懂你就是數據科學家
    正因為如此,數據科學家會掌握幾乎所有的常見算法,並精通其中一門,這樣可以快速適應新領域的問題。今天我們就來聊聊,每一位數據科技家都應該了解的10大機器學習算法。下面是關於普遍機器學習算法和快速資源的風暴之旅,準好了嗎?燒腦挑戰開始: 1. 主成分分析(PCA)/奇異值分解(SVD)PCA是一種非監督學習,用來理解由向量組成的數據集的全局特性的方法。
  • 隨機指標kdj計算方法 炒股新手入門必看!
    然而,對於隨機指標kdj計算方法比較麻煩,今天小編提醒炒股新手入門必看!
  • 機器學習十大算法都是何方神聖?看完你就懂了
    按:機器學習與人工智慧變得越來越熱。大數據原本在工業界中就已經炙手可熱,而基於大數據的機器學習則更加流行,因為其通過對數據的計算,可以實現數據預測、為公司提供決策依據。跟我們生活息息相關的最常見機器學習算法包括電影推薦算法、圖書推薦算法。這些算法都是基於你的電影觀看記錄或圖書購買記錄來給你做推薦的。James Le 在 KDnuggets 上發布了一篇文章,介紹了他是如何入門機器學習的。
  • 算法工程師路線圖(經驗濃縮,純乾貨!)
    說起算法(Algorithm),需要值得注意的是,數據結構與算法,機器學習算法都可簡稱為算法,但兩者是完全不同的。數據結構與算法是計算機科學中的一門基礎課程,主要內容是關於如何設計電腦程式,使得程序能夠運行更快,佔用內存更少。通常所說的程式設計師面試要刷算法題,指的便是數據結構與算法中的算法。
  • Python機器學習10:機器學習中的六種分類算法及實現(上)
    在機器學習中,可以使用多種算法模型解決同一個問題,那麼如何從中選擇出最佳的算法模型呢?當然,這個問題沒有一種固定的答案,需要根據不同的問題,嘗試使用多種機器學習方法,比較各種算法模型在該問題上的效果,最終才能決定究竟選擇哪一種模型。
  • 地下城堡2新手攻略大全 新手玩家入門必讀指南
    地下城堡2新手玩家要怎麼玩?今天18183小編就來介紹地下城堡2新手玩家入門必看指南大全! 1.英雄獲得 酒館每小時刷新一次,每次刷新後金幣和鑽石的刷新金額充值,刷英雄建議刷打100,也就是刷3次,有木頭優先升級酒館(提升優質英雄機率),缺的木頭的話可以到市場(市場很快就能開啟,前期可以點樹,滿一次10木)裡用鑽或者金幣買。總體來說B等級英雄不難得到。 2.出門包裹。
  • 算法應用|機器學習python應用,簡單機器學習項目實踐
    可以說這並不是一個正式的項目,只是用來做一個簡單的展示,用於給初次接觸機器學習的讀者快速了解機器學習的過程和結果。1 機器學習中的Hello World頂目學習編程時,往往我們的第一句代碼就是print(「Hello World」),而接下來的這個數據集,可以說得上是機器學習中的Hello World頂目,入門學習機器學習的過程中最常見的一個數據集。
  • 量子機器學習入門科普:解讀量子力學和機器學習的共生關係
    原作:Reena Shaw安妮 編譯自 KDnuggets量子位 出品 |量子機器學習(Quantum ML)是量子力學和機器學習的一門交叉學科。兩者間像一種共生關係,我們可以利用量子計算的力量生成機器學習算法的量子版本,並應用經典機器學習算法分析量子系統。
  • 【技術必備】解讀 2016 年十大機器學習算法及其應用
    原標題:【技術必備】解讀 2016 年十大機器學習算法及其應用 新智元編譯 來源:kdnuggets 【新智元導讀】 機器學習領域都有哪些常用算法?本文帶來盤點。 毫無疑問,過去兩年中,機器學習和人工智慧的普及度得到了大幅提升。 如果你想學習機器算法,要從何下手呢?