新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > 7個步驟掌握使用python進行機器學習

        7個步驟掌握使用python進行機器學習

        作者: 時間:2018-07-25 來源:網絡 收藏

        有許多python機器學習資源在線免費提供,從哪開始?如何進行?從零到python機器學習大神只要7個步驟。

        本文引用地址:http://www.104case.com/article/201807/383810.htm

        入門,在英語中最打擊人的兩個單詞,第一部往往是最難的,當在這方面有太多選擇,通常讓人崩。

        從哪開始?

        這篇文章旨在用7個不走帶領python機器學習知識最少的新人成為知識淵博從業者,使用免費材料和資源.這個綱要主要目標是幫你選擇可用的眾多選項.可以確定有很多,但是哪個是最好的?它們之間是相輔相成?使用選擇資源的最好順序是什么?

        進一步,我做出假設你不是下列的專家:

        機器學習

        Python

        任何Python的機器學習,科學計算,或者數據分析庫

        他有可能幫助你對第一或第二或二者有一個基本的認識,但不是必需的.在前面的步驟花費一些額外的時間有可能彌補。

        第一步 基本Python技能

        如果我們打算利用Python進行機器學習,對Python有一些基本認識是至關重要的.幸運的是,由于其作為一種廣泛普及的通用編程語言,并應用于科學計算和機器學習,發現初學者的教程并不困難.Python經驗和編程水平一般是選擇出發點的重點。

        首先,你需要安裝Python.因為在有些時候我們需要使用科學計算和機器學習庫,我建議你安裝Anaconda.這是一個具有工業強度用于Linux,OSX和Windows的Python實現,為機器學習安裝需要的包,包括Numpy,scikit-learn和Matplotlib(這是作者的觀點,我認為pandas,scipy這種包也是必不可少的).它同樣包含Ipython notebook,一個交互式環境.我建議使用Python2.7(譯者言:當全世界都是3.X的時候再說改Python3吧),它仍是占主導地位的安裝版本沒有其他原因。

        如果你沒有編程知識,我的建議是用下面免費的在線書開始,然后學習隨后的材料。

        Python The Hard Way by Zed A. Shaw

        如果你有變成經驗,但是不是Python,或者你剛學Python,我建議學習下面其中一個或全部:

        Google Developers Python Course (視覺學習者強烈推薦,五星好評)

        An Introduction to Python for Scientific Computing (from UCSB Engineering) by M. Scott Shell (神奇的Python科學介紹,60頁)

        對于那些尋求Python30分鐘速成班的可以去(某寶):

        Learn X in Y Minutes (X = Python)

        當然,如果你有Python編程經驗,你可以跳過這步.即使這樣,我建議你繼續閱讀Python文檔.

        第二步 基礎機器學習技能

        KDnuggets’的創始人 Zachary Lipton指出人們對數據科學家的認識非常不同.實際上是機器學習領域的反映,因為數據科學家的工作包含使用機器學習算法多樣化程度.是否有必要深刻了解算法,從而更有效的創建SVM機器模型并從中獲取信息?當然不是,就像生活中幾乎所有東西,理論理解的深度的要求相對與實際應用(這是作者的一家之言哈~,譯者是不支持的,不了解你怎么調參,優化模型呢?哈~).獲得機器學習算法的深刻理解已經超出了本書范圍,一般需要大量的時間投資在學術中,或者通過高強度的自學。

        好消息是你不需要擁有PhD水平的機器學習理論方面的理解,才能用于實踐.并不是所有碼農都為了有效的編碼需要理論的計算機科學教育.這兩點是相同的(所以我翻譯的是碼農.對,我就是在吐槽~自己. :( )。

        Andrew Ng的Course課程經常獲得五星好評.但是我的建議是,瀏覽在線課程以前學生編制的課程筆記.跳過關于Octave的筆記(類似Matlab語言,和我們追求的Python無關.譯者注,從用詞上我就能感到作者對Matlab弄弄的厭惡).但是要注意這些不是官方的筆記,但是似乎能捕獲Andrew Ng課程材料的相關內容.當然,如果你有時間和興趣,可以參加Andrew Ng Coursera的機器學習課程。

        Unofficial Andrew Ng course notes

        如果你喜歡各種視頻講座,可以看Tom Mitchell的演講視頻.下面是是他最近的演講視頻,我(不是我)感覺他非常平易近人,我是他的腦殘粉(沒搞錯的話,網上流行的臺灣國立大學的機器學習視頻是模仿Tom Mitchell的,Logo都差不多就左下角右上角加了個東西.是的,我又在吐槽了)。

        Tom Mitchell Machine Learning Lectures

        在這里,你不需要所有筆記和視頻.一個有效的策略包含實戰演練,適當時候參考上面筆記和視頻.例如,當你遇到回歸模型是現實,閱讀Ng筆記的回歸部分或看Mtichell的回歸視頻.

        第三步 科學Python庫概率

        好吧.有了一點Python編程經驗和機器學習理解后.除了Python還有很多開源的庫用于處理機器學習實踐.通常,這些是執行基本機器學習任務主要使用的Python庫。

        numpy - N維數組是非常有用的

        pandas - Python數據分析庫,包括結構例如dataframes

        matplotlib - 2D 繪圖庫生成出版質量圖片

        scikit-learn - 用于數據分析和數據挖掘任務的機器學習算法.

        學習這些的優秀資料如下:

        Scipy Lecture Notes by Gaël Varoquaux, Emmanuelle Gouillart, and Olav Vahtras

        這個pandas的教程非常棒:

        10 Minutes to Pandas

        在下面的教程中你可能看到一些其他的庫,比如說 Seaborn,一個基于Matplotlib的數據可視化庫.上述包是廣泛Python機器學習任務的核心,然而,讓你在下面引用時,理解這些適應更多相關的包而不會懵.

        第四步 開始Python機器學習

        Python. √

        Machine learning fundamentals. √

        Numpy. √

        Pandas. √

        Matplotlib. √

        吉時已到,我們開始使用python標準機器學習庫–scikit-learn實現機器學習算法吧.

        下面大多數教程和聯系都在IPython(Jupyter)Notebook中實現.它是Python執行的一個交互式環境.這些IPython NOtebook可以選擇在線預覽或下載,并且在你電腦本地交互.

        iPython Notebook Overview from Stanford

        另外請注意,下面教程來源于許多在線資源.所有Notebooks 都歸功于作業,你發現沒有正確工作,請讓我知道,這種情況會盡快糾正.我非常想向Jake VanderPlas, Randal Olson, Donne Martin, Kevin Markham, and Colin Raffel等人致敬.因為他們神奇免費可用的資源(50字好評已給,請返現).

        第一個教程從scikit-learn開始,在開始下面步驟之前,我建議先做這些.

        scikit-learn庫的一般介紹,Python中最常用的機器學習庫,涵蓋了KNN算法:

        An Introduction to scikit-learn by Jake VanderPlas

        更深入的介紹,包括知名數據集開始到項目完成:

        Example Machine Learning Notebook by Randal Olson

        重點放在scikit-learn中不同模型的評估策略,涵蓋了訓練集/測試集拆分(后面這句話的點沒get到呢):

        Model Evaluation by Kevin Markham

        第五步 python機器學習主題

        有了 scikit-learn基礎后,我們可以對常見,實用的算法做進一步深入了解.我們從K-means聚類開始,一個廣為人知的機器學習算法.解決無監督學習問題一個簡單有效的方法:

        k-means Clustering by Jake VanderPlas

        接下來,我們看看分類問題.了解歷史上最流行分類算法之一:

        Decision Trees via The Grimm Scientist

        讓我們看看連續數值預測:

        Linear Regression by Jake VanderPlas

        我們可以從過Logistic回歸解決分類問題:

        Logistic Regression by Kevin Markham

        第六步 深入python機器學習主題

        我們已經開始scikit-learn,現在讓我們將注意轉向高級主題.首先SVM(支持向量機).一個將復雜數據映射到高維空間的not-necessarily-linear分類

        Support Vector Machines by Jake VanderPlas

        接下來,隨機森林,一個組合分類,通過考察Kaggle Titanic競賽逐步引導:

        Kaggle Titanic Competition (with Random Forests) by Donne Martin

        降維是減少正在考慮問題中變量數目的方法.PCA(Principal Component Analysis,主成分分析)是一種非監督的降維方法:

        Dimensionality Reduction by Jake VanderPlas

        在進入到最后一步之前,我們可以花時間考慮下,我們已經在相對較短的時間內走了很長一段路.

        使用Python和它的機器學習庫,我們已經介紹一些最常見和總所周知的機器學習算法(K-means,支持向量機,KNN),考察了強大的組合技術(隨機森林),研究了支持任務的額外機器學習算法(降維,模型驗證技術).隨著這些基礎的機器學習技巧的學習,我們已經擁有了一些使用的技能.

        第七步 python深度學習

        深度學習無處不在.深度學習構建與神經網絡研究可以追溯到十幾年前,但是追溯到過去幾年的最新進展顯著增加.如果你不熟悉深度學習,KDnuggets有很多文教詳細介紹了眾多最新創新,成就和令人贊譽的技術.

        最后一步并不對深度學習軟件分類,介紹2個引領當代Python深度學習庫的幾個簡單的網絡實現.對于有興趣挖掘更深的深度學習者,我建議你先從一下免費書開始:

        * Neural Networks and Deep Learning by Michael Nielsen

        Theano

        Theano是第一個Python深度學習庫,按作者的話來說:

        Theano是一個python的庫,可以讓你高效地定義,優化,評估包含多維數據的數學表達式,下面Theano的機器學習入門教程是非常長的,但相當的棒,十分生動:

        * Theano Deep Learning Tutorial by Colin Raffel

        Caffe

        另一個測試執行的庫,caffe.同樣的:

        Caffe是一個帶有表達式,速度和模塊化的深度學習庫.由 Berkeley Vision and Learning Center (BVLC) 和社區貢獻者開發.

        我們已經介紹了很多有趣的例子,這里再給出一個, 用Caffe實現Google’s #DeepDream.了解了這么多,自己動手放飛夢想吧(另外,關于深度學習的開源軟件非常多,更多的可以看的翻譯的GitHub深度學習庫,你了解多少?)。

        Dreaming Deep with Caffe via Google’s GitHub

        我沒不能保證這個過程會很快或很容易,但如果你把時間按照上面的7個步驟做,沒有任何理由,你不能達到合理水平,理解一些機器學習算法并利用Python流行的庫實現它,包括一些目前的深度學習研究前沿。



        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 杂多县| 峨眉山市| 卢龙县| 日照市| 梅州市| 揭阳市| 鄢陵县| 万全县| 三明市| 米脂县| 滦平县| 建湖县| 丘北县| 丰台区| 密山市| 恩施市| 韶关市| 襄樊市| 梁河县| 榆林市| 明水县| 绥棱县| 称多县| 那曲县| 渭源县| 安岳县| 漳浦县| 辽宁省| 抚松县| 区。| 太和县| 墨竹工卡县| 新晃| 西华县| 时尚| 桦川县| 宜宾市| 阿图什市| 湖州市| 晋江市| 柳州市|