0
本文作者: AI研習(xí)社-譯站 | 2020-12-26 09:16 |
譯者:AI研習(xí)社(成語(yǔ)風(fēng))
雙語(yǔ)原文鏈接:A Full-Length Machine Learning Course in Python for Free
吳恩達(dá)在斯坦福大學(xué)講授的機(jī)器學(xué)習(xí)課程堪稱Coursera上最具人氣的課程。我之前試聽(tīng)了好幾門(mén)別的機(jī)器學(xué)習(xí)課程但我覺(jué)得他的在拆解概念使之變得易于理解方面做得最好。
但是我想說(shuō)這里有一個(gè)問(wèn)題,那就是這門(mén)課程的所有作業(yè)和演示都是用Matlab做的。我是一個(gè)Python使用者而且我不想學(xué)Matlab.因此我只在課上學(xué)習(xí)概念然后自己用Python實(shí)現(xiàn)這些算法。
我用自己的方式解釋所有的算法(以我能做到的最簡(jiǎn)潔的水平)然后演示之前幾篇文章的幾乎所有算法開(kāi)發(fā)過(guò)程。我覺(jué)得我可以把它們?nèi)靠偨Y(jié)到一頁(yè)紙的篇幅,這樣可以讓學(xué)的人更容易跟上一點(diǎn)。有時(shí)這點(diǎn)點(diǎn)幫助會(huì)起很大的作用。
如果你想要聽(tīng)吳恩達(dá)的機(jī)器學(xué)習(xí)課程,你是可以免費(fèi)旁聽(tīng)完整課程想多少次就多少次的。
我們開(kāi)始吧!
最簡(jiǎn)單的機(jī)器學(xué)習(xí)算法。此算法是基于一個(gè)高中講的很基本的直線公式:
Y = AX + B
沒(méi)忘吧?忘了也無(wú)所謂。這是一個(gè)很簡(jiǎn)單的公式。這是解釋為什么這個(gè)簡(jiǎn)單公式可以被用來(lái)做預(yù)測(cè)的完整文章。
上面這篇文章只在單個(gè)變量的數(shù)據(jù)集上有用。但是在現(xiàn)實(shí)生活中絕大多數(shù)數(shù)據(jù)集有多個(gè)變量。使用同一個(gè)簡(jiǎn)單公式你可以開(kāi)發(fā)出多變量的算法。
這個(gè)是線性回歸的姊妹。但是多項(xiàng)式回歸能夠更精準(zhǔn)地找出輸入變量和輸出變量之間的關(guān)系,甚至是在這個(gè)關(guān)系不是線性的時(shí)候、
對(duì)數(shù)回歸是在線性回歸基礎(chǔ)上開(kāi)發(fā)的。他也用到了同一個(gè)簡(jiǎn)單的直線方程。這就是一個(gè)廣泛使用的、強(qiáng)大的、流行的機(jī)器學(xué)習(xí)算法了。這可以用來(lái)預(yù)測(cè)分類變量。以下文章逐步解釋了對(duì)數(shù)回歸用于二分類問(wèn)題的開(kāi)發(fā)過(guò)程。
完整手?jǐn)]python對(duì)數(shù)回歸算法:逐步版
基于二分類的概念,我們就可以開(kāi)發(fā)出用于多分類任務(wù)的對(duì)數(shù)回歸。同時(shí),Python有一些優(yōu)化函數(shù)可以讓你快速完成計(jì)算。在下文中我從這兩個(gè)思路出發(fā)完成了一個(gè)數(shù)字識(shí)別數(shù)據(jù)集的多分類任務(wù)。
手?jǐn)]python多分類算法項(xiàng)目實(shí)戰(zhàn):逐步版
神經(jīng)網(wǎng)絡(luò)如今變得越來(lái)越流行。你都讀到這篇文章了,我猜你肯定聽(tīng)說(shuō)過(guò)它。
一個(gè)神經(jīng)網(wǎng)絡(luò)在更復(fù)雜的數(shù)據(jù)集上解決的快得多。這也涉及了同一個(gè)直線方程但是這個(gè)算法的開(kāi)發(fā)要比前幾個(gè)要復(fù)雜的多。如果你聽(tīng)了吳恩達(dá)的課,你應(yīng)該已經(jīng)了解了這些概念。不然,我會(huì)盡量細(xì)地拆解這個(gè)概念。希望能幫到你:
完整手撕python神經(jīng)網(wǎng)絡(luò)算法
如果你把全部的時(shí)間了開(kāi)發(fā)算法上但是它卻不按你設(shè)想的那樣去解決問(wèn)題怎么辦。你該怎么修好它?首先你需要找到問(wèn)題出在哪里。是算法有錯(cuò),還是數(shù)據(jù)不足以訓(xùn)練模型還是你需要更多特征?看起來(lái)問(wèn)題好多哦是不是?但如果你不首先解決問(wèn)題在哪,然后朝著正確的方向前進(jìn),你將會(huì)浪費(fèi)無(wú)數(shù)時(shí)間。以下是如何找出問(wèn)題的幫助:
另一方面如果數(shù)據(jù)集偏斜太厲害,那又是另一個(gè)挑戰(zhàn)。比如你試圖解決一個(gè)分類問(wèn)題,95%是陽(yáng)性結(jié)果只有5%是陰性結(jié)果。這么一搞你就算是瞎猜所有的預(yù)測(cè)是陽(yáng)性你也有95%的準(zhǔn)確率。另一方面,如果這個(gè)ML算法看起來(lái)有90%準(zhǔn)確率那可真是夠低效的吧?連瞎猜都比它準(zhǔn)。下文就是幾個(gè)處理這種問(wèn)題的點(diǎn)子:
最老牌的流行無(wú)監(jiān)督學(xué)習(xí)算法。這個(gè)算法不想前面幾個(gè)一樣做出預(yù)測(cè)。他只是基于數(shù)據(jù)內(nèi)部的相似性進(jìn)行歸類。這更像是試圖更有效地理解當(dāng)前的數(shù)據(jù)。然后當(dāng)算法收到新數(shù)據(jù)的時(shí)候,基于它的特性,它會(huì)決定這個(gè)新數(shù)據(jù)被歸類到哪一個(gè)簇。本算法還有別的重要應(yīng)用。他可以用來(lái)給圖片降維。
為啥我們要給圖片降維?
你想啊,當(dāng)我們需要輸入大量圖片進(jìn)入算法來(lái)訓(xùn)練一個(gè)圖片分類模型的時(shí)候。超高分辨率的圖片會(huì)輸入沉重的負(fù)擔(dān)并且拖慢整個(gè)訓(xùn)練過(guò)程(認(rèn)出這是什么圖哪需要這么高分辨率!)。這種情況下一個(gè)維度更低的圖片就可以讓我們更快處理完。這只是舉一個(gè)例子。你或許可以想見(jiàn)很多同樣原因的別的用途。
下文是一個(gè)開(kāi)發(fā)K均值聚類算法的完整教程,以及如何使用這個(gè)算法來(lái)給圖片降維。
這又是一個(gè)機(jī)器學(xué)習(xí)核心任務(wù)。用于信用卡欺詐檢測(cè),制造缺陷品檢測(cè),甚至是癌細(xì)胞檢測(cè)。用高斯分布(正態(tài)分布)辦法或者簡(jiǎn)單到一個(gè)概率公式就可以搞定。下文是一個(gè)完整的逐步指導(dǎo)文章:用高斯分布的概念來(lái)開(kāi)發(fā)異常檢測(cè)算法。
完整手撕python異常檢測(cè)算法:逐步指導(dǎo)
如果你需要小小復(fù)習(xí)一下高斯分布法,看這篇文:
推薦系統(tǒng)無(wú)處不在。如果你在1688買(mǎi)了什么東西,它就會(huì)給你推薦一些你可能會(huì)喜歡的別的產(chǎn)品。B站也會(huì)給你推薦你可能會(huì)喜歡的視頻,QQ會(huì)給你推薦你可能認(rèn)識(shí)的人。你看是不是到處都有。
吳恩達(dá)的課程教你如何用那在線性回歸里面用的同一個(gè)直線方程開(kāi)發(fā)一個(gè)推薦系統(tǒng)。這就是逐步演示怎么開(kāi)發(fā)一個(gè)電影推薦系統(tǒng)的算法:
希望這些文章能幫到一些人機(jī)器學(xué)習(xí)起步,最好的學(xué)習(xí)辦法是跟著做,絕大多數(shù)算法都是基于一個(gè)非常簡(jiǎn)單的公式。我看到有人講機(jī)器學(xué)習(xí)或者人工智能需要很重度的編程知識(shí)或者困難的數(shù)學(xué),這倒未必。用簡(jiǎn)單的代碼,基礎(chǔ)數(shù)學(xué)和統(tǒng)計(jì)學(xué)知識(shí)你就可以做到很多事了。同時(shí)不停地提高你的編程水平從而勝任更復(fù)雜的任務(wù)。
如果你對(duì)機(jī)器學(xué)習(xí)感興趣就花一點(diǎn)時(shí)間,在這上面花點(diǎn)功夫。
AI研習(xí)社是AI學(xué)術(shù)青年和AI開(kāi)發(fā)者技術(shù)交流的在線社區(qū)。我們與高校、學(xué)術(shù)機(jī)構(gòu)和產(chǎn)業(yè)界合作,通過(guò)提供學(xué)習(xí)、實(shí)戰(zhàn)和求職服務(wù),為AI學(xué)術(shù)青年和開(kāi)發(fā)者的交流互助和職業(yè)發(fā)展打造一站式平臺(tái),致力成為中國(guó)最大的科技創(chuàng)新人才聚集地。
如果,你也是位熱愛(ài)分享的AI愛(ài)好者。歡迎與譯站一起,學(xué)習(xí)新知,分享成長(zhǎng)。
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。