Python入門5大機器學習算法(附代碼),你知道哪幾個?

2020-12-03 愛Python編程的南風

Python語法簡單,功能多樣,是開發人員最喜愛的AI開發程式語言之一。 對於開發人員來說,Python在機器學習上的應用非常令人高興,因為它比C ++和Java等語言要簡單。 Python也是一種非常便攜的語言,因為它可以在Linux,Windows,Mac OS和UNIX平臺上使用。 Python也很受開發人員的歡迎,因為它允許開發人員創建交互式,可解釋式性,模塊化,動態,可移植和高級的代碼,這使得它比Java語言更獨特。下面我們看下Python的5個機器學習算法(附代碼)

1、線性回歸

線性回歸通常用於根據連續變量估計實際數值(房價、呼叫次數、總銷售額等)。我們通過擬合最佳直線來建立自變量和因變量的關係。這條最佳直線叫做回歸線,並且用 Y= a *X + b 這條線性等式來表示。

理解線性回歸的最好辦法是回顧一下童年。假設在不問對方體重的情況下,讓一個五年級的孩子按體重從輕到重的順序對班上的同學排序,你覺得這個孩子會怎麼做?他(她)很可能會目測人們的身高和體型,綜合這些可見的參數來排列他們。這是現實生活中使用線性回歸的例子。實際上,這個孩子發現了身高和體型與體重有一定的關係,這個關係看起來很像上面的等式。

在這個等式中:

Y:因變量a:斜率x:自變量b :截距係數 a 和 b 可以通過最小二乘法獲得。

參見下例。我們找出最佳擬合直線 y=0.2811x+13.9。已知人的身高,我們可以通過這條等式求出體重。

線性回歸的兩種主要類型是一元線性回歸和多元線性回歸。一元線性回歸的特點是只有一個自變量。多元線性回歸的特點正如其名,存在多個自變量。找最佳擬合直線的時候,你可以擬合到多項或者曲線回歸。這些就被叫做多項或曲線回歸。

2、邏輯回歸

別被它的名字迷惑了!這是一個分類算法而不是一個回歸算法。該算法可根據已知的一系列因變量估計離散數值(比方說二進位數值 0 或 1 ,是或否,真或假)。簡單來說,它通過將數據擬合進一個邏輯函數來預估一個事件出現的概率。因此,它也被叫做邏輯回歸。因為它預估的是概率,所以它的輸出值大小在 0 和 1 之間(正如所預計的一樣)。

讓我們再次通過一個簡單的例子來理解這個算法。

假設你的朋友讓你解開一個謎題。這只會有兩個結果:你解開了或是你沒有解開。想像你要解答很多道題來找出你所擅長的主題。這個研究的結果就會像是這樣:假設題目是一道十年級的三角函數題,你有 70%的可能會解開這道題。然而,若題目是個五年級的歷史題,你只有30%的可能性回答正確。這就是邏輯回歸能提供給你的信息。

從數學上看,在結果中,機率的對數使用的是預測變量的線性組合模型。

在上面的式子裡,p 是我們感興趣的特徵出現的概率。它選用使觀察樣本值的可能性最大化的值作為參數,而不是通過計算誤差平方和的最小值(就如一般的回歸分析用到的一樣)。

現在你也許要問了,為什麼我們要求出對數呢?簡而言之,這種方法是複製一個階梯函數的最佳方法之一。我本可以更詳細地講述,但那就違背本篇指南的主旨了。

請點擊此處輸入圖

片描述

3、支持向量機

這是一種分類方法。在這個算法中,我們將每個數據在N維空間中用點標出(N是你所有的特徵總數),每個特徵的值是一個坐標的值。

舉個例子,如果我們只有身高和頭髮長度兩個特徵,我們會在二維空間中標出這兩個變量,每個點有兩個坐標(這些坐標叫做支持向量)。

上面示例中的黑線將數據分類優化成兩個小組,兩組中距離最近的點(圖中A、B點)到達黑線的距離滿足最優條件。這條直線就是我們的分割線。接下來,測試數據落到直線的哪一邊,我們就將它分到哪一類去。

更多請見:支持向量機的簡化

將這個算法想作是在一個 N 維空間玩 JezzBall。需要對遊戲做一些小變動:

比起之前只能在水平方向或者豎直方向畫直線,現在你可以在任意角度畫線或平面。遊戲的目的變成把不同顏色的球分割在不同的空間裡。球的位置不會改變。Python代碼

4、Gradient Boosting 和 AdaBoost 算法

當我們要處理很多數據來做一個有高預測能力的預測時,我們會用到 GBM 和 AdaBoost 這兩種 boosting 算法。

boosting 算法是一種集成學習算法。它結合了建立在多個基礎估計值基礎上的預測結果,來增進單個估計值的可靠程度。這些 boosting 算法通常在數據科學比賽如 Kaggl、AV Hackathon、CrowdAnalytix 中很有效。

GradientBoostingClassifier 和隨機森林是兩種不同的 boosting 樹分類器。人們常常問起這兩個算法之間的區別。

5、決策樹

這是我最喜愛也是最頻繁使用的算法之一。這個監督式學習算法通常被用於分類問題。令人驚奇的是,它同時適用於分類變量和連續因變量。在這個算法中,我們將總體分成兩個或更多的同類群。這是根據最重要的屬性或者自變量來分成儘可能不同的組別。想要知道更多,可以閱讀:簡化決策樹。

在上圖中你可以看到,根據多種屬性,人群被分成了不同的四個小組,來判斷 「他們會不會去玩」。為了把總體分成不同組別,需要用到許多技術,比如說 Gini、Information Gain、Chi-square、entropy。

理解決策樹工作機制的最好方式是玩Jezzball,一個微軟的經典遊戲(見下圖)。這個遊戲的最終目的,是在一個可以移動牆壁的房間裡,通過造牆來分割出沒有小球的、儘量大的空間。

因此,每一次你用牆壁來分隔房間時,都是在嘗試著在同一間房裡創建兩個不同的總體。相似地,決策樹也在把總體儘量分割到不同的組裡去。

Python是一種多範式程式語言,支持面向對象,面向過程和函數式編程風格。 由於它擁有簡單的函數庫和理想的結構,Python很適合神經網絡和自然語言處理(NLP)解決方案的開發。Python具有豐富多樣的庫和工具。2.在不必實施的情況下進行算法測試。3.Python的面向對象設計提高了開發人員的工作效率。4.與Java和C ++相比,Python在開發中運行速度更快。

好了,今天就知識就分享到這裡,獲取更多資源,歡迎在評論區留言討論。

相關焦點

  • 機器學習算法一覽(附python和R代碼)
    原標題:機器學習算法一覽(附python和R代碼) 大數據文摘「機器學習」專欄成立啦!作為一名數據科學家,我可以建造一個數據處理系統來進行複雜的算法運算,這樣每小時能賺幾美金。可是學習這些算法卻花了我無數個日日夜夜。 那麼誰能從這篇文章裡收益最多呢? 這篇文章有可能是我寫的所有文章裡最有價值的一篇。
  • 【算法系列】凸優化的應用——Python求解優化問題(附代碼)
    -07-19 17:37:02 來源: 統計學家 舉報   優化問題一般可分為兩大類
  • Python趣味打怪:60秒學會一個例子,147段代碼助你從入門到大師
    不要害怕學習的過程枯燥無味,這裡有程式設計師jackzhenguo打造的一份中文Python「糖果包」:147個代碼小樣,60秒一口,營養又好玩,從Python基礎到機器學習盡皆囊括。入門簡單如十進位轉二進位,盡顯Python簡潔之美:In [1]: bin(10)Out[1]: '0b1010'冬天到了,就算沒有點亮手繪技能,也能用簡單幾行代碼繪出漫天雪花:
  • 算法應用|機器學習python應用,簡單機器學習項目實踐
    上一篇文章中介紹了機器學習的簡單知識,還有python中進行機器學習實踐需要的生態環境,接下來將會通過鳶尾花分類這個例子對機器學習做一個簡要的介紹。通過一步一步地實現這個項目來介紹以下內容。導入和使用python中機器學習的各個方面的類庫。導入數據,並通過描述性分析、可視化等對數據進行分析。創建六個模型,並從中選擇準確度最高的模型。
  • 機器學習算法基礎(使用Python代碼)
    今天,作為一名數據科學家,我可以用每小時幾美元的成本,用複雜算法構建數據處理機器。但是實現這並不容易!因為我需要面臨度過無數個黑暗的日日夜夜。機器學習算法類型從廣義上講,有3種類型的機器學習算法。現在使用這個方程,我們可以求出重量,而知道一個人的身高。創建本指南背後的想法是簡化世界各地有抱負的數據科學家和機器學習愛好者的旅程。通過本指南,我將幫助您解決機器學習問題並從經驗中獲益。我提供了對各種機器學習算法的高級理解以及運行它們的R&Python代碼。這些應該足以弄髒你的手。
  • 小白學數據小抄放送 Python,R,大數據,機器學習
    不管你是Python或R的初學者,還是SQL或機器學習的入門者,或者準備學習Hadoop,這裡都有能滿足你的資料。通過它們,你將學會如何在python中加載文件,轉換變量,分類數據,繪圖,創建樣本數據集,處理缺損數據等等。這張表總結了三個庫中常用的語句,這是用於探索性數據分析的最簡單的小抄本之一。
  • 小白學數據28張小抄放送 Python,R,大數據,機器學習
    不管你是Python或R的初學者,還是SQL或機器學習的入門者,或者準備學習Hadoop,這裡都有能滿足你的資料。 目錄: 1.數據科學專場: Python小抄表 2.數據科學專場:R的小抄表 3.機器學習小抄表 4.概率小抄表 5.SQL和MySQL小抄表 6.大數據小抄表
  • 機器學習、深度學習算法原理與案例實踐暨Python大數據綜合應用...
    原標題:機器學習、深度學習算法原理與案例實踐暨Python大數據綜合應用高級研修班通信和信息技術創新人才培養工程項目辦公室 通人辦〔2018〕 第5號 機器學習、深度學習算法原理與案例實踐暨Python
  • Python趣味打怪:147段簡單代碼完成從入門到大師
    不要害怕學習的過程枯燥無味,這裡有程式設計師jackzhenguo打造的一份中文Python「糖果包」:147個代碼小樣,60秒一口,營養又好玩,從Python基礎到機器學習盡皆囊括。入門簡單如十進位轉二進位,盡顯Python簡潔之美:In [1]: bin(10)Out[1]: '0b1010'冬天到了,就算沒有點亮手繪技能,也能用簡單幾行代碼繪出漫天雪花:例子是有趣的例子,教程也是正經教程,學習路徑清晰、系統,先一起來看看完整目錄:
  • 機器人結構工程師薪資_中國機器學習工程師薪資 - CSDN
    所以,很多人在問我「如何學python?」這種問題時,我的第一回答都是「你學python用來幹嘛?」在學校也敲打過python,做個爬蟲demo什麼的,因為目的性不強沒多久就放一邊了。清晰的目標就比如說你要做NLP,你要知道NLP的應用有智能問答,機器翻譯,搜尋引擎等等。
  • 小白學數據:教你用Python實現簡單監督學習算法
    監督學習作為運用最廣泛的機器學習方法,一直以來都是從數據挖掘信息的重要手段。即便是在無監督學習興起的近日,監督學習也依舊是入門機器學習的鑰匙。這篇監督學習教程適用於剛入門機器學習的小白。根據給定的數據集,機器學習可以分為兩大類:分類(Classification)和回歸(Regression)。如果給定的數據集的輸出值是類別,那麼待解決是分類問題。如果給定的數據集的輸出值是連續的,那麼該問題是回歸問題。
  • 乾貨| 請收下這份2018學習清單:150個最好的機器學習,NLP和Python...
    在今年秋季開始準備博士項目的時候,我已經精選了一些有關機器學習和NLP的優質網絡資源。一般我會找一個有意思的教程或者視頻,再由此找到三四個,甚至更多的教程或者視頻。猛回頭,發現標收藏夾又多了20個資源待我學習(推薦提升效率工具Tab Bundler)。
  • ...請收下這份2018學習清單:150個最好的機器學習,NLP和Python教程
    在今年秋季開始準備博士項目的時候,我已經精選了一些有關機器學習和NLP的優質網絡資源。一般我會找一個有意思的教程或者視頻,再由此找到三四個,甚至更多的教程或者視頻。猛回頭,發現標收藏夾又多了20個資源待我學習(推薦提升效率工具Tab Bundler)。
  • 中科大統計學python_python 中科大 - CSDN
    ,都能讓你輕易入門。在課程的後面會帶著大家做幾個實際的項目,比如訓練自己的模型去進行圖像識別,使用Tensorflow進行驗證碼的識別,以及Tensorflow在NLP中的使用。該課程不涉及任何算法及公式,主要是對為什麼開展自然語言理解的研究進行介紹,對於想要入門相關領域同學不妨一看。
  • 大咖| GAN之父Ian Goodfellow在Quora:機器學習十問十答
    本次互動吸引了將近2萬Quora用戶的參與,兩人總共回答了網友提出的35個機器學習相關的問題。大數據文摘從中精選出10個問題,從機器學習入門到深入探討都有涉及,帶你了解大佬眼中的機器學習。當然,我們也摘錄了Ian Goodfellow對他的「愛子」GAN的點評。
  • 乾貨 | 請收下這份2018學習清單:150個最好的機器學習,NLP和Python教程
    在今年秋季開始準備博士項目的時候,我已經精選了一些有關機器學習和NLP的優質網絡資源。一般我會找一個有意思的教程或者視頻,再由此找到三四個,甚至更多的教程或者視頻。猛回頭,發現標收藏夾又多了20個資源待我學習(推薦提升效率工具Tab Bundler)。
  • 入門| 機器學習新手必看10大算法
    原標題:入門 | 機器學習新手必看10大算法 選自TowardsDataScience 作者:James Le 因此,你應該針對具體問題嘗試多種不同算法,並留出一個數據「測試集」來評估性能、選出優勝者。 當然,你嘗試的算法必須適合你的問題,也就是選擇正確的機器學習任務。打個比方,如果你需要打掃房子,你可能會用吸塵器、掃帚或拖把,但是你不會拿出鏟子開始挖土。
  • 如何入門Python與機器學習
    編者按:本書節選自圖書《Python與機器學習實戰》,Python本身帶有許多機器學習的第三方庫,但本書在絕大多數情況下只會用到Numpy這個基礎的科學計算庫來進行算法代碼的實現。這樣做的目的是希望讀者能夠從實現的過程中更好地理解機器學習算法的細節,以及了解Numpy的各種應用。不過作為補充,本書會在適當的時候應用scikit-learn這個成熟的第三方庫中的模型。
  • 常見的機器學習算法,你知道幾個?
    誕生於1956年的人工智慧,由於受到智能算法、計算速度、存儲水平等因素的影響,在六十多年的發展過程中經歷了多次高潮和低谷。最近幾年,得益於數據量的上漲、運算力的提升,特別是機器學習新算法的出現,人工智慧迎來了大爆發的時代。提到機器學習這個詞時,有些人首先想到的可能是科幻電影裡的機器人。
  • 機器學習算法的基本知識(使用Python和R代碼)
    本指南能夠使你在研究機器學習問題的過程中獲取經驗。 我提供了關於各種機器學習算法以及R&Python代碼的高級理解以及運行它們,這些應該足以使你得心順手。所以,如果你正在尋找對這些算法的統計學理解,你應該看看別的文章。 但是,如果你正在尋找並開始構建機器學習項目,那麼這篇文章給你帶來極大好處。  3類機器學習算法(廣義上)  監督學習  工作原理 :該算法由一組目標/結果變量(或因變量)組成,該變量將根據給定的一組預測變量(獨立變量)進行預測。