標籤:

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

為了理解和應用機器學習技術,你需要學習 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.機器學習的重要模塊

關於機器學習最重要的模塊是:NumPy, Pandas, Matplotlib 和 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?Python, Numpy?Userguide, Guide?to?NumPy), Pandas (Pandas,?Powerful?Python?Data?Analysis?Toolkit,Practical?Business?Python,Intros?to?Pandas?Data?Structure) 和 Matplotlib?books。

其它資源:

  • 10?minutes?to?Pandas
  • Pandas?for?machine?learning
  • 100?NumPy?exercises

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?Python,Programming?Computer?Vision?with?Python:?Tools?and?algorithms?for?analyzing?images 和 Practical?Python?and?OpenCV ,這些是圖片分析方面的典型資源。

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

  • Mini-Tutorial:?Saving?Tweets?to?a?Database?with?Python (微型教程:使用Python保存推文到資料庫)
  • Web?Scraping?Indeed?for?Key?Data?Science?Job?Skills (網頁抓取關鍵數據科學工作技巧)
  • Case?Study:?Sentiment?Analysis?On?Movie?Reviews (案例學習:電影評論中的情感分析)
  • First?Web?Scraper (第一網頁抓取)
  • Sentiment?Analysis?of?Emails (郵件的情感分析)
  • Simple?Text?Classification (簡單文本分類)
  • Basic?Sentiment?Analysis?with?Python (Python基礎情感分析)
  • Twitter?sentiment?analysis?using?Python?and?NLTK (使用Python和NLTK 做Twitter情感分析)
  • Second?Try:?Sentiment?Analysis?in?Python (第二個嘗試:Python情感分析)
  • Natural?Language?Processing?in?a?Kaggle?Competition?for?Movie?Reviews (電影評論相關Kaggle Competition中的NLP自然語言處理)

4. Python 中的機器學習

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

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

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 官方網站上找到。其他的帖子可以通過以下鏈接獲取:

  • Introduction?to?Machine?Learning?with?Python?and?Scikit-Learn (機器學習中 Python 和 Scikit-Learn 的介紹)
  • Data?Science?in?Python (Python 中的數據科學)
  • Machine?Learning?for?Predicting?Bad?Loans (用機器學習來預測壞賬)
  • A?Generic?Architecture?for?Text?Classification?with?Machine?Learning (通過機器學習來分類文本的通用架構)
  • Using?Python?and?AI?to?predict?types?of?wine (利用 Python 和 AI 人工智慧來預測酒的品種)
  • Advice?for?applying?Machine?Learning (應用機器學習的建議)
  • Predicting?customer?churn?with?scikit-learn (使用 scikit-learn 預測用戶流失)
  • Mapping?Your?Music?Collection (映射你的音樂收藏)
  • Data?Science?in?Python (Python 中的數據科學)
  • Case?Study:?Sentiment?Analysis?on?Movie?Reviews (案例學習:電影評論中的情感分析)
  • Document?Clustering?with?Python (Python中的文檔聚類)
  • Five?most?popular?similarity?measures?implementation?in?python (5 個最流行的Python相似度測量的實現)
  • Case?Study:?Sentiment?Analysis?on?Movie?Reviews (案例學習:電影評論中的情感分析)
  • Will?it?Python? (將會是 Python 么?)
  • Text?Processing?in?Machine?Learning (機器學習中的文本處理)
  • Hacking?an?epic?NHL?goal?celebration?with?a?hue?light?show?and?real-time?machine?learning (使用色彩燈光秀和實時機器學習黑入史詩級 NHL(北美冰球聯賽)進球慶祝)
  • Vancouver?Room?Prices (溫哥華房間價格)
  • Exploring?and?Predicting?University?Faculty?Salaries (探索和預測大學教師工資)
  • Predicting?Airline?Delays (預測航班延誤)

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

  • Collection?of?books?on?reddit (收集 reddit 新聞網站上的書籍)
  • Building?Machine?Learning?Systems?with?Python (用 Python 建立機器學習系統)
  • Building?Machine?Learning?Systems?with?Python,?2nd?Edition (用 Python 建立機器學習系統,第二版)
  • Learning?scikit-learn:?Machine?Learning?in?Python (學習 scikit-learn:Python 中的機器學習)
  • Machine?Learning?Algorithmic?Perspective (透視機器學習演算法)
  • Data?Science?from?Scratch?–?First?Principles?with?Python (抓取的數據科學——關於 Python 的首要原則)
  • Machine?Learning?in?Python (Python 中的機器學習)

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

  • 《Introduction?to?Machine?Learning?with?Python》 (Python 機器學習的介紹)
  • 《Thoughtful?Machine?Learning?with?Python:?A?Test-Driven?Approach》 (思考 Python 機器學習:接近測試驅動)

機器學習相關的課程和博客

你想要得到一個學位,加入在線課程,或者參加線下講習班、大本營或大學課程么?這裡有一些關於邏輯分析、大數據、數據挖掘和數據科學的在線教育站點鏈接: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!

推薦閱讀:

譜聚類的consistency
[PRML學習筆記] CHA 4 Linear Models for Classification
《集異璧》作者侯世達瘋狂吐槽谷歌翻譯,AI讓譯者失業?還早著呢!
Tensorflow VS PMML
【用Sklearn進行機器學習】第一篇 - 介紹Scikit-Learn

TAG:機器學習 |