新手必備!十大機器學習算法之旅已啟程

2021-01-08 IT168

  【IT168 資訊】在機器學習中,有一種叫做「沒有免費的午餐」的定理。簡而言之,它指出沒有任何一種算法能夠適用每一個問題,而且它對於監督式學習(即預測性建模)尤其重要。

  

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

  因此,你應該為你的問題嘗試許多不同的算法,同時使用數據的「測試集」來評估性能並選擇勝出者。

  當然,你嘗試的算法必須適合你的問題,這就是選擇正確的機器學習任務的地方。打一個比方,如果你需要清理你的房子,你可以使用真空吸塵器、掃帚或拖把,但是你不會用一個鏟子來挖掘。

  大的原則

  然而,有一個共同的原則,即所有監督機器學習算法預測建模的基礎。

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

  這是一個通用的學習任務,我們希望在未來(Y)給出預測輸入變量(X)的新例子。我們不知道函數(f)是什麼樣子或是它的形式。如果這樣做,我們會直接使用它,不需要使用機器學習算法從數據中學習它。

  最常見的機器學習類型是學習映射Y = f(X)來預測新的X。這被稱為預測建模或預測分析,我們的目標是使最準確的預測成為可能。

  對於渴望了解機器學習基礎知識的機器學習新手,請瀏覽數據科學家使用的前10位的機器學習算法。

  1 - 線性回歸

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

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

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

  

  例如:y = B0 + B1 * x

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

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

  線性回歸已經存在了200多年,並且已經被廣泛研究。如果可能的話,使用這種技術的一些經驗法則是去除非常相似的變量(相關),並從數據中去除噪聲。這是一個快速和簡單的技術,也是一個好的算法。

  2 - Logistic回歸

  邏輯回歸是機器學習從統計領域借鑑的另一種技術。這是二進位分類問題的首選方法(有兩個類值的問題)。

  邏輯回歸就像線性回歸,因為目標是找出加權每個輸入變量的係數值。與線性回歸不同,輸出的預測使用稱為邏輯函數的非線性函數進行變換。

  邏輯函數看起來像一個大S,並將任何值轉換為0到1的範圍。這是有用的,因為我們可以將規則應用到邏輯函數的輸出,將值捕設為0和1(例如,IF小於0.5,則輸出1)並預測一個類別值。

  

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

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

  3 - 線性判別分析

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

  LDA的表示非常簡單。它由你的數據統計屬性組成,為每個類別計算。對於單個輸入變量,這包括:

  ·在所有類中計算的方差

  ·線性判別分析

  

  預測是通過計算每個類別的識別值並對具有最大值的類別進行預測來進行的。該技術假定數據具有高斯分布(鐘形曲線),因此在手之前從數據中移除異常值是個好主意。這是一個簡單而強大的分類預測建模問題的方法。

  4 - 分類和回歸樹

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

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

  

  樹的葉節點包含用於進行預測的輸出變量(y)。預測是通過遍歷樹的分裂進行的,直到到達葉節點並輸出該葉節點的類值。

  樹的學習速度快,預測速度快。對於廣泛的問題,它們也經常是準確的,不需要為你的數據做任何特別準備。

  5 - 樸素貝葉斯

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

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

  

  樸素貝葉斯假定每個輸入變量是獨立的,這是一個強大的假設,對於真實的數據是不切實際的,但是,這種技術在大範圍的複雜問題上是非常有效的。

  6-K-近鄰算法

  KNN算法非常簡單而且非常有效。 KNN的模型表示是整個訓練數據集,比較簡單。

  通過搜索K個最相似的實例(鄰居)的整個訓練集並且匯總這些K個實例的輸出變量來預測新的數據點。對於回歸問題,這可能是平均輸出變量,對於分類問題,這可能是模式(或最常見的)類值。

  訣竅在於如何確定數據實例之間的相似性。最簡單的方法就是就是使用Euclidean距離,你可以根據每個輸入變量之間的差異直接計算一個數字。

  

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

  距離或貼近度的概念可能在非常高的維度(大量的輸入變量)中分解,這會對算法在你的問題上的性能產生負面影響。它建議你只使用那些與預測輸出變量最相關的輸入變量。

  7 - 學習矢量量化

  KNN的一個缺點是你需要堅持你的整個訓練數據集,學習矢量量化算法(簡稱LVQ)是一種人工神經網絡算法,可以讓你選擇多少個訓練實例,並精確地學習這些實例應該是什麼樣的。

  

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

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

  8 - 支持向量機

  支持向量機也許是最受歡迎和討論的機器學習算法之一。

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

  

  超平面和最近的數據點之間的距離被稱為邊界。可以分離兩個類的最好或最優超平面是具有最大邊界的直線。只有這些點與定義超平面和分類器的構造有關。這些點被稱為支持向量,他們支持或定義超平面。在實踐中,使用優化算法來找到最大化邊界的係數的值。

  支持向量機可能是最強大的現成分類器之一,值得在你的數據集上嘗試。

  9 - Bagging 和隨機森林

  隨機森林是最流行和最強大的機器學習算法之一。它是一種稱為Bootstrap Aggregation或Bagging的集成機器學習算法。

  Bootstrap 是從數據樣本中估算數量的一種強大的統計方法。你需要大量的數據樣本、計算平均值,然後平均所有的平均值,以便更好地估計真實的平均值。

  在Bagging 中,使用相同的方法,而是用於估計整個統計模型,最常見的是決策樹。你的訓練數據的多個樣本被採取,然後為每個數據樣本構建模型。當你需要對新數據進行預測時,每個模型都會進行預測,並對預測進行平均,以更好地估計真實的產出值。

  

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

  因此,為每一個數據樣本創建的模型比它們本來的樣子更不一樣,但是它們以其獨特和不同的方式仍然是準確的。結合他們的預測可以更好地估計真實的潛在產出價值。

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

  10 - 增強和AdaBoost

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

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

  

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

  因為如此多的注意力放在了糾正算法的錯誤上,所以清除掉異常值的數據非常重要。

  初學者在面對各種各樣的機器學習算法時所提出的一個典型問題是「我應該使用哪種算法?」問題的答案取決於許多因素,包括:(1)數據的大小、質量和性質;(2)可用的計算時間; (3)任務的緊迫性; (4)你想要如何處理數據。

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

相關焦點

  • 新手必看的十種機器學習算法
    然而,在眾多的機器學習算法中,哪些是又上手快捷又功能強大、適合新手學習的呢?Towards Data Science 上一篇文章就介紹了十種新手必看的機器學習算法,雷鋒網 AI 科技評論全文編譯如下。如果早就知道,我們就可以直接使用它,而不需要再通過機器學習算法從數據中進行學習了。最常見的機器學習就是學習 Y=f(X) 的映射,針對新的 X 預測 Y。這叫做預測建模或預測分析。我們的目標就是讓預測更加精確。針對希望對機器學習有個基本了解的新人來說,下面將介紹數據科學家們最常使用的 10 種機器學習算法。1.
  • 入門| 機器學習新手必看10大算法
    原標題:入門 | 機器學習新手必看10大算法 選自TowardsDataScience 作者:James Le 參與:程耀彤、路雪 本文介紹了機器學習新手需要了解的 10 大算法,包括線性回歸、Logistic 回歸、樸素貝葉斯、K 近鄰算法等。
  • 【技術必備】解讀 2016 年十大機器學習算法及其應用
    原標題:【技術必備】解讀 2016 年十大機器學習算法及其應用 新智元編譯 來源:kdnuggets 【新智元導讀】 機器學習領域都有哪些常用算法?本文帶來盤點。 毫無疑問,過去兩年中,機器學習和人工智慧的普及度得到了大幅提升。 如果你想學習機器算法,要從何下手呢?
  • 機器學習十大算法都是何方神聖?
    跟我們生活息息相關的最常見機器學習算法包括電影推薦算法、圖書推薦算法。這些算法都是基於你的電影觀看記錄或圖書購買記錄來給你做推薦的。James Le在KDnuggets上發布了一篇文章,介紹了他是如何入門機器學習的。此外,他在其中摸索出十大常用的機器學習算法,並逐一進行介紹。雷鋒網編譯如下,未經許可不得轉載。如果你想學機器學習,那怎麼入門呢?
  • 分享最適合新手入門的10種機器學習算法
    編者按:Medium博主James Le近日在網絡上分享了他認為的最適合新手的機器學習算法,並授權論智進行編譯。以下是我們對原文的編譯,如有錯誤還請指出。 在機器學習界,有這樣一個「沒有免費午餐」的定理。簡單地說,該理論認為,沒有一種算法能解決所有問題,尤其對監督學習而言。
  • 流行的機器學習算法總結,幫助你開啟機器學習算法學習之旅
    機器學習算法概述「機器智能是人類永遠需要的一項發明。」— Nick Bostrom.如果您可以回顧幾年前的AI並將其與現在的AI進行比較,您會驚訝地發現AI的發展速度隨著時間的增長呈指數級增長。它已擴展到各種領域,例如ML,Expert Systems,NLP等數十個領域。
  • 機器學習初學者必須知道的十大算法
    還在為不知道學什麼算法入門機器學習感到頭疼?本文作者通過自身的學習向初學者介紹十大機器學習(ML)算法,並附有數字和實例以便於理解。哈佛商業評論稱數據科學家是21世紀最性感的工作。所以,對於那些ML剛剛開始的人來說,這篇博客機器學習算法工程師需要知道的十大算法是非常有用的。ML算法是可以從數據中學習並從中改進的算法,無需人工幹預。
  • 五分鐘了解機器學習十大算法
    本文為有志於成為數據科學家或對此感興趣的讀者們介紹最流行的機器學習算法。機器學習是該行業的一個創新且重要的領域。我們為機器學習程序選擇的算法類型,取決於我們想要實現的目標。現在,機器學習有很多算法。因此,如此多的算法,可能對於初學者來說,是相當不堪重負的。
  • 機器學習十大算法都是何方神聖?看完你就懂了
    大數據原本在工業界中就已經炙手可熱,而基於大數據的機器學習則更加流行,因為其通過對數據的計算,可以實現數據預測、為公司提供決策依據。跟我們生活息息相關的最常見機器學習算法包括電影推薦算法、圖書推薦算法。這些算法都是基於你的電影觀看記錄或圖書購買記錄來給你做推薦的。James Le 在 KDnuggets 上發布了一篇文章,介紹了他是如何入門機器學習的。
  • 盤點:十大機器學習算法及其應用
    毫無疑問,過去兩年中,機器學習和人工智慧的普及度得到了大幅提升。如果你想學習機器算法,要從何下手呢?以我為例,我是在哥本哈根留學期間,學習AI課程入門的。我們用的教科書是一本AI經典:《Peter Norvig’s Artificial Intelligence?—?A Modern Approach》。
  • 95後哈佛小哥撰寫《從零開始的機器學習》,入門必備,書籍資源已開放
    書籍地址:https://dafriedman97.github.io/mlbook/content/introduction.html這本書涵蓋了機器學習領域最常見的方法,就像是一位機器學習工程師的工具箱,適用於入門級學習者。撰寫目的是為讀者提供獨立構建一些基本的機器學習算法的實踐指導,如果用工具箱類比的話,就是教會讀者具體使用一把螺絲刀、一盒捲尺。
  • 2018.12十大機器學習熱門網文
    為此,我們使用Mybridge AI這個機器學習算法,通過分享數與閱讀時間這兩個維度來對文章進行綜合考量。這是一個競爭很激烈的文章列表,你會發現很多機器學習大牛分享的經驗與技巧。月度學習:從A-Z入門機器學習:上手Python & R數據科學【63713個推薦,4.5/5 星】使用JavaScript進行機器學習: 使用JavaScript和TensorFlowJS進行項目實戰【414個推薦
  • 計算生物學中機器學習的十大攻略,從入門菜鳥到骨灰級專家的必備寶典
    來源:Biodatamining編譯:Kathy機器學習已經成為很多領域的必備工具,除了在通常的計算機領域風生水起,在生物信息學、計算生物學和健康信息學中都逐漸變得舉足輕重。同時隨著近年來數據的增加和網絡服務的拓展,生物學正在被新的技術不斷變革創新,和機器學習產生了前所未有的緊密結合。
  • 史上最全十大機器學習算法,入門必看!
    1介紹關於機器學習算法的研究已經獲得了巨大的成功,哈佛商業評論甚至將數據科學家稱為二十一世紀最具誘惑力的工作。機器學習算法是在沒有人為幹涉的情況下,從大量的數據和歷史經驗中學習數據的結構並提升對某一目標的估計的算法。
  • 數據科學家應該知道的頂級機器學習算法
    機器學習算法簡介有兩種方法可以對您可能在現場遇到的機器學習算法進行分類。首先是按照學習風格對算法進行分組。第二個是通過形式或功能上的相似性對算法進行分組。通常,兩種方法都是有用的。但是,我們將專注於通過相似性進行算法分組,並瀏覽各種不同的算法類型。
  • 機器學習在合成生物學:一種新的生物工程算法
    機器學習已廣泛應用於數據挖掘、計算機視覺、自然語言處理、搜尋引擎、醫學診斷、檢測信用卡欺詐、證券市場分析、DNA序列測序、語音和手寫識別、戰略遊戲和機器人等領域。為了快速預測新的生物系統,合成生物學需要人工智慧的機器學習。但是,傳統的機器學習算法越來越不適應需要,由於缺乏大量的質量數據而受到阻礙,科學家需要更有效的在細胞的生物工程中的機器算法。
  • 算法應用|機器學習python應用,簡單機器學習項目實踐
    可以說這並不是一個正式的項目,只是用來做一個簡單的展示,用於給初次接觸機器學習的讀者快速了解機器學習的過程和結果。1 機器學習中的Hello World頂目學習編程時,往往我們的第一句代碼就是print(「Hello World」),而接下來的這個數據集,可以說得上是機器學習中的Hello World頂目,入門學習機器學習的過程中最常見的一個數據集。
  • 95後哈佛小哥撰寫從零開始的機器學習入門必備,書籍資源已開放
    說起機器學習入門書,大概有成百上千種選擇。這些書籍大多是由具備豐富研究經驗的學者撰寫的,涵蓋各種主題。俗話說「開卷有益」,但對於轉專業的初學者來說,這本新書或許更適合入門:近日,一位畢業於哈佛大學的小哥根據自己的機器學習入門經歷,撰寫了一本《從零開始的機器學習》。
  • 10大機器學習算法,看懂你就是數據科學家
    正因為如此,數據科學家會掌握幾乎所有的常見算法,並精通其中一門,這樣可以快速適應新領域的問題。今天我們就來聊聊,每一位數據科技家都應該了解的10大機器學習算法。下面是關於普遍機器學習算法和快速資源的風暴之旅,準好了嗎?燒腦挑戰開始: 1. 主成分分析(PCA)/奇異值分解(SVD)PCA是一種非監督學習,用來理解由向量組成的數據集的全局特性的方法。
  • Python機器學習10:機器學習中的六種分類算法及實現(上)
    在機器學習中,可以使用多種算法模型解決同一個問題,那麼如何從中選擇出最佳的算法模型呢?當然,這個問題沒有一種固定的答案,需要根據不同的問題,嘗試使用多種機器學習方法,比較各種算法模型在該問題上的效果,最終才能決定究竟選擇哪一種模型。