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

2020-12-17 愛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機器學習預測分析核心算法.pdf
    作者利用多年的機器學習經驗帶領讀者設計、構建並實現自己的機器學習方案。本書儘可能地用簡單的術語來介紹算法,避免複雜的數學推導,同時提供了示例代碼幫助讀者迅速上手。讀者會很快深入了解模型構建背後的原理,不論簡單問題還是複雜問題,讀者都可以學會如何找到問題的解決算法。書中詳細的示例,給出了具體的可修改的代碼,展示了機器學習機理,涵蓋了線性回歸和集成方法,幫助理解使用機器學習方法的基本流程。
  • 【下載】Scikit-learn作者新書《Python機器學習導論》, 教程+代碼手把手帶你實踐機器學習算法
    數據表示和特徵工程5. 模型評估與提高6. 算法實踐流程7. 文本數據處理8. 有了這本書,你會學到:▌圖書配套Github代碼該代碼庫包含Andreas Mueller和Sarah Guido即將出版的書「Python機器學習導論」的代碼。
  • Stacking 模型融合詳解(附python代碼)
    AI算法工程  公眾號: datayx集成學習  Ensemble learning 中文名叫做集成學習,它並不是一個單獨的機器學習算法,而是將很多的機器學習算法結合在一起,我們把組成集成學習的算法叫做「個體學習器」。
  • 分享《深度學習入門:基於Python的理論與實現》高清中文版PDF+原始碼
    AI算法工程  公眾號: datayx loveai.techAI圖譜,一個全新的機器學習技術分享社區原創作者在AI圖譜平臺上每成功發布一篇文章,通過審核後可獎勵人民幣30-50元不等,歡迎參與!3.4 3層神經網絡的實現3.5 輸出層的設計3.6 手寫數字識別3.7 小結第4章 神經網絡的學習4.1 從數據中學習4.2 損失函數4.3 數值微分4.4 梯度4.5 學習算法的實現4.6 小結第5章 誤差反向傳播法5.1 計算圖5.2 鏈式法則5.3 反向傳播5.4
  • 算法應用|機器學習python應用,簡單機器學習項目實踐
    上一篇文章中介紹了機器學習的簡單知識,還有python中進行機器學習實踐需要的生態環境,接下來將會通過鳶尾花分類這個例子對機器學習做一個簡要的介紹。通過一步一步地實現這個項目來介紹以下內容。導入和使用python中機器學習的各個方面的類庫。
  • 機器學習算法基礎(使用Python代碼)
    今天,作為一名數據科學家,我可以用每小時幾美元的成本,用複雜算法構建數據處理機器。但是實現這並不容易!因為我需要面臨度過無數個黑暗的日日夜夜。機器學習算法類型從廣義上講,有3種類型的機器學習算法。現在使用這個方程,我們可以求出重量,而知道一個人的身高。創建本指南背後的想法是簡化世界各地有抱負的數據科學家和機器學習愛好者的旅程。通過本指南,我將幫助您解決機器學習問題並從經驗中獲益。我提供了對各種機器學習算法的高級理解以及運行它們的R&Python代碼。這些應該足以弄髒你的手。
  • Python趣味打怪:60秒學會一個例子,147段代碼助你從入門到大師
    不要害怕學習的過程枯燥無味,這裡有程式設計師jackzhenguo打造的一份中文Python「糖果包」:147個代碼小樣,60秒一口,營養又好玩,從Python基礎到機器學習盡皆囊括。入門簡單如十進位轉二進位,盡顯Python簡潔之美:In [1]: bin(10)Out[1]: '0b1010'冬天到了,就算沒有點亮手繪技能,也能用簡單幾行代碼繪出漫天雪花:
  • 資源│機器學習、深度學習、算法工程師等 AI 相關崗位面試需要知識
    資料圖解李金洪的《深度學習之TensorFlow 入門、原理與進階實戰》深度神經網絡實戰技巧深度學習從入門到進階的 12 個經典問題及解答計算機視覺知識點總結https://zhuanlan.zhihu.com/p/58776542圖解人工智慧https://okai.brown.edu
  • AI | 怎樣快速入門機器學習和深度學習?
    編者按:入門機器學習和深度學習並不是一件容易的事情。需要學習大量的知識,初學者常常會迷茫不知所措。現在我們給你帶來一篇純乾貨,幫助你入門機器學習和深度學習。機器學習算法書籍:《統計學習方法》:李航博士的經典教材。用最精煉的語言描述機器學習算法,轉行AI必讀書籍《機器學習》:周志華教授的西瓜書。統計學習方法涵蓋面太窄,配合西瓜書來擴展寬度。《python機器學習及實現》:適合入門,學習曲線平滑,理論書看累了,就跟著這本書打一遍代碼,對kaggle就會大致的了解。
  • 機器學習入門線路
    ML表示機器學習,DEV表示開發,本專欄旨在為大家分享作為算法工程師的工作,機器學習生態下的有關模型方法和技術,從數據生產到模型部署維護監控全流程,預備知識、理論、技術、經驗等都會涉及,近期內容以入門線路為主,敬請期待!往期回顧:之前寫了有關計算機開發能力和數學能力的入門,在已有一定開發和數學基礎的前提下,大家可以慢慢開展機器學習方面的學習。
  • Python 從入門到進階經典書籍,你看過幾本?
    自動化可以看的書籍Python 機器學習可以看大的書籍確實一些好的 Python 書籍確實對我們自身有所幫助,但是 Python 書籍琳琅滿目,有什麼質量比較高的 Python 書籍適合閱讀學習呢?這就一起給大夥用心整理一波,絕不含糊,儘量推薦少而精的,能直擊你痛點的書:市面上關於 Python 入門初學的書籍是最多的,我就說幾本相對友好的吧:這本書分為兩部分,第一部分會從安裝 Python 環境開始,給你講清楚 Python 的基礎知識,接著第二部分會用一些小項目(遊戲,web,數據等)來鞏固你的基礎知識點。
  • Python機器學習實戰 —— KNN算法詳解
    這個系列按照機器學習實戰的章節來寫,由於市面上已經有很多同類的文章,一般以介紹算法,貼代碼,舉例子為主,個人讀下來,覺得對於實現的代碼還是不能有很好的理解,所有有了這個系列。它的的思路是:如果一個樣本在特徵空間中的k個最相似(即特徵空間中最鄰近)的樣本中的大多數屬於某一個類別,則該樣本也屬於這個類別。K通常是不大於20的整數。KNN算法中,所選擇的鄰居都是已經正確分類的對象。該方法在定類決策上只依據最鄰近的一個或者幾個樣本的類別來決定待分樣本所屬的類別。
  • 學python?不是一個python入門教程就行,學之前你必須知道這些
    機器學習:這也是python最有魅力的地方,善於做圖形分析,算法建模等等。所以python在人工智慧,機器學習的領域有著讀到的優勢。既然是就業那麼就要看市場,就是人才需求市場,這裡說的市場當讓是說python人才需求的市場了。說到市場當然python每個方向肯定有市場了,咱們直接看主要矛盾:一個是需求量,另一個是入行的難易程度。python全棧目前是市場的需求量最大,入行也是最容易的。要是為了就業那就先這樣入門入行,就不用想了。
  • 機器學習Kaggle入門,房價預測比賽
    機器學習Kaggle入門,自行車租賃預測比賽第一個問題是分類問題,第二個問題是回歸問題。現在這篇文章,會側重介紹kaggle的實際操作」現場「,方便大家去跟著思路學習進入到kaggle的真實世界,不僅知道怎麼做模型預測,還知道數據在哪下載,在哪提交。其次,這個房價預測的比賽相比之前的兩個案例是特徵多了很多,面對特徵突然」爆炸「,本文提供簡單的處理思路。
  • 算法工程師面試問題及資料超詳細合集(多家公司算法崗面經/代碼實戰/網課/競賽等)
    阿里巴巴計算機視覺算法實習生視頻面試 website面試經驗AI算法工程師(面試官角度) website從零基礎到BAT算法崗SP——秋招準備攻略 website螞蟻金服/曠視/虹軟/騰訊優圖暑期實習offer面經 website我在美團的這兩年(附校招筆試/面試/面經分享) website1000 面試題,BAT
  • Python機器學習課程(代碼與教程)
    >https://github.com/machinelearningmindset/machine-learning-course目錄簡介這個項目的目的是提供一個全面但簡單的用python完成機器學習的教程。
  • 從零開始實現穿衣圖像分割完整教程(附python代碼演練)
    我們使用 OpenCV 提供的 GrubCut 算法。 該算法利用高斯混合模型分離前景和背景。 通過它可以幫助我們找到圖像中的人物。我們只實現了簡單的功能。 假設感興趣的人站在圖像的中間。python def cut(img): img = cv.resize(img,(224,224)) ¨K5K
  • NLP、CV、語音相關AI算法工程師面試問題、代碼、簡歷模板、知識點等資源整理分享
    本資源整理了機器學習、深度學習、算法工程師等AI相關崗位面試需要知識點,常見代碼實戰(分為C/C++和python版本)、常見問題,簡歷模板、比賽/競賽相關的資源,分享給需要的朋友。知乎        •算法工程師必須要知道的面試技能雷達圖 zhihu        •做計算機視覺的你,如何拿到大廠的Offer的?可否分享下?
  • 五個給機器學習和數據科學入門者的學習建議
    兩年前,我開始在網上自學機器學習,並且通過 YouTube 和博客分享了我的學習過程。我並不知道我在做什麼,在決定開始學習機器學習之前我從沒寫過代碼。當人們發現我的作品,他們通常會私信並提問。我不一定知道所有的答案,但我會儘量回復。人們最常問的問題是:「該從哪開始?」,其次是:「我需要多少數學基礎?」
  • Python + Scikit-learn 完美入門機器學習指南 ​
    但我們都知道,機器學習常用的算法有很多,例如:線性回歸、支持向量機、k 近鄰、決策樹、樸素貝葉斯、邏輯回歸等。其中的一些算法都有著比較複雜的數學過程,如果每一次都需要自己通過代碼實現這些算法,那麼機器學的門檻就變得很高了。這時,scikit-learn 來了。