利用Python,四步掌握機器學習

J.F.發表於2016-02-23

為了理解和應用機器學習技術,你需要學習 Python 或者 R。這兩者都是與 C、Java、PHP 相類似的程式語言。但是,因為 Python 與 R 都比較年輕,而且更加“遠離”CPU,所以它們顯得簡單一些。相對於R 只用於處理資料,使用例如機器學習、統計演算法和漂亮的繪圖分析資料, Pthon 的優勢在於它適用於許多其他的問題。因為 Python 擁有更廣闊的分佈(使用 Jango 託管網站,自然語言處理 NLP,訪問 Twitter、Linkedin 等網站的 API),同時類似於更多的傳統語言,比如 C python 就比較流行。

在Python中學習機器學習的四個步驟

1、首先你要使用書籍、課程、視訊來學習 Python 的基礎知識

2、然後你必需掌握不同的模組,比如 Pandas、Numpy、Matplotlib、NLP (自然語言處理),來處理、清理、繪圖和理解資料。

3、接著你必需能夠從網頁抓取資料,無論是通過網站API,還是網頁抓取模組Beautiful Soap。通過網頁抓取可以收集資料,應用於機器學習演算法。

4、最後一步,你必需學習機器學習工具,比如 Scikit-Learn,或者在抓取的資料中執行機器學習演算法(ML-algorithm)。

1.Python入門指南:

有一個簡單而快速學習Python的方法,是在 codecademy.com  註冊,然後開始程式設計,並學習 Python 基礎知識。另一個學習Python的經典方法是通過 learnpythonthehardway ,一個為廣大 Python 程式設計者所推薦的網站。然後還有一個優秀的 PDF, byte of python 。python社團還為初學者準備了一個Python資源列表list of python resources。同時,還有來自 O’Reilley 的書籍 《Think Python》,也可以從這裡免費下載 。最後一個資源是 Python 用於計量經濟學、統計學和資料分析的介紹:《Introduction to Python for Econometrics, Statistics and Data Analysis 》,其中也包含了 Python 的基礎知識。

2.機器學習的重要模組

關於機器學習最重要的模組是:NumPyPandasMatplotlib 和 IPython 。有一本書涵蓋了其中一些模組:《Data Analysis with Open Source Tools》 。然後來自於1.的免費書籍《Introduction to Python for Econometrics, Statistics and Data Analysis》,同時也包括 Numpy,Pandas,Matplotlib 和 IPython這幾個模組。還有一個資源是 Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython,也包含了一些很重要的模組。以下是其他免費模組的相關連結: Numpy (Numerical PythonNumpy UserguideGuide to NumPy),  Pandas (Pandas, Powerful Python Data Analysis ToolkitPractical Business PythonIntros to Pandas Data Structure)  和  Matplotlib books

其它資源:

3.從網站通過API挖掘和抓取資料

一旦理解了Python的基礎知識和最重要的模組,你必需要學習如何從不同的源收集資料。這個技術也被稱作網頁抓取。傳統的源是網站文字,通過API進入twitter或linkedin一類網站得到的文字資料。網頁抓取方面的優秀書籍包括:《 Mining the Social Web》 (免費書籍),《Web Scraping with Python》 和《 Web Scraping with Python: Collecting Data from the Modern Web》。

最後這個文字資料必須要轉換為數值資料,通過自然語言處理(NLP)技術完成, Natural language processing with Python 和 Natural Language Annotation for Machine Learning 上面有相應的資料。其它的資料包括圖片和視訊,可以使用計算機影象技術分析: Programming Computer Vision with PythonProgramming Computer Vision with Python: Tools and algorithms for analyzing images  和  Practical Python and OpenCV ,這些是圖片分析方面的典型資源。

以下例子中包括可以用基本的Python命令列實現,有教育意義,而且有趣的例子,以及網頁抓取技術。

4. Python 中的機器學習

機器學習可以分為四組:分類,聚類,迴歸和降維。

drop_shadows_background2

“分類”也可以稱作監督學習,有助於分類圖片,用來識別圖片中的特徵或臉型,或者通過使用者外形來分類使用者,並給他賦不同的分數值。“聚類”發生在無監督學習的情況,允許使用者在資料中識別組/叢集。“迴歸”允許通過引數集估算一個值,可以應用於預測住宅、公寓或汽車的最優價格。

modules, packages and techniques 羅列了 Python、C、Scala、Java、Julia、MATLAB、Go、R 和 Ruby等語言中所有學習機器學習的重要模組、包和技巧。有關Python機器學習的書籍,我特別推薦《Machine learning in action》。儘管有點短,但它很可能是機器學習中的經典,因為它提到了“集體智慧程式設計時代”:Programming Collective Intelligence。這兩本書幫助你通過抓取資料建立機器學習。最近關於機器學習的出版物大多都是基於模組 scikit-learn 。由於所有的演算法在模組中都已實現,使得機器學習非常簡單。你唯一要做的事就是告訴 Python ,應該使用哪一個機器學習技巧 (ML-technique) 來分析資料。

免費的 scikit-learn教程 可以在 scikit-learn 官方網站上找到。其他的帖子可以通過以下連結獲取:

關於機器學習和 Python 中模組 scikit-learn 的書籍:

接下來數月將要發行的書籍包括:

機器學習相關的課程和部落格

你想要得到一個學位,加入線上課程,或者參加線下講習班、大本營或大學課程麼?這裡有一些關於邏輯分析、大資料、資料探勘和資料科學的線上教育站點連結:Collection of links 。另外推薦一些線上課程–來自Udacity的Coursera 課程:machine learning  和 Data Analyst Nanodegree。還有一些關於機器學習的部落格列表:List of frequently updated blogs

最後是來自 Jake Vanderplas 和 Olivier Grisel,關於探索機器學習的優秀 youtube 視訊課程

機器學習理論

想要學習機器學習的理論?那麼,《The Elements of statistical Learning》和《 Introduction to Statistical Learning》 是常常被引用的經典。然後還有另外兩本書籍:《Introduction to machine learning 》和《 A Course in Machine Learning》。這些連結包括免費的PDF,你不需要付費!如果不想閱讀這些書籍,請觀看視訊:15 hours theory of machine learning

相關文章