利用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:機器學習 |