天天看點

資料分析機器學習

機器學習

Python 可以說是現在最流行的機器學習語言,而且你也能在網上找到大量的資源。你現在也在考慮從 Python 入門機器學習嗎?本教程或許能幫你成功上手,從 0 到 1 掌握 Python 機器學習,至于後面再從 1 到 100 變成機器學習專家,就要看你自己的努力了。本教程原文分為兩個部分,機器之心在本文中将其進行了整合,原文可參閱:7 Steps to Mastering Machine Learning With Python 和 7 More Steps to Mastering Machine Learning With Python。

「開始」往往是最難的,尤其是當選擇太多的時候,一個人往往很難下定決定做出選擇。本教程的目的是幫助幾乎沒有 Python 機器學習背景的新手成長為知識淵博的實踐者,而且這個過程中僅需要使用免費的材料和資源即可。這個大綱的主要目标是帶你了解那些數量繁多的可用資源。毫無疑問,資源确實有很多,但哪些才是最好的呢?哪些是互補的呢?以怎樣的順序學習這些資源才是最合适的呢?

首先,我假設你并不是以下方面的專家:

機器學習

Python

任何 Python 的機器學習、科學計算或資料分析庫

當然,如果你對前兩個主題有一定程度的基本了解就更好了,但那并不是必要的,在早期階段多花一點點時間了解一下就行了。

基礎篇

第一步:基本 Python 技能

如果我們打算利用 Python 來執行機器學習,那麼對 Python 有一些基本的了解就是至關重要的。幸運的是,因為 Python 是一種得到了廣泛使用的通用程式設計語言,加上其在科學計算和機器學習領域的應用,是以找到一個初學者教程并不十分困難。你在 Python 和程式設計上的經驗水準對于起步而言是至關重要的。

首先,你需要安裝 Python。因為我們後面會用到科學計算和機器學習軟體包,是以我建議你安裝 Anaconda。這是一個可用于 Linux、OS X 和 Windows 上的工業級的 Python 實作,完整包含了機器學習所需的軟體包,包括 numpy、scikit-learn 和 matplotlib。其也包含了 iPython Notebook,這是一個用在我們許多教程中的互動式環境。我推薦安裝 Python 2.7。

如果你不懂程式設計,我建議你從下面的免費線上書籍開始學習,然後再進入後續的材料:

Learn Python the Hard Way,作者 Zed A. Shaw:Learn Python the Hard Way

如果你有程式設計經驗,但不懂 Python 或還很初級,我建議你學習下面兩個課程:

谷歌開發者 Python 課程(強烈推薦視覺學習者學習):http://suo.im/toMzq

Python 科學計算入門(來自 UCSB Engineering 的 M. Scott Shell)(一個不錯的入門,大約有 60 頁):http://suo.im/2cXycM

如果你要 30 分鐘上手 Python 的快速課程,看下面:

在 Y 分鐘内學會 X(X=Python):Learn python in Y Minutes

當然,如果你已經是一位經驗豐富的 Python 程式員了,這一步就可以跳過了。即便如此,我也建議你常使用 Python 文檔:Welcome to Python.org

第二步:機器學習基礎技巧

KDnuggets 的 Zachary Lipton 已經指出:現在,人們評價一個「資料科學家」已經有很多不同标準了。這實際上是機器學習領域領域的一個寫照,因為資料科學家大部分時間幹的事情都牽涉到不同程度地使用機器學習算法。為了有效地創造和獲得來自支援向量機的洞見,非常熟悉核方法(kernel methods)是否必要呢?當然不是。就像幾乎生活中的所有事情一樣,掌握理論的深度是與實踐應用相關的。對機器學習算法的深度了解超過了本文探讨的範圍,它通常需要你将非常大量的時間投入到更加學術的課程中去,或者至少是你自己要進行高強度的自學訓練。

好消息是,對實踐來說,你并不需要獲得機器學習博士般的理論了解——就想要成為一個高效的程式員并不必要進行計算機科學理論的學習。

人們對吳恩達在 Coursera 上的機器學習課程内容往往好評如潮;然而,我的建議是浏覽前一個學生線上記錄的課堂筆記。跳過特定于 Octave(一個類似于 Matlab 的與你 Python 學習無關的語言)的筆記。一定要明白這些都不是官方筆記,但是可以從它們中把握到吳恩達課程材料中相關的内容。當然如果你有時間和興趣,你現在就可以去 Coursera 上學習吳恩達的機器學習課程:Machine Learning - Stanford University | Coursera

吳恩達課程的非官方筆記:Machine Learning - complete course notes

除了上面提到的吳恩達課程,如果你還需要需要其它的,網上還有很多各類課程供你選擇。比如我就很喜歡 Tom Mitchell,這裡是他最近演講的視訊(一起的還有 Maria-Florina Balcan),非常平易近人。

Tom Mitchell 的機器學習課程:Machine Learning

目前你不需要所有的筆記和視訊。一個有效地方法是當你覺得合适時,直接去看下面特定的練習題,參考上述備注和視訊恰當的部分,

第三步:科學計算 Python 軟體包概述

好了,我們已經掌握了 Python 程式設計并對機器學習有了一定的了解。而在 Python 之外,還有一些常用于執行實際機器學習的開源軟體庫。廣義上講,有很多所謂的科學 Python 庫(scientific Python libraries)可用于執行基本的機器學習任務(這方面的判斷肯定有些主觀性):

numpy——主要對其 N 維數組對象有用 NumPy - NumPy

pandas——Python 資料分析庫,包括資料架構(dataframes)等結構 Python Data Analysis Library

matplotlib——一個 2D 繪圖庫,可産生出版物品質的圖表 Python plotting - Matplotlib 2.0.0 documentation

scikit-learn——用于資料分析和資料挖掘人物的機器學習算法 scikit-learn: machine learning in Python

學習這些庫的一個好方法是學習下面的材料:

Scipy Lecture Notes,來自 Gaël Varoquaux、Emmanuelle Gouillart 和 Olav Vahtras:Scipy Lecture Notes

這個 pandas 教程也很不錯:10 Minutes to Pandas:10 Minutes to pandas

在本教程的後面你還會看到一些其它的軟體包,比如基于 matplotlib 的資料可視化庫 Seaborn。前面提到的軟體包隻是 Python 機器學習中常用的一些核心庫的一部分,但是了解它們應該能讓你在後面遇到其它軟體包時不至于感到困惑。

下面就開始動手吧!

第四步:使用 Python 學習機器學習

首先檢查一下準備情況

Python:就緒

機器學習基本材料:就緒

Numpy:就緒

Pandas:就緒

Matplotlib:就緒

現在是時候使用 Python 機器學習标準庫 scikit-learn 來實作機器學習算法了。

scikit-learn 流程圖

下面許多的教程和訓練都是使用 iPython (Jupyter) Notebook 完成的,iPython Notebook 是執行 Python 語句的互動式環境。iPython Notebook 可以很友善地在網上找到或下載下傳到你的本地計算機。

來自斯坦福的 iPython Notebook 概覽:IPython Tutorial

同樣也請注意,以下的教程是由一系列線上資源所組成。如果你感覺課程有什麼不合适的,可以和作者交流。我們第一個教程就是從 scikit-learn 開始的,我建議你們在繼續完成教程前可以按順序看一看以下的文章。

下面是一篇是對 scikit-learn 簡介的文章,scikit-learn 是 Python 最常用的通用機器學習庫,其覆寫了 K 近鄰算法:

Jake VanderPlas 寫的 scikit-learn 簡介:Jupyter Notebook Viewer

下面的會更加深入、擴充的一篇簡介,包括了從著名的資料庫開始完成一個項目:

Randal Olson 的機器學習案例筆記:Jupyter Notebook Viewer

下一篇關注于在 scikit-learn 上評估不同模型的政策,包括訓練集/測試集的分割方法:

Kevin Markham 的模型評估:justmarkham/scikit-learn-videos

第五步:Python 上實作機器學習的基本算法

在有了 scikit-learn 的基本知識後,我們可以進一步探索那些更加通用和實用的算法。我們從非常出名的 K 均值聚類(k-means clustering)算法開始,它是一種非常簡單和高效的方法,能很好地解決非監督學習問題:

K-均值聚類:jakevdp/sklearn_pycon2015

接下來我們可以回到分類問題,并學習曾經最流行的分類算法:

決策樹:Tutorial: Decision Trees

在了解分類問題後,我們可以繼續看看連續型數值預測:

線性回歸:Jupyter Notebook Viewer

我們也可以利用回歸的思想應用到分類問題中,即 logistic 回歸:

logistic 回歸:justmarkham/gadsdc

第六步:Python 上實作進階機器學習算法

我們已經熟悉了 scikit-learn,現在我們可以了解一下更進階的算法了。首先就是支援向量機,它是一種依賴于将資料轉換映射到高維空間的非線性分類器。

支援向量機:jakevdp/sklearn_pycon2015

随後,我們可以通過 Kaggle Titanic 競賽檢查學習作為內建分類器的随機森林:

Kaggle Titanic 競賽(使用随機森林):Jupyter Notebook Viewer

降維算法經常用于減少在問題中所使用的變量。主成份分析法就是非監督降維算法的一個特殊形式:

降維算法:jakevdp/sklearn_pycon2015

在進入第七步之前,我們可以花一點時間考慮在相對較短的時間内取得的一些進展。

首先使用 Python 及其機器學習庫,我們不僅已經了解了一些最常見和知名的機器學習算法(k 近鄰、k 均值聚類、支援向量機等),還研究了強大的內建技術(随機森林)和一些額外的機器學習任務(降維算法和模型驗證技術)。除了一些基本的機器學習技巧,我們已經開始尋找一些有用的工具包。

我們會進一步學習新的必要工具。

第七步:Python 深度學習

神經網絡包含很多層

深度學習無處不在。深度學習建立在幾十年前的神經網絡的基礎上,但是最近的進步始于幾年前,并極大地提高了深度神經網絡的認知能力,引起了人們的廣泛興趣。如果你對神經網絡還不熟悉,KDnuggets 有很多文章詳細介紹了最近深度學習大量的創新、成就和贊許。

最後一步并不打算把所有類型的深度學習評論一遍,而是在 2 個先進的當代 Python 深度學習庫中探究幾個簡單的網絡實作。對于有興趣深挖深度學習的讀者,我建議從下面這些免費的線上書籍開始:

神經網絡與深度學習,作者 Michael Nielsen:Neural networks and deep learning

1.Theano

連結:Welcome - Theano 0.8.2 documentation

Theano 是我們講到的第一個 Python 深度學習庫。看看 Theano 作者怎麼說:

Theano 是一個 Python 庫,它可以使你有效地定義、優化和評估包含多元數組的數學表達式。

下面關于運用 Theano 學習深度學習的入門教程有點長,但是足夠好,描述生動,評價很高:

Theano 深度學習教程,作者 Colin Raffel:Jupyter Notebook Viewer

2.Caffe

連結:Caffe | Deep Learning Framework

另一個我們将測試驅動的庫是 Caffe。再一次,讓我們從作者開始:

Caffe 是一個深度學習架構,由表達、速度和子產品性建構,Bwekeley 視覺與學習中心和社群工作者共同開發了 Caf fe。

這個教程是本篇文章中最好的一個。我們已經學習了上面幾個有趣的樣例,但沒有一個可與下面這個樣例相競争,其可通過 Caffe 實作谷歌的 DeepDream。這個相當精彩!掌握教程之後,可以嘗試使你的處理器自如運作,就當作是娛樂。

通過 Caffe 實作谷歌 DeepDream:google/deepdream

我并沒有保證說這會很快或容易,但是如果你投入了時間并完成了上面的 7 個步驟,你将在了解大量機器學習算法以及通過流行的庫(包括一些在目前深度學習研究領域最前沿的庫)在 Python 中實作算法方面變得很擅長。

進階篇

機器學習算法

本篇是使用 Python 掌握機器學習的 7 個步驟系列文章的下篇,如果你已經學習了該系列的上篇,那麼應該達到了令人滿意的學習速度和熟練技能;如果沒有的話,你也許應該回顧一下上篇,具體花費多少時間,取決于你目前的了解水準。我保證這樣做是值得的。快速回顧之後,本篇文章會更明确地集中于幾個機器學習相關的任務集上。由于安全地跳過了一些基礎子產品——Python 基礎、機器學習基礎等等——我們可以直接進入到不同的機器學習算法之中。這次我們可以根據功能更好地分類教程。

第1步:機器學習基礎回顧&一個新視角

上篇中包括以下幾步:

  1. Python 基礎技能
  2. 機器學習基礎技能
  3. Python 包概述
  4. 運用 Python 開始機器學習:介紹&模型評估
  5. 關于 Python 的機器學習主題:k-均值聚類、決策樹、線性回歸&邏輯回歸
  6. 關于 Python 的高階機器學習主題:支援向量機、随機森林、PCA 降維
  7. Python 中的深度學習

如上所述,如果你正準備從頭開始,我建議你按順序讀完上篇。我也會列出所有适合新手的入門材料,安裝說明包含在上篇文章中。

然而,如果你已經讀過,我會從下面最基礎的開始:

機器學習關鍵術語解釋,作者 Matthew Mayo。位址:Machine Learning Key Terms, Explained

維基百科條目:統計學分類。位址:Statistical classification

機器學習:一個完整而詳細的概述,作者 Alex Castrounis。位址:Machine Learning: A Complete and Detailed Overview

如果你正在尋找學習機器學習基礎的替代或補充性方法,恰好我可以把正在看的 Shai Ben-David 的視訊講座和 Shai Shalev-Shwartz 的教科書推薦給你:

Shai Ben-David 的機器學習介紹視訊講座,滑鐵盧大學。位址:http://suo.im/1TFlK6

了解機器學習:從理論到算法,作者 Shai Ben-David & Shai Shalev-Shwartz。位址:http://suo.im/1NL0ix

記住,這些介紹性資料并不需要全部看完才能開始我寫的系列文章。視訊講座、教科書及其他資源可在以下情況查閱:當使用機器學習算法實作模型時或者當合适的概念被實際應用在後續步驟之中時。具體情況自己判斷。

第2步:更多的分類

我們從新材料開始,首先鞏固一下我們的分類技術并引入一些額外的算法。雖然本篇文章的第一部分涵蓋決策樹、支援向量機、邏輯回歸以及合成分類随機森林,我們還是會添加 k-最近鄰、樸素貝葉斯分類器和多層感覺器。

Scikit-learn 分類器

k-最近鄰(kNN)是一個簡單分類器和懶惰學習者的示例,其中所有計算都發生在分類時間上(而不是提前在訓練步驟期間發生)。kNN 是非參數的,通過比較資料執行個體和 k 最近執行個體來決定如何分類。

使用 Python 進行 k-最近鄰分類。位址:K-Nearest Neighbor classification using python

樸素貝葉斯是基于貝葉斯定理的分類器。它假定特征之間存在獨立性,并且一個類中任何特定特征的存在與任何其它特征在同一類中的存在無關。

使用 Scikit-learn 進行文檔分類,作者 Zac Stewart。位址:Document Classification with scikit-learn

多層感覺器(MLP)是一個簡單的前饋神經網絡,由多層節點組成,其中每個層與随後的層完全連接配接。多層感覺器在 Scikit-learn 版本 0.18 中作了介紹。

首先從 Scikit-learn 文檔中閱讀 MLP 分類器的概述,然後使用教程練習實作。

神經網絡模型(監督式),Scikit-learn 文檔。位址:1.17. Neural network models (supervised)

Python 和 Scikit-learn 的神經網絡初學者指南 0.18!作者 Jose Portilla。位址:A Beginner’s Guide to Neural Networks with Python and SciKit Learn 0.18!

第3步:更多聚類

我們現在接着講聚類,一種無監督學習形式。上篇中,我們讨論了 k-means 算法; 我們在此介紹 DBSCAN 和期望最大化(EM)。

Scikit-learn聚類算法

首先,閱讀這些介紹性文章; 第一個是 k 均值和 EM 聚類技術的快速比較,是對新聚類形式的一個很好的繼續,第二個是對 Scikit-learn 中可用的聚類技術的概述:

聚類技術比較:簡明技術概述,作者 Matthew Mayo。位址:Comparing Clustering Techniques: A Concise Technical Overview

在玩具資料集中比較不同的聚類算法,Scikit-learn 文檔。位址:Comparing different clustering algorithms on toy datasets

期望最大化(EM)是機率聚類算法,并是以涉及确定執行個體屬于特定聚類的機率。EM 接近統計模型中參數的最大似然性或最大後驗估計(Han、Kamber 和 Pei)。EM 過程從一組參數開始疊代直到相對于 k 聚類的聚類最大化。

首先閱讀關于 EM 算法的教程。接下來,看看相關的 Scikit-learn 文檔。最後,按照教程使用 Python 自己實作 EM 聚類。

期望最大化(EM)算法教程,作者 Elena Sharova。位址:A Tutorial on the Expectation Maximization (EM) Algorithm

高斯混合模型,Scikit-learn 文檔。位址:2.1. Gaussian mixture models。

使用 Python 建構高斯混合模型的快速介紹,作者 Tiago Ramalho。位址:Quick introduction to gaussian mixture models with python

如果高斯混合模型初看起來令人困惑,那麼來自 Scikit-learn 文檔的這一相關部分應該可以減輕任何多餘的擔心:

高斯混合對象實作期望最大化(EM)算法以拟合高斯模型混合。

基于密度且具有噪聲的空間聚類應用(DBSCAN)通過将密集資料點分組在一起,并将低密度資料點指定為異常值來進行操作。

首先從 Scikit-learn 的文檔中閱讀并遵循 DBSCAN 的示例實作,然後按照簡明的教程學習:

DBSCAN 聚類算法示範,Scikit-learn 文檔。位址:Demo of DBSCAN clustering algorithm

基于密度的聚類算法(DBSCAN)和實作。位址:http://suo.im/1LEoXC

第4步:更多的內建方法

上篇隻涉及一個單一的內建方法:随機森林(RF)。RF 作為一個頂級的分類器,在過去幾年中取得了巨大的成功,但它肯定不是唯一的內建分類器。我們将看看包裝、提升和投票。

給我一個提升

首先,閱讀這些內建學習器的概述,第一個是通用性的;第二個是它們與 Scikit-learn 有關:

內建學習器介紹,作者 Matthew Mayo。位址:Data Science Basics: An Introduction to Ensemble Learners

Scikit-learn 中的內建方法,Scikit-learn 文檔。位址:1.11. Ensemble methods

然後,在繼續使用新的內建方法之前,請通過一個新的教程快速學習随機森林:

Python 中的随機森林,來自 Yhat。位址:Random Forests in Python

包裝、提升和投票都是不同形式的內建分類器,全部涉及建構多個模型; 然而,這些模型由什麼算法建構,模型使用的資料,以及結果如何最終組合起來,這些都會随着方案而變化。

包裝:從同一分類算法建構多個模型,同時使用來自訓練集的不同(獨立)資料樣本——Scikit-learn 實作包裝分類器

提升:從同一分類算法建構多個模型,一個接一個地連結模型,以提高每個後續模型的學習——Scikit-learn 實作 AdaBoost

投票:建構來自不同分類算法的多個模型,并且使用标準來确定模型如何最好地組合——Scikit-learn 實作投票分類器

那麼,為什麼要組合模型?為了從一個特定角度處理這個問題,這裡是偏差-方差權衡的概述,具體涉及到提升,以下是 Scikit-learn 文檔:

單一評估器 vs 包裝:偏差-方差分解,Scikit-learn 文檔。位址:http://suo.im/3izlRB

現在你已經閱讀了關于內建學習器的一些介紹性材料,并且對幾個特定的內建分類器有了基本了解,下面介紹如何從 Machine Learning Mastery 中使用 Scikit-learn 在 Python 中實作內建分類器:

使用 Scikit-learn 在 Python 中實作內建機器學習算法,作者 Jason Brownlee。位址:Ensemble Machine Learning Algorithms in Python with scikit-learn - Machine Learning Mastery

第5步:梯度提升

下一步我們繼續學習內建分類器,探讨一個當代最流行的機器學習算法。梯度提升最近在機器學習中産生了顯著的影響,成為了 Kaggle 競賽中最受歡迎和成功的算法之一。

給我一個梯度提升

首先,閱讀梯度提升的概述:

維基百科條目:梯度提升。位址:http://suo.im/TslWi

接下來,了解為什麼梯度提升是 Kaggle 競賽中「最制勝」的方法:

為什麼梯度提升完美解決了諸多 Kaggle 難題?Quora,位址:Why does Gradient boosting work so well for so many Kaggle problems?

Kaggle 大師解釋什麼是梯度提升,作者 Ben Gorman。位址:A Kaggle Master Explains Gradient Boosting

雖然 Scikit-learn 有自己的梯度提升實作,我們将稍作改變,使用 XGBoost 庫,我們提到過這是一個更快的實作。

以下連結提供了 XGBoost 庫的一些額外資訊,以及梯度提升(出于必要):

維基百科條目:XGBoost。位址:Xgboost - Wikipedia

Ghub 上的 XGBoost 庫。位址:dmlc/xgboost

XGBoost 文檔。位址:Introduction to Boosted Trees

現在,按照這個教程把所有彙聚起來:

Python 中 XGBoost 梯度提升樹的實作指南,作者 Jesse Steinweg-Woods。位址:A Guide to Gradient Boosted Trees with XGBoost in Python

你還可以按照這些更簡潔的示例進行強化:

XGBoost 在 Kaggle 上的示例(Python)。位址:Titanic: Machine Learning from Disaster

Iris 資料集和 XGBoost 簡單教程,作者 Ieva Zarina。位址:Iris Dataset and Xgboost Simple Tutorial

第6步:更多的降維

降維是通過使用過程來獲得一組主變量,将用于模型建構的變量從其初始數減少到一個減少數。

有兩種主要形式的降維:

  1. 特征選擇——選擇相關特征的子集。位址:Feature selection
  2. 特征提取——建構一個資訊性和非備援的衍生值特征集。位址:Feature extraction

下面是一對常用的特征提取方法。

主成分分析(PCA)是一種統計步驟,它使用正交變換将可能相關變量的一組觀測值轉換為一組稱為主成分的線性不相關變量值。主成分的數量小于或等于原始變量的數量。這種變換以這樣的方式定義,即第一主成分具有最大可能的方差(即考慮資料中盡可能多的變率)

以上定義來自 PCA 維基百科條目,如果感興趣可進一步閱讀。但是,下面的概述/教程非常徹底:

主成分分析:3 個簡單的步驟,作者 Sebastian Raschka。位址:Principal Component Analysis

線性判别分析(LDA)是 Fisher 線性判别的泛化,是統計學、模式識别和機器學習中使用的一種方法,用于發現線性組合特征或分離兩個或多個類别的對象或事件的特征。所得到的組合可以用作線性分類器,或者更常見地,用作後續分類之前的降維。

LDA 與方差分析(ANOVA)和回歸分析密切相關,它同樣嘗試将一個因變量表示為其他特征或測量的線性組合。然而,ANOVA 使用分類獨立變量和連續因變量,而判别分析具有連續的獨立變量和分類依賴變量(即類标簽)。

上面的定義也來自維基百科。下面是完整的閱讀:

線性判别分析——直至比特,作者 Sebastian Raschka。位址:Linear Discriminant Analysis

你對 PCA 和 LDA 對于降維的實際差異是否感到困惑?Sebastian Raschka 做了如下澄清:

線性判别分析(LDA)和主成分分析(PCA)都是通常用于降維的線性轉換技術。PCA 可以被描述為「無監督」算法,因為它「忽略」類标簽,并且其目标是找到使資料集中的方差最大化的方向(所謂的主成分)。與 PCA 相反,LDA 是「監督的」并且計算表示使多個類之間的間隔最大化的軸的方向(「線性判别式」)。

有關這方面的簡要說明,請閱讀以下内容:

LDA 和 PCA 之間的降維有什麼差別?作者 Sebastian Raschka。位址:Machine Learning FAQ

第 7 步:更多的深度學習

上篇中提供了一個學習神經網絡和深度學習的入口。如果你的學習到目前比較順利并希望鞏固對神經網絡的了解,并練習實作幾個常見的神經網絡模型,那麼請繼續往下看。

首先,看一些深度學習基礎材料:

深度學習關鍵術語及解釋,作者 Matthew Mayo

了解深度學習的 7 個步驟,作者 Matthew Mayo。位址:7 Steps to Understanding Deep Learning

接下來,在 Google 的機器智能開源軟體庫 TensorFlow(一個有效的深度學習架構和現今幾乎是最好的神經網絡工具)嘗試一些簡明的概述/教程:

機器學習敲門磚:任何人都能看懂的 TensorFlow 介紹(第 1、2 部分)

入門級解讀:小白也能看懂的 TensorFlow 介紹(第 3、4 部分)

最後,直接從 TensorFlow 網站試用這些教程,它實作了一些最流行和常見的神經網絡模型:

循環神經網絡,谷歌 TensorFlow 教程。位址:http://suo.im/2gtkze

卷積神經網絡,谷歌 TensorFlow 教程。位址:http://suo.im/g8Lbg

此外,目前一篇關于 7 個步驟掌握深度學習的文章正在寫作之中,重點介紹使用位于 TensorFlow 頂部的進階 API,以增模型實作的容易性和靈活性。我也将在完成後在這兒添加一個連結。

相關的:

進入機器學習行業之前應該閱讀的 5 本電子書。位址:5 EBooks to Read Before Getting into A Machine Learning Career

了解深度學習的 7 個步驟。位址:7 Steps to Understanding Deep Learning

機器學習關鍵術語及解釋。位址:Machine Learning Key Terms, Explained

選自kdnuggets(1)(2) 機器之心編譯

相關 [從零開始 python 機器學習] 推薦:

從零開始掌握Python機器學習:十四步教程 - 知乎專欄

- -

Python 可以說是現在最流行的機器學習語言,而且你也能在網上找到大量的資源. 你現在也在考慮從 Python 入門機器學習嗎. 本教程或許能幫你成功上手,從 0 到 1 掌握 Python 機器學習,至于後面再從 1 到 100 變成機器學習專家,就要看你自己的努力了. 本教程原文分為兩個部分,機器之心在本文中将其進行了整合,原文可參閱:7 Steps to Mastering Machine Learning With Python 和 7 More Steps to Mastering Machine Learning With Python.

如果打算從零開始學程式設計,建議你學 Python

- -

如果你是一個程式設計的門外漢,想要通過學習一門程式設計語言了解工程師的世界,或者想學點實用的程式設計手藝提高自己的工作效率,我會首推 Python. 從初學程式設計到現在,我用過不少程式設計語言,大部分是淺嘗辄止,基本上算是一個程式設計領域半途而廢的專家,積累了大量初學者經驗(傷感). 在我看來,一門适合零基礎入門的語言,應該具備以下特性:.

使用python+機器學習方法進行情感分析(詳細步驟) - 51CTO.COM

- -

【限時免費】年底最強一次雲計算大會,看傳統、社群、網際網路企業如何碰撞. 不是有詞典比對的方法了嗎?怎麼還搞多個機器學習方法. 因為詞典方法和機器學習方法各有千秋. 機器學習的方法精确度更高,因為詞典比對會由于語義表達的豐富性而出現很大誤差,而機器學習方法不會. 無論是主客觀分類還是正負面情感分類,機器學習都可以完成任務.

GitHub 上最著名的20個 Python 機器學習項目,值得收藏!

- - IT瘾-geek

源 | kdnuggets|小象. 開源是技術創新和快速發展的核心. 這篇文章向你展示Python機器學習開源項目以及在分析過程中發現的非常有趣的見解和趨勢. 我們分析了GitHub上的前20名Python機器學習項目,發現scikit-Learn,PyLearn2和NuPic是貢獻最積極的項目. 讓我們一起在Github上探索這些流行的項目.

從Pipenv到PyTorch,盤點2017年最受歡迎的十大機器學習Python庫

- -

參與:蔣思源、黃小天、劉曉坤. 2017 年即将結束,又到了總結的時刻. 本文作者把範圍限定為機器學習,盤點了 2017 年以來最受歡迎的十大 Python 庫;同時在這十個非常流行與強大的 Python 庫之外,本文還給出了一些同樣值得關注的 Python 庫,如 PyVips 和 skorch.

如何用Python和機器學習訓練中文文本情感分類模型?

- - 神刀安全網

利用Python機器學習架構scikit-learn,我們自己做一個分類模型,對中文評論資訊做情感分析. 其中還會介紹中文停用詞的處理方法. 前些日子,我在微信背景收到了一則讀者的留言. 我一下子有些懵——這怎麼還帶點播了呢. 但是旋即我醒悟過來,好像是我自己之前挖了個坑. 如何用Python從海量文本抽取主題.

從零開始做工作室!

- l - 果殼網 guokr.com - 果殼網

DIYer:dwj300 制作時間:1周 制作難度:★★★★☆ GEEK指數:★★★★☆. 在“被沒有足夠工作空間”、“找不到工具和材料”、“花了太多時間找東西”弄到抓狂以後,我們決定清理地下雜物室,做個工作間. 在施工過程中我們學到了很多,希望這些經驗會對想建設或者拓展工作空間的人們有幫助.

從零開始的Spring Session(二)

- - 程式猿DD | 部落格

上一篇文章介紹了一些Session和Cookie的基礎知識,這篇文章開始正式介紹Spring Session是如何對傳統的Session進行改造的. 官網這麼介紹Spring Session:. 其具體的特性非常之多,具體的内容可以從文檔中了解到,筆者做一點自己的總結,Spring Session的特性包括但不限于以下:.

機器學習五步走

- - 我愛機器學習

經常會有人問“我該如何在機器學習方面更進一步,我不知道我接下來要學什麼了. 一般我都會給出繼續鑽研教科書的答案. 每當這時候我都會收到一種大惑不解的表情. 但是進步确實就是持續的練習,保持較強的求知欲,并盡你可能的完成具有挑戰性的工作. 因為他是為數不多的幾種可以讓你真真讓你擷取堅實知識的媒介. 是的,你可以選擇選一門課,注冊MOOC,參加一些讨論班.

機器學習之路

- - 我愛機器學習

自從答應簡二毛博士将自己的機器學習曆程和心得分享給大家至今,轉眼間半年已經過去了,感謝簡博士分享和開源精神的鼓舞,這也正是本系列關于機器學習介紹部落格的動力來源. 之前有些網友,師弟們問我,學習機器學習怎麼入手,從看什麼書開始. 如果你隻願意看一本書,那麼推薦Bishop的PRML,全名Pattern Recognition and Machine Learning. 這本書是機器學習的聖經之作,尤其對于貝葉斯方法,介紹非常完善.