只需十四步:從零開始掌握Python_第1頁
只需十四步:從零開始掌握Python_第2頁
只需十四步:從零開始掌握Python_第3頁
只需十四步:從零開始掌握Python_第4頁
只需十四步:從零開始掌握Python_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

只需十四步:從零開始掌握Python機(jī)器學(xué)習(xí)(附資源)2017-03-14機(jī)器之心選自kdnuggets作者:MatthewMayo機(jī)器之心編譯參與:黃小天、吳攀、晏奇、蔣思源Python可以說是現(xiàn)在最流行的機(jī)器學(xué)習(xí)語言,而且你也能在網(wǎng)上找到大量的資源。你現(xiàn)在也在考慮從Python入門機(jī)器學(xué)習(xí)嗎?本教程或許能幫你成功上手,從0到1掌握Python機(jī)器學(xué)習(xí),至于后面再從1到100變成機(jī)器學(xué)習(xí)專家,就要看你自己的努力了。本教程原文分為兩個部分,機(jī)器之心在本文中將其進(jìn)行了整合,原文可參閱:http://suo.im/KUWgl和http://suo.im/96wD3。本教程的作者為KDnuggets副主編兼數(shù)據(jù)科學(xué)家MatthewMayo?!搁_始」往往是最難的,尤其是當(dāng)選擇太多的時候,一個人往往很難下定決定做出選擇。本教程的目的是幫助幾乎沒有Python機(jī)器學(xué)習(xí)背景的新手成長為知識淵博的實(shí)踐者,而且這個過程中僅需要使用免費(fèi)的材料和資源即可。這個大綱的主要目標(biāo)是帶你了解那些數(shù)量繁多的可用資源。毫無疑問,資源確實(shí)有很多,但哪些才是最好的呢?哪些是互補(bǔ)的呢?以怎樣的順序?qū)W習(xí)這些資源才是最合適的呢?首先,我假設(shè)你并不是以下方面的專家:機(jī)器學(xué)習(xí)Python任何Python的機(jī)器學(xué)習(xí)、科學(xué)計(jì)算或數(shù)據(jù)分析庫當(dāng)然,如果你對前兩個主題有一定程度的基本了解就更好了,但那并不是必要的,在早期階段多花一點(diǎn)點(diǎn)時間了解一下就行了?;A(chǔ)篇第一步:基本Python技能如果我們打算利用Python來執(zhí)行機(jī)器學(xué)習(xí),那么對Python有一些基本的了解就是至關(guān)重要的。幸運(yùn)的是,因?yàn)镻ython是一種得到了廣泛使用的通用編程語言,加上其在科學(xué)計(jì)算和機(jī)器學(xué)習(xí)領(lǐng)域的應(yīng)用,所以找到一個初學(xué)者教程并不十分困難。你在Python和編程上的經(jīng)驗(yàn)水平對于起步而言是至關(guān)重要的。首先,你需要安裝Python。因?yàn)槲覀兒竺鏁玫娇茖W(xué)計(jì)算和機(jī)器學(xué)習(xí)軟件包,所以我建議你安裝Anaconda。這是一個可用于Linux、OSX和Windows上的工業(yè)級的Python實(shí)現(xiàn),完整包含了機(jī)器學(xué)習(xí)所需的軟件包,包括numpy、scikit-learn和matplotlib。其也包含了iPythonNotebook,這是一個用在我們許多教程中的交互式環(huán)境。我推薦安裝Python2.7。?如果你不懂編程,我建議你從下面的免費(fèi)在線書籍開始學(xué)習(xí),然后再進(jìn)入后續(xù)的材料:LearnPythontheHardWay,作者ZedA.Shaw:/book/如果你有編程經(jīng)驗(yàn),但不懂Python或還很初級,我建議你學(xué)習(xí)下面兩個課程:谷歌開發(fā)者Python課程(強(qiáng)烈推薦視覺學(xué)習(xí)者學(xué)習(xí)):http://suo.im/toMzqPython科學(xué)計(jì)算入門(來自UCSBEngineering的M.ScottShell)(一個不錯的入門,大約有60頁):http://suo.im/2cXycM如果你要30分鐘上手Python的快速課程,看下面:在Y分鐘內(nèi)學(xué)會X(X=Python):http://suo.im/zm6qX當(dāng)然,如果你已經(jīng)是一位經(jīng)驗(yàn)豐富的Python程序員了,這一步就可以跳過了。即便如此,我也建議你常使用Python文檔:/doc/第二步:機(jī)器學(xué)習(xí)基礎(chǔ)技巧KDnuggets的ZacharyLipton已經(jīng)指出:現(xiàn)在,人們評價一個「數(shù)據(jù)科學(xué)家」已經(jīng)有很多不同標(biāo)準(zhǔn)了。這實(shí)際上是機(jī)器學(xué)習(xí)領(lǐng)域領(lǐng)域的一個寫照,因?yàn)閿?shù)據(jù)科學(xué)家大部分時間干的事情都牽涉到不同程度地使用機(jī)器學(xué)習(xí)算法。為了有效地創(chuàng)造和獲得來自支持向量機(jī)的洞見,非常熟悉核方法(kernelmethods)是否必要呢?當(dāng)然不是。就像幾乎生活中的所有事情一樣,掌握理論的深度是與實(shí)踐應(yīng)用相關(guān)的。對機(jī)器學(xué)習(xí)算法的深度了解超過了本文探討的范圍,它通常需要你將非常大量的時間投入到更加學(xué)術(shù)的課程中去,或者至少是你自己要進(jìn)行高強(qiáng)度的自學(xué)訓(xùn)練。好消息是,對實(shí)踐來說,你并不需要獲得機(jī)器學(xué)習(xí)博士般的理論理解——就想要成為一個高效的程序員并不必要進(jìn)行計(jì)算機(jī)科學(xué)理論的學(xué)習(xí)。人們對吳恩達(dá)在Coursera上的機(jī)器學(xué)習(xí)課程內(nèi)容往往好評如潮;然而,我的建議是瀏覽前一個學(xué)生在線記錄的課堂筆記。跳過特定于Octave(一個類似于Matlab的與你Python學(xué)習(xí)無關(guān)的語言)的筆記。一定要明白這些都不是官方筆記,但是可以從它們中把握到吳恩達(dá)課程材料中相關(guān)的內(nèi)容。當(dāng)然如果你有時間和興趣,你現(xiàn)在就可以去Coursera上學(xué)習(xí)吳恩達(dá)的機(jī)器學(xué)習(xí)課程:http://suo.im/2o1uD吳恩達(dá)課程的非官方筆記:/mlclass/除了上面提到的吳恩達(dá)課程,如果你還需要需要其它的,網(wǎng)上還有很多各類課程供你選擇。比如我就很喜歡TomMitchell,這里是他最近演講的視頻(一起的還有Maria-FlorinaBalcan),非常平易近人。TomMitchell的機(jī)器學(xué)習(xí)課程:http://suo.im/497arwTheano是一個Python庫,它可以使你有效地定義、優(yōu)化和評估包含多維數(shù)組的數(shù)學(xué)表達(dá)式。下面關(guān)于運(yùn)用Theano學(xué)習(xí)深度學(xué)習(xí)的入門教程有點(diǎn)長,但是足夠好,描述生動,評價很高:Theano深度學(xué)習(xí)教程,作者ColinRaffel:http://suo.im/1mPGHe2.Caffe鏈接:/另一個我們將測試驅(qū)動的庫是Caffe。再一次,讓我們從作者開始:Caffe是一個深度學(xué)習(xí)框架,由表達(dá)、速度和模塊性建構(gòu),Bwekeley視覺與學(xué)習(xí)中心和社區(qū)工作者共同開發(fā)了Caffe。這個教程是本篇文章中最好的一個。我們已經(jīng)學(xué)習(xí)了上面幾個有趣的樣例,但沒有一個可與下面這個樣例相競爭,其可通過Caffe實(shí)現(xiàn)谷歌的DeepDream。這個相當(dāng)精彩!掌握教程之后,可以嘗試使你的處理器自如運(yùn)行,就當(dāng)作是娛樂。通過Caffe實(shí)現(xiàn)谷歌DeepDream:http://suo.im/2cUSXS我并沒有保證說這會很快或容易,但是如果你投入了時間并完成了上面的7個步驟,你將在理解大量機(jī)器學(xué)習(xí)算法以及通過流行的庫(包括一些在目前深度學(xué)習(xí)研究領(lǐng)域最前沿的庫)在Python中實(shí)現(xiàn)算法方面變得很擅長。進(jìn)階篇?機(jī)器學(xué)習(xí)算法本篇是使用Python掌握機(jī)器學(xué)習(xí)的7個步驟系列文章的下篇,如果你已經(jīng)學(xué)習(xí)了該系列的上篇,那么應(yīng)該達(dá)到了令人滿意的學(xué)習(xí)速度和熟練技能;如果沒有的話,你也許應(yīng)該回顧一下上篇,具體花費(fèi)多少時間,取決于你當(dāng)前的理解水平。我保證這樣做是值得的??焖倩仡欀?,本篇文章會更明確地集中于幾個機(jī)器學(xué)習(xí)相關(guān)的任務(wù)集上。由于安全地跳過了一些基礎(chǔ)模塊——Python基礎(chǔ)、機(jī)器學(xué)習(xí)基礎(chǔ)等等——我們可以直接進(jìn)入到不同的機(jī)器學(xué)習(xí)算法之中。這次我們可以根據(jù)功能更好地分類教程。第1步:機(jī)器學(xué)習(xí)基礎(chǔ)回顧&一個新視角上篇中包括以下幾步:1.Python基礎(chǔ)技能2.機(jī)器學(xué)習(xí)基礎(chǔ)技能3.Python包概述4.運(yùn)用Python開始機(jī)器學(xué)習(xí):介紹&模型評估5.關(guān)于Python的機(jī)器學(xué)習(xí)主題:k-均值聚類、決策樹、線性回歸&邏輯回歸6.關(guān)于Python的高階機(jī)器學(xué)習(xí)主題:支持向量機(jī)、隨機(jī)森林、PCA降維7.Python中的深度學(xué)習(xí)如上所述,如果你正準(zhǔn)備從頭開始,我建議你按順序讀完上篇。我也會列出所有適合新手的入門材料,安裝說明包含在上篇文章中。然而,如果你已經(jīng)讀過,我會從下面最基礎(chǔ)的開始:機(jī)器學(xué)習(xí)關(guān)鍵術(shù)語解釋,作者M(jìn)atthewMayo。地址:http://suo.im/2URQGm維基百科條目:統(tǒng)計(jì)學(xué)分類。地址:http://suo.im/mquen機(jī)器學(xué)習(xí):一個完整而詳細(xì)的概述,作者AlexCastrounis。地址:http://suo.im/1yjSSq如果你正在尋找學(xué)習(xí)機(jī)器學(xué)習(xí)基礎(chǔ)的替代或補(bǔ)充性方法,恰好我可以把正在看的ShaiBen-David的視頻講座和ShaiShalev-Shwartz的教科書推薦給你:ShaiBen-David的機(jī)器學(xué)習(xí)介紹視頻講座,滑鐵盧大學(xué)。地址:http://suo.im/1TFlK6理解機(jī)器學(xué)習(xí):從理論到算法,作者ShaiBen-David&ShaiShalev-Shwartz。地址:http://suo.im/1NL0ix記住,這些介紹性資料并不需要全部看完才能開始我寫的系列文章。視頻講座、教科書及其他資源可在以下情況查閱:當(dāng)使用機(jī)器學(xué)習(xí)算法實(shí)現(xiàn)模型時或者當(dāng)合適的概念被實(shí)際應(yīng)用在后續(xù)步驟之中時。具體情況自己判斷。第2步:更多的分類我們從新材料開始,首先鞏固一下我們的分類技術(shù)并引入一些額外的算法。雖然本篇文章的第一部分涵蓋決策樹、支持向量機(jī)、邏輯回歸以及合成分類隨機(jī)森林,我們還是會添加k-最近鄰、樸素貝葉斯分類器和多層感知器。?Scikit-learn分類器k-最近鄰(kNN)是一個簡單分類器和懶惰學(xué)習(xí)者的示例,其中所有計(jì)算都發(fā)生在分類時間上(而不是提前在訓(xùn)練步驟期間發(fā)生)。kNN是非參數(shù)的,通過比較數(shù)據(jù)實(shí)例和k最近實(shí)例來決定如何分類。使用Python進(jìn)行k-最近鄰分類。地址:http://suo.im/2zqW0t樸素貝葉斯是基于貝葉斯定理的分類器。它假定特征之間存在獨(dú)立性,并且一個類中任何特定特征的存在與任何其它特征在同一類中的存在無關(guān)。使用Scikit-learn進(jìn)行文檔分類,作者ZacStewart。地址:http://suo.im/2uwBm3多層感知器(MLP)是一個簡單的前饋神經(jīng)網(wǎng)絡(luò),由多層節(jié)點(diǎn)組成,其中每個層與隨后的層完全連接。多層感知器在Scikit-learn版本0.18中作了介紹。首先從Scikit-learn文檔中閱讀MLP分類器的概述,然后使用教程練習(xí)實(shí)現(xiàn)。神經(jīng)網(wǎng)絡(luò)模型(監(jiān)督式),Scikit-learn文檔。地址:http://suo.im/3oR76lPython和Scikit-learn的神經(jīng)網(wǎng)絡(luò)初學(xué)者指南0.18!作者JosePortilla。地址:http://suo.im/2tX6rG第3步:更多聚類我們現(xiàn)在接著講聚類,一種無監(jiān)督學(xué)習(xí)形式。上篇中,我們討論了k-means算法;我們在此介紹DBSCAN和期望最大化(EM)。?Scikit-learn聚類算法首先,閱讀這些介紹性文章;第一個是k均值和EM聚類技術(shù)的快速比較,是對新聚類形式的一個很好的繼續(xù),第二個是對Scikit-learn中可用的聚類技術(shù)的概述:聚類技術(shù)比較:簡明技術(shù)概述,作者M(jìn)atthewMayo。地址:http://suo.im/4ctIvI在玩具數(shù)據(jù)集中比較不同的聚類算法,Scikit-learn文檔。地址:http://suo.im/4uvbbM期望最大化(EM)是概率聚類算法,并因此涉及確定實(shí)例屬于特定聚類的概率。EM接近統(tǒng)計(jì)模型中參數(shù)的最大似然性或最大后驗(yàn)估計(jì)(Han、Kamber和Pei)。EM過程從一組參數(shù)開始迭代直到相對于k聚類的聚類最大化。首先閱讀關(guān)于EM算法的教程。接下來,看看相關(guān)的Scikit-learn文檔。最后,按照教程使用Python自己實(shí)現(xiàn)EM聚類。期望最大化(EM)算法教程,作者ElenaSharova。地址:http://suo.im/33ukYd高斯混合模型,Scikit-learn文檔。地址:http://suo.im/20C2tZ。使用Python構(gòu)建高斯混合模型的快速介紹,作者TiagoRamalho。地址:http://suo.im/4oxFsj如果高斯混合模型初看起來令人困惑,那么來自Scikit-learn文檔的這一相關(guān)部分應(yīng)該可以減輕任何多余的擔(dān)心:高斯混合對象實(shí)現(xiàn)期望最大化(EM)算法以擬合高斯模型混合?;诿芏惹揖哂性肼暤目臻g聚類應(yīng)用(DBSCAN)通過將密集數(shù)據(jù)點(diǎn)分組在一起,并將低密度數(shù)據(jù)點(diǎn)指定為異常值來進(jìn)行操作。首先從Scikit-learn的文檔中閱讀并遵循DBSCAN的示例實(shí)現(xiàn),然后按照簡明的教程學(xué)習(xí):DBSCAN聚類算法演示,Scikit-learn文檔。地址:http://suo.im/1l9tvX基于密度的聚類算法(DBSCAN)和實(shí)現(xiàn)。地址:http://suo.im/1LEoXC第4步:更多的集成方法上篇只涉及一個單一的集成方法:隨機(jī)森林(RF)。RF作為一個頂級的分類器,在過去幾年中取得了巨大的成功,但它肯定不是唯一的集成分類器。我們將看看包裝、提升和投票。?給我一個提升首先,閱讀這些集成學(xué)習(xí)器的概述,第一個是通用性的;第二個是它們與Scikit-learn有關(guān):集成學(xué)習(xí)器介紹,作者M(jìn)atthewMayo。地址:http://suo.im/cLESwScikit-learn中的集成方法,Scikit-learn文檔。地址:http://suo.im/yFuY9然后,在繼續(xù)使用新的集成方法之前,請通過一個新的教程快速學(xué)習(xí)隨機(jī)森林:Python中的隨機(jī)森林,來自Yhat。地址:http://suo.im/2eujI包裝、提升和投票都是不同形式的集成分類器,全部涉及建構(gòu)多個模型;然而,這些模型由什么算法構(gòu)建,模型使用的數(shù)據(jù),以及結(jié)果如何最終組合起來,這些都會隨著方案而變化。包裝:從同一分類算法構(gòu)建多個模型,同時使用來自訓(xùn)練集的不同(獨(dú)立)數(shù)據(jù)樣本——Scikit-learn實(shí)現(xiàn)包裝分類器提升:從同一分類算法構(gòu)建多個模型,一個接一個地鏈接模型,以提高每個后續(xù)模型的學(xué)習(xí)——Scikit-learn實(shí)現(xiàn)AdaBoost投票:構(gòu)建來自不同分類算法的多個模型,并且使用標(biāo)準(zhǔn)來確定模型如何最好地組合——Scikit-learn實(shí)現(xiàn)投票分類器那么,為什么要組合模型?為了從一個特定角度處理這個問題,這里是偏差-方差權(quán)衡的概述,具體涉及到提升,以下是Scikit-learn文檔:單一評估器vs包裝:偏差-方差分解,Scikit-learn文檔。地址:http://suo.im/3izlRB現(xiàn)在你已經(jīng)閱讀了關(guān)于集成學(xué)習(xí)器的一些介紹性材料,并且對幾個特定的集成分類器有了基本了解,下面介紹如何從MachineLearningMastery中使用Scikit-learn在Python中實(shí)現(xiàn)集成分類器:使用Scikit-learn在Python中實(shí)現(xiàn)集成機(jī)器學(xué)習(xí)算法,作者JasonBrownlee。地址:http://suo.im/9WEAr第5步:梯度提升下一步我們繼續(xù)學(xué)習(xí)集成分類器,探討一個當(dāng)代最流行的機(jī)器學(xué)習(xí)算法。梯度提升最近在機(jī)器學(xué)習(xí)中產(chǎn)生了顯著的影響,成為了Kaggle競賽中最受歡迎和成功的算法之一。?給我一個梯度提升首先,閱讀梯度提升的概述:維基百科條目:梯度提升。地址:http://suo.im/TslWi接下來,了解為什么梯度提升是Kaggle競賽中「最制勝」的方法:為什么梯度提升完美解決了諸多Kaggle難題?Quora,地址:http://suo.im/3rS6ZOKaggle大師解釋什么是梯度提升,作者BenGorman。地址:http://suo.im/3nXlWR雖然Scikit-learn有自己的梯度提升實(shí)現(xiàn),我們將稍作改變,使用XGBoost庫,我們提到過這是一個更快的實(shí)現(xiàn)。以下鏈接提供了XGBoost庫的一些額外信息,以及梯度提升(出于必要):維基百科條目:XGBoost。地址:http://suo.im/2UlJ3VGhub上的XGBoost庫。地址:http://suo.im/2JeQI8XGBoost文檔。地址:http://suo.im/QRRrm現(xiàn)在,按照這個教程把所有匯聚起來:Python中XGBoost梯度提升樹的實(shí)現(xiàn)指南,作者JesseSteinweg-Woods。地址:http://suo.im/4FTqD5你還可以按照這些更簡潔的示例進(jìn)行強(qiáng)化:XGBoost在Kaggle上的示例(Python)。地址:http://suo.im/4F9A1JIris數(shù)據(jù)集和XGBoost簡單教程,作者IevaZarina。地址:http://suo.im/2Lyb1a第6步:更多的降維降維是通過使用過程來獲得一組主變量,將用于模型構(gòu)建的變量從其初始數(shù)減少到一個減少數(shù)。有兩種主要形式的降維:1.特征選擇——選擇相關(guān)特征的子集。地址:http://suo.im/4wlkrj2.特征提取——構(gòu)建一個信息性和非冗余的衍生值特征集。地址:http://suo.im/3Gf0Yw下面是一對常用的特征提取方法。?主成分分析(PCA)是一種統(tǒng)計(jì)步驟,它使用正交變換將可能相關(guān)變量的一組觀測值轉(zhuǎn)換為一組稱為主成分的線性不相關(guān)變量值。主成分的數(shù)量小于或等于原始變量的數(shù)量。這種變換以這樣的方式定義,即第一主成分具有最大可能的方差(即考慮數(shù)據(jù)中盡可能多的變率)以上定義來自PCA維基百科條目,如果感興趣可進(jìn)一步閱讀。但是,下面的概述/教程非常徹底:主成分分析:3個簡單的步驟,作者SebastianRaschka。地址:http://suo.im/1ahFdW線性判別分析(LDA)是Fisher線性判別的泛化,是統(tǒng)計(jì)學(xué)、模式識別和機(jī)器學(xué)習(xí)中使用的一種方法,用于發(fā)現(xiàn)線性組合特征或分離兩個或多個類別的對象或事件的特征。所得到的組合可以用作線性分類器,或者更常見地,用作后續(xù)分類之前的降維。LDA與方差分析(ANOVA)和回歸分析密切相關(guān),它同樣嘗試將一個因變量表示為其他特征或測量的線性組合。然而,ANOVA使用分類獨(dú)立變量和連續(xù)因變量,而判別分析具有連續(xù)的獨(dú)立變量和分類依賴變量(即類標(biāo)簽)。上面的定義也來自維基百科。下面是完整的閱讀:線性判別分析——直至比特,作者SebastianRaschka。地址:http://suo.im/gyDOb你對PCA和LDA對于降維的實(shí)際差異是否感到困惑?SebastianRaschka做了如下澄清:線性判別分析(LDA)和主成分分析(PCA)都是通常用于降維的線性轉(zhuǎn)換技術(shù)。PCA可以被描述為「無監(jiān)督」算法,因?yàn)樗负雎浴诡悩?biāo)簽,并且其目標(biāo)是找到使數(shù)據(jù)集中的方差最大化的方向(所謂的主成分)。與PCA相反,LDA是「監(jiān)督的」并且計(jì)算表示使多個類之間的間隔最大化的軸的方向(「線性判別式」)。有關(guān)這方面的簡

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論