Cheat_Sheet ---Keras
Cheat_Sheet ---Matlab
Cheat_Sheet ---Matplotlib
Cheat_Sheet ---Numpy
Cheat_Sheet ---Pandas
Cheat_Sheet ---Scikit-Learn
Cheat_Sheet ---SciPy
參考文獻(xiàn)
http://ddl.escience.cn/f/IDkq#path=%2F8215264
----------------------------------------------------------------------
#待整理
Jason Brownlee - Python Machine Learning
Machine Learning in Python Course
Python機(jī)器學(xué)習(xí)——預(yù)測分析核心算法(在線閱讀版)
http://blog.csdn.net/column/details/pythonml.html
http://blog.csdn.net/column/details/pythonml.html
https://zhuanlan.zhihu.com/p/24162430
https://zhuanlan.zhihu.com/p/24309547
http://blog.csdn.net/jiandanjinxin/article/details/78196914
---------------------------------------------------
A Pythonic interface for Google Mail
---------------------------------------------------
第一天,太初有道,神諭,import light,于是便有光

(在python解釋器里輸入 import antigravity?? 有彩蛋)
---------------------------------------------------
Python的思想 The Zen of Python
在python命令行中輸入 import this 可以看到
-------------------
Beautiful is better than ugly.美優(yōu)于丑
Explicit is better than implicit.晰勝于渾
Simple is better than complex. 簡勝于繁
Complex is better than complicated. 繁勝于雜
Flat is better than nested. 平勝于嵌
Sparse is better than dense. 稀勝于稠
Readability counts. 可讀至上
Special cases aren't special enough to break the rules. 殊例不足違訓(xùn)
Although practicality beats purity. 雖實(shí)用大于純粹
Errors should never pass silently. 謬不可疏
Unless explicitly silenced. 除明示
In the face of ambiguity, refuse the temptation to guess. 晦不存疑
There should be one-- and preferably only one --obvious way to do it. 一法萬用
Although that way may not be obvious at first unless you're Dutch. 若非尼德蘭紅毛,法難定 (......科學(xué)沒有國籍)
Now is better than never. 今勝于無
Although never is often better than *right* now. 無勝于促
If the implementation is hard to explain, it's a bad idea. 難述其施,謬法也
If the implementation is easy to explain, it may be a good idea.其施可述,或可行
Namespaces are one honking great idea -- let's do more of those!命名空間,多多益善
---------------------------------------------------
廖雪峰網(wǎng)站教程pdf打包(包含:python2.7教程、python3教程)
《Python入門》and《Python進(jìn)階》by@廖雪峰from慕課網(wǎng)
Tutorial - Learn Python in 10 minutes
---------------------------------------------------
Python函數(shù)大全
http://blog.csdn.net/SeeTheWorld518/article/category/3255641
零基礎(chǔ)學(xué)Python,GitHub地址by@老齊Py
Python學(xué)習(xí)筆記(第二版)by@qyuhen
網(wǎng)站教程:
?
《"Python研發(fā)工程師"的技能樹》from實(shí)驗(yàn)樓
《Learn to program in Python》fromCodecademy
Think Python: How to Think Like a Computer Scientist
在線教育網(wǎng)站(Coursera網(wǎng)易云edx課堂騰訊課堂等)有哪些值得推薦的 Python 教程?
Introduction to Computer Science and Programming Using Python?
視頻教程:
https://pythonprogramming.net/?
Python3.x基礎(chǔ)學(xué)習(xí)資料整理
經(jīng)典入門書籍:
中文書籍
英文書籍
論壇or網(wǎng)站板塊:
可關(guān)注的微博:
日報
Python for MATLAB Users: Promoting Open Source Computer Vision Research
python-for-matlab-users&Download
https://www.youtube.com/watch?v=jbuYBURnVZY
https://www.youtube.com/watch?v=1_0JILf0ufg
醫(yī)學(xué)圖像處理
AI 技術(shù)講座精選:利用深度學(xué)習(xí)分析醫(yī)學(xué)圖像?
Courses in Medical Image Analysis
教程 利用python進(jìn)行數(shù)據(jù)分析
Pythoner—— “你像從前一樣”的Python學(xué)習(xí)筆記
神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)手寫字符識別系統(tǒng)
Crossin的編程教室by@Crossin(將課程分門別類了)
----------------------------------
如果你不懂編程,我建議你從下面的免費(fèi)在線書籍開始學(xué)習(xí),然后再進(jìn)入后續(xù)的材料:
Learn Python the Hard Way,作者 Zed A. Shaw:Learn Python the Hard Way
如果你有編程經(jīng)驗(yàn),但不懂 Python 或還很初級,我建議你學(xué)習(xí)下面兩個課程:
谷歌開發(fā)者 Python 課程(強(qiáng)烈推薦視覺學(xué)習(xí)者學(xué)習(xí)):http://suo.im/toMzq
Python 科學(xué)計算入門(來自 UCSB Engineering 的 M. Scott Shell)(一個不錯的入門,大約有 60 頁):http://suo.im/2cXycM
如果你要 30 分鐘上手 Python 的快速課程,看下面:
在 Y 分鐘內(nèi)學(xué)會 X(X=Python):Learn python in Y Minutes
當(dāng)然,如果你已經(jīng)是一位經(jīng)驗(yàn)豐富的 Python 程序員了,這一步就可以跳過了。即便如此,我也建議你常使用 Python 文檔:Welcome to Python.org
----------------------------------
**機(jī)器學(xué)習(xí)基礎(chǔ)技巧**
人們對吳恩達(dá)在 Coursera 上的機(jī)器學(xué)習(xí)課程內(nèi)容往往好評如潮;然而,我的建議是瀏覽前一個學(xué)生在線記錄的課堂筆記。跳過特定于 Octave(一個類似于 Matlab 的與你 Python 學(xué)習(xí)無關(guān)的語言)的筆記。一定要明白這些都不是官方筆記,但是可以從它們中把握到吳恩達(dá)課程材料中相關(guān)的內(nèi)容。當(dāng)然如果你有時間和興趣,你現(xiàn)在就可以去 Coursera 上學(xué)習(xí)吳恩達(dá)的機(jī)器學(xué)習(xí)課程:Machine Learning - Stanford University | Coursera
吳恩達(dá)課程的非官方筆記:Machine Learning - complete course notes
除了上面提到的吳恩達(dá)課程,如果你還需要需要其它的,網(wǎng)上還有很多各類課程供你選擇。比如我就很喜歡 Tom Mitchell,這里是他最近演講的視頻(一起的還有 Maria-Florina Balcan),非常平易近人。
Tom Mitchell 的機(jī)器學(xué)習(xí)課程:Machine Learning
目前你不需要所有的筆記和視頻。一個有效地方法是當(dāng)你覺得合適時,直接去看下面特定的練習(xí)題,參考上述備注和視頻恰當(dāng)?shù)牟糠郑?/p>
-------------------------------------
科學(xué)計算 Python 軟件包概述
好了,我們已經(jīng)掌握了 Python 編程并對機(jī)器學(xué)習(xí)有了一定的了解。而在 Python 之外,還有一些常用于執(zhí)行實(shí)際機(jī)器學(xué)習(xí)的開源軟件庫。廣義上講,有很多所謂的科學(xué) Python 庫(scientific Python libraries)可用于執(zhí)行基本的機(jī)器學(xué)習(xí)任務(wù)(這方面的判斷肯定有些主觀性):
numpy——主要對其 N 維數(shù)組對象有用NumPy - NumPy
pandas——Python 數(shù)據(jù)分析庫,包括數(shù)據(jù)框架(dataframes)等結(jié)構(gòu)Python Data Analysis Library
matplotlib——一個 2D 繪圖庫,可產(chǎn)生出版物質(zhì)量的圖表Python plotting - Matplotlib 2.0.0 documentation
scikit-learn——用于數(shù)據(jù)分析和數(shù)據(jù)挖掘人物的機(jī)器學(xué)習(xí)算法scikit-learn: machine learning in Python
學(xué)習(xí)這些庫的一個好方法是學(xué)習(xí)下面的材料:
Scipy Lecture Notes,來自 Ga?l Varoquaux、Emmanuelle Gouillart 和 Olav Vahtras:Scipy Lecture Notes
這個 pandas 教程也很不錯:10 Minutes to Pandas:10 Minutes to pandas
在本教程的后面你還會看到一些其它的軟件包,比如基于 matplotlib 的數(shù)據(jù)可視化庫 Seaborn。前面提到的軟件包只是 Python 機(jī)器學(xué)習(xí)中常用的一些核心庫的一部分,但是理解它們應(yīng)該能讓你在后面遇到其它軟件包時不至于感到困惑。
------------------------------------
**使用Python學(xué)習(xí)機(jī)器學(xué)習(xí)**
下面許多的教程和訓(xùn)練都是使用 iPython (Jupyter) Notebook 完成的,iPython Notebook 是執(zhí)行 Python 語句的交互式環(huán)境。iPython Notebook 可以很方便地在網(wǎng)上找到或下載到你的本地計算機(jī)。
Beginner's IPython Notebook Tutorial
Example notebook showing how to do statistics in IPython Notebook
來自斯坦福的 iPython Notebook 概覽:IPython Tutorial
同樣也請注意,以下的教程是由一系列在線資源所組成。如果你感覺課程有什么不合適的,可以和作者交流。我們第一個教程就是從 scikit-learn 開始的,我建議你們在繼續(xù)完成教程前可以按順序看一看以下的文章。
下面是一篇是對 scikit-learn 簡介的文章,scikit-learn 是 Python 最常用的通用機(jī)器學(xué)習(xí)庫,其覆蓋了 K 近鄰算法:
Jake VanderPlas 寫的 scikit-learn 簡介:Jupyter Notebook Viewer
下面的會更加深入、擴(kuò)展的一篇簡介,包括了從著名的數(shù)據(jù)庫開始完成一個項目:
Randal Olson 的機(jī)器學(xué)習(xí)案例筆記:Jupyter Notebook Viewer
下一篇關(guān)注于在 scikit-learn 上評估不同模型的策略,包括訓(xùn)練集/測試集的分割方法:
Kevin Markham 的模型評估:justmarkham/scikit-learn-videos
Python 上實(shí)現(xiàn)機(jī)器學(xué)習(xí)的基本算法
在有了 scikit-learn 的基本知識后,我們可以進(jìn)一步探索那些更加通用和實(shí)用的算法。我們從非常出名的 K 均值聚類(k-means clustering)算法開始,它是一種非常簡單和高效的方法,能很好地解決非監(jiān)督學(xué)習(xí)問題:
K-均值聚類:jakevdp/sklearn_pycon2015
接下來我們可以回到分類問題,并學(xué)習(xí)曾經(jīng)最流行的分類算法:
在了解分類問題后,我們可以繼續(xù)看看連續(xù)型數(shù)值預(yù)測:
我們也可以利用回歸的思想應(yīng)用到分類問題中,即 logistic 回歸:
logistic 回歸:justmarkham/gadsdc
---------------------------------------------
Python 上實(shí)現(xiàn)進(jìn)階機(jī)器學(xué)習(xí)算法
我們已經(jīng)熟悉了 scikit-learn,現(xiàn)在我們可以了解一下更高級的算法了。首先就是支持向量機(jī),它是一種依賴于將數(shù)據(jù)轉(zhuǎn)換映射到高維空間的非線性分類器。
支持向量機(jī):jakevdp/sklearn_pycon2015
隨后,我們可以通過 Kaggle Titanic 競賽檢查學(xué)習(xí)作為集成分類器的隨機(jī)森林:
Kaggle Titanic 競賽(使用隨機(jī)森林):Jupyter Notebook Viewer
降維算法經(jīng)常用于減少在問題中所使用的變量。主成份分析法就是非監(jiān)督降維算法的一個特殊形式:
降維算法:jakevdp/sklearn_pycon2015
在進(jìn)入第七步之前,我們可以花一點(diǎn)時間考慮在相對較短的時間內(nèi)取得的一些進(jìn)展。
首先使用
Python 及其機(jī)器學(xué)習(xí)庫,我們不僅已經(jīng)了解了一些最常見和知名的機(jī)器學(xué)習(xí)算法(k 近鄰、k
均值聚類、支持向量機(jī)等),還研究了強(qiáng)大的集成技術(shù)(隨機(jī)森林)和一些額外的機(jī)器學(xué)習(xí)任務(wù)(降維算法和模型驗(yàn)證技術(shù))。除了一些基本的機(jī)器學(xué)習(xí)技巧,我們已經(jīng)開始尋找一些有用的工具包。
--------------------------
Python 深度學(xué)習(xí)
深度學(xué)習(xí)無處不在。深度學(xué)習(xí)建立在幾十年前的神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上,但是最近的進(jìn)步始于幾年前,并極大地提高了深度神經(jīng)網(wǎng)絡(luò)的認(rèn)知能力,引起了人們的廣泛興趣。如果你對神經(jīng)網(wǎng)絡(luò)還不熟悉,KDnuggets 有很多文章詳細(xì)介紹了最近深度學(xué)習(xí)大量的創(chuàng)新、成就和贊許。
最后一步并不打算把所有類型的深度學(xué)習(xí)評論一遍,而是在 2 個先進(jìn)的當(dāng)代 Python 深度學(xué)習(xí)庫中探究幾個簡單的網(wǎng)絡(luò)實(shí)現(xiàn)。對于有興趣深挖深度學(xué)習(xí)的讀者,我建議從下面這些免費(fèi)的在線書籍開始:
神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí),作者 Michael Nielsen:Neural networks and deep learning
1.Theano
鏈接:Welcome - Theano 0.8.2 documentation
Theano 是我們講到的第一個 Python 深度學(xué)習(xí)庫??纯?Theano 作者怎么說:
Theano 是一個 Python 庫,它可以使你有效地定義、優(yōu)化和評估包含多維數(shù)組的數(shù)學(xué)表達(dá)式。
下面關(guān)于運(yùn)用 Theano 學(xué)習(xí)深度學(xué)習(xí)的入門教程有點(diǎn)長,但是足夠好,描述生動,評價很高:
Theano 深度學(xué)習(xí)教程,作者 Colin Raffel:Jupyter Notebook Viewer
2.Caffe
鏈接:Caffe | Deep Learning Framework
另一個我們將測試驅(qū)動的庫是 Caffe。再一次,讓我們從作者開始:
Caffe 是一個深度學(xué)習(xí)框架,由表達(dá)、速度和模塊性建構(gòu),Bwekeley 視覺與學(xué)習(xí)中心和社區(qū)工作者共同開發(fā)了 Caf fe。
這個教程是本篇文章中最好的一個。我們已經(jīng)學(xué)習(xí)了上面幾個有趣的樣例,但沒有一個可與下面這個樣例相競爭,其可通過 Caffe 實(shí)現(xiàn)谷歌的 DeepDream。這個相當(dāng)精彩!掌握教程之后,可以嘗試使你的處理器自如運(yùn)行,就當(dāng)作是娛樂。
通過 Caffe 實(shí)現(xiàn)谷歌 DeepDream:google/deepdream
我并沒有保證說這會很快或容易,但是如果你投入了時間并完成了上面的 7 個步驟,你將在理解大量機(jī)器學(xué)習(xí)算法以及通過流行的庫(包括一些在目前深度學(xué)習(xí)研究領(lǐng)域最前沿的庫)在 Python 中實(shí)現(xiàn)算法方面變得很擅長。
----------------------------
進(jìn)階篇
機(jī)器學(xué)習(xí)算法
本篇是使用 Python 掌握機(jī)器學(xué)習(xí)的 7 個步驟系列文章的下篇,如果你已經(jīng)學(xué)習(xí)了該系列的上篇,那么應(yīng)該達(dá)到了令人滿意的學(xué)習(xí)速度和熟練技能;如果沒有的話,你也許應(yīng)該回顧一下上篇,具體花費(fèi)多少時間,取決于你當(dāng)前的理解水平。我保證這樣做是值得的??焖倩仡欀螅酒恼聲鞔_地集中于幾個機(jī)器學(xué)習(xí)相關(guān)的任務(wù)集上。由于安全地跳過了一些基礎(chǔ)模塊——Python 基礎(chǔ)、機(jī)器學(xué)習(xí)基礎(chǔ)等等——我們可以直接進(jìn)入到不同的機(jī)器學(xué)習(xí)算法之中。這次我們可以根據(jù)功能更好地分類教程。
第1步:機(jī)器學(xué)習(xí)基礎(chǔ)回顧&一個新視角
上篇中包括以下幾步:
1. Python 基礎(chǔ)技能
2. 機(jī)器學(xué)習(xí)基礎(chǔ)技能
3. Python 包概述
4. 運(yùn)用 Python 開始機(jī)器學(xué)習(xí):介紹&模型評估
5. 關(guān)于 Python 的機(jī)器學(xué)習(xí)主題:k-均值聚類、決策樹、線性回歸&邏輯回歸
6. 關(guān)于 Python 的高階機(jī)器學(xué)習(xí)主題:支持向量機(jī)、隨機(jī)森林、PCA 降維
7. Python 中的深度學(xué)習(xí)
如上所述,如果你正準(zhǔn)備從頭開始,我建議你按順序讀完上篇。我也會列出所有適合新手的入門材料,安裝說明包含在上篇文章中。
然而,如果你已經(jīng)讀過,我會從下面最基礎(chǔ)的開始:
機(jī)器學(xué)習(xí)關(guān)鍵術(shù)語解釋,作者 Matthew Mayo。地址:Machine Learning Key Terms, Explained
維基百科條目:統(tǒng)計學(xué)分類。地址:Statistical classification
機(jī)器學(xué)習(xí):一個完整而詳細(xì)的概述,作者 Alex Castrounis。地址:Machine Learning: A Complete and Detailed Overview
如果你正在尋找學(xué)習(xí)機(jī)器學(xué)習(xí)基礎(chǔ)的替代或補(bǔ)充性方法,恰好我可以把正在看的 Shai Ben-David 的視頻講座和 Shai Shalev-Shwartz 的教科書推薦給你:
Shai Ben-David 的機(jī)器學(xué)習(xí)介紹視頻講座,滑鐵盧大學(xué)。地址:http://suo.im/1TFlK6
理解機(jī)器學(xué)習(xí):從理論到算法,作者 Shai Ben-David & Shai Shalev-Shwartz。地址:http://suo.im/1NL0ix
記住,這些介紹性資料并不需要全部看完才能開始我寫的系列文章。視頻講座、教科書及其他資源可在以下情況查閱:當(dāng)使用機(jī)器學(xué)習(xí)算法實(shí)現(xiàn)模型時或者當(dāng)合適的概念被實(shí)際應(yīng)用在后續(xù)步驟之中時。具體情況自己判斷。
第2步:更多的分類
我們從新材料開始,首先鞏固一下我們的分類技術(shù)并引入一些額外的算法。雖然本篇文章的第一部分涵蓋決策樹、支持向量機(jī)、邏輯回歸以及合成分類隨機(jī)森林,我們還是會添加 k-最近鄰、樸素貝葉斯分類器和多層感知器。

Scikit-learn 分類器
k-最近鄰(kNN)是一個簡單分類器和懶惰學(xué)習(xí)者的示例,其中所有計算都發(fā)生在分類時間上(而不是提前在訓(xùn)練步驟期間發(fā)生)。kNN 是非參數(shù)的,通過比較數(shù)據(jù)實(shí)例和 k 最近實(shí)例來決定如何分類。
使用 Python 進(jìn)行 k-最近鄰分類。地址:K-Nearest Neighbor classification using python
樸素貝葉斯是基于貝葉斯定理的分類器。它假定特征之間存在獨(dú)立性,并且一個類中任何特定特征的存在與任何其它特征在同一類中的存在無關(guān)。
使用 Scikit-learn 進(jìn)行文檔分類,作者 Zac Stewart。地址:Document Classification with scikit-learn
多層感知器(MLP)是一個簡單的前饋神經(jīng)網(wǎng)絡(luò),由多層節(jié)點(diǎn)組成,其中每個層與隨后的層完全連接。多層感知器在 Scikit-learn 版本 0.18 中作了介紹。
首先從 Scikit-learn 文檔中閱讀 MLP 分類器的概述,然后使用教程練習(xí)實(shí)現(xiàn)。
神經(jīng)網(wǎng)絡(luò)模型(監(jiān)督式),Scikit-learn 文檔。地址:1.17. Neural network models (supervised)
Python 和 Scikit-learn 的神經(jīng)網(wǎng)絡(luò)初學(xué)者指南 0.18!作者 Jose Portilla。地址:A Beginner’s Guide to Neural Networks with Python and SciKit Learn 0.18!
第3步:更多聚類
我們現(xiàn)在接著講聚類,一種無監(jiān)督學(xué)習(xí)形式。上篇中,我們討論了 k-means 算法; 我們在此介紹 DBSCAN 和期望最大化(EM)。

Scikit-learn聚類算法
首先,閱讀這些介紹性文章; 第一個是 k 均值和 EM 聚類技術(shù)的快速比較,是對新聚類形式的一個很好的繼續(xù),第二個是對 Scikit-learn 中可用的聚類技術(shù)的概述:
聚類技術(shù)比較:簡明技術(shù)概述,作者 Matthew Mayo。地址:Comparing Clustering Techniques: A Concise Technical Overview
在玩具數(shù)據(jù)集中比較不同的聚類算法,Scikit-learn 文檔。地址:Comparing different clustering algorithms on toy datasets
期望最大化(EM)是概率聚類算法,并因此涉及確定實(shí)例屬于特定聚類的概率。EM 接近統(tǒng)計模型中參數(shù)的最大似然性或最大后驗(yàn)估計(Han、Kamber 和 Pei)。EM 過程從一組參數(shù)開始迭代直到相對于 k 聚類的聚類最大化。
首先閱讀關(guān)于 EM 算法的教程。接下來,看看相關(guān)的 Scikit-learn 文檔。最后,按照教程使用 Python 自己實(shí)現(xiàn) EM 聚類。
期望最大化(EM)算法教程,作者 Elena Sharova。地址:A Tutorial on the Expectation Maximization (EM) Algorithm
高斯混合模型,Scikit-learn 文檔。地址:2.1. Gaussian mixture models。
使用 Python 構(gòu)建高斯混合模型的快速介紹,作者 Tiago Ramalho。地址:Quick introduction to gaussian mixture models with python
如果高斯混合模型初看起來令人困惑,那么來自 Scikit-learn 文檔的這一相關(guān)部分應(yīng)該可以減輕任何多余的擔(dān)心:
高斯混合對象實(shí)現(xiàn)期望最大化(EM)算法以擬合高斯模型混合。
基于密度且具有噪聲的空間聚類應(yīng)用(DBSCAN)通過將密集數(shù)據(jù)點(diǎn)分組在一起,并將低密度數(shù)據(jù)點(diǎn)指定為異常值來進(jìn)行操作。
首先從 Scikit-learn 的文檔中閱讀并遵循 DBSCAN 的示例實(shí)現(xiàn),然后按照簡明的教程學(xué)習(xí):
DBSCAN 聚類算法演示,Scikit-learn 文檔。地址:Demo of DBSCAN clustering algorithm
基于密度的聚類算法(DBSCAN)和實(shí)現(xiàn)。地址:http://suo.im/1LEoXC
第4步:更多的集成方法
上篇只涉及一個單一的集成方法:隨機(jī)森林(RF)。RF 作為一個頂級的分類器,在過去幾年中取得了巨大的成功,但它肯定不是唯一的集成分類器。我們將看看包裝、提升和投票。

給我一個提升
首先,閱讀這些集成學(xué)習(xí)器的概述,第一個是通用性的;第二個是它們與 Scikit-learn 有關(guān):
集成學(xué)習(xí)器介紹,作者 Matthew Mayo。地址:Data Science Basics: An Introduction to Ensemble Learners
Scikit-learn 中的集成方法,Scikit-learn 文檔。地址:1.11. Ensemble methods
然后,在繼續(xù)使用新的集成方法之前,請通過一個新的教程快速學(xué)習(xí)隨機(jī)森林:
Python 中的隨機(jī)森林,來自 Yhat。地址:Random Forests in Python
包裝、提升和投票都是不同形式的集成分類器,全部涉及建構(gòu)多個模型; 然而,這些模型由什么算法構(gòu)建,模型使用的數(shù)據(jù),以及結(jié)果如何最終組合起來,這些都會隨著方案而變化。
包裝:從同一分類算法構(gòu)建多個模型,同時使用來自訓(xùn)練集的不同(獨(dú)立)數(shù)據(jù)樣本——Scikit-learn 實(shí)現(xiàn)包裝分類器
提升:從同一分類算法構(gòu)建多個模型,一個接一個地鏈接模型,以提高每個后續(xù)模型的學(xué)習(xí)——Scikit-learn 實(shí)現(xiàn) AdaBoost
投票:構(gòu)建來自不同分類算法的多個模型,并且使用標(biāo)準(zhǔn)來確定模型如何最好地組合——Scikit-learn 實(shí)現(xiàn)投票分類器
那么,為什么要組合模型?為了從一個特定角度處理這個問題,這里是偏差-方差權(quán)衡的概述,具體涉及到提升,以下是 Scikit-learn 文檔:
單一評估器 vs 包裝:偏差-方差分解,Scikit-learn 文檔。地址:http://suo.im/3izlRB
現(xiàn)在你已經(jīng)閱讀了關(guān)于集成學(xué)習(xí)器的一些介紹性材料,并且對幾個特定的集成分類器有了基本了解,下面介紹如何從 Machine Learning Mastery 中使用 Scikit-learn 在 Python 中實(shí)現(xiàn)集成分類器:
使用 Scikit-learn 在 Python 中實(shí)現(xiàn)集成機(jī)器學(xué)習(xí)算法,作者 Jason Brownlee。地址:Ensemble Machine Learning Algorithms in Python with scikit-learn - Machine Learning Mastery
第5步:梯度提升
下一步我們繼續(xù)學(xué)習(xí)集成分類器,探討一個當(dāng)代最流行的機(jī)器學(xué)習(xí)算法。梯度提升最近在機(jī)器學(xué)習(xí)中產(chǎn)生了顯著的影響,成為了 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 有自己的梯度提升實(shí)現(xiàn),我們將稍作改變,使用 XGBoost 庫,我們提到過這是一個更快的實(shí)現(xiàn)。
以下鏈接提供了 XGBoost 庫的一些額外信息,以及梯度提升(出于必要):
維基百科條目:XGBoost。地址:Xgboost - Wikipedia
Ghub 上的 XGBoost 庫。地址:dmlc/xgboost
XGBoost 文檔。地址:Introduction to Boosted Trees
現(xiàn)在,按照這個教程把所有匯聚起來:
Python 中 XGBoost 梯度提升樹的實(shí)現(xiàn)指南,作者 Jesse Steinweg-Woods。地址:A Guide to Gradient Boosted Trees with XGBoost in Python
你還可以按照這些更簡潔的示例進(jìn)行強(qiáng)化:
XGBoost 在 Kaggle 上的示例(Python)。地址:Titanic: Machine Learning from Disaster
Iris 數(shù)據(jù)集和 XGBoost 簡單教程,作者 Ieva Zarina。地址:Iris Dataset and Xgboost Simple Tutorial
第6步:更多的降維
降維是通過使用過程來獲得一組主變量,將用于模型構(gòu)建的變量從其初始數(shù)減少到一個減少數(shù)。
有兩種主要形式的降維:
1. 特征選擇——選擇相關(guān)特征的子集。地址:Feature selection
2. 特征提取——構(gòu)建一個信息性和非冗余的衍生值特征集。地址:Feature extraction
下面是一對常用的特征提取方法。

主成分分析(PCA)是一種統(tǒng)計步驟,它使用正交變換將可能相關(guān)變量的一組觀測值轉(zhuǎn)換為一組稱為主成分的線性不相關(guān)變量值。主成分的數(shù)量小于或等于原始變量的數(shù)量。這種變換以這樣的方式定義,即第一主成分具有最大可能的方差(即考慮數(shù)據(jù)中盡可能多的變率)
以上定義來自 PCA 維基百科條目,如果感興趣可進(jìn)一步閱讀。但是,下面的概述/教程非常徹底:
主成分分析:3 個簡單的步驟,作者 Sebastian Raschka。地址:Principal Component Analysis
線性判別分析(LDA)是 Fisher 線性判別的泛化,是統(tǒng)計學(xué)、模式識別和機(jī)器學(xué)習(xí)中使用的一種方法,用于發(fā)現(xiàn)線性組合特征或分離兩個或多個類別的對象或事件的特征。所得到的組合可以用作線性分類器,或者更常見地,用作后續(xù)分類之前的降維。
LDA 與方差分析(ANOVA)和回歸分析密切相關(guān),它同樣嘗試將一個因變量表示為其他特征或測量的線性組合。然而,ANOVA 使用分類獨(dú)立變量和連續(xù)因變量,而判別分析具有連續(xù)的獨(dú)立變量和分類依賴變量(即類標(biāo)簽)。
上面的定義也來自維基百科。下面是完整的閱讀:
線性判別分析——直至比特,作者 Sebastian Raschka。地址:Linear Discriminant Analysis
你對 PCA 和 LDA 對于降維的實(shí)際差異是否感到困惑?Sebastian Raschka 做了如下澄清:
線性判別分析(LDA)和主成分分析(PCA)都是通常用于降維的線性轉(zhuǎn)換技術(shù)。PCA
可以被描述為「無監(jiān)督」算法,因?yàn)樗负雎浴诡悩?biāo)簽,并且其目標(biāo)是找到使數(shù)據(jù)集中的方差最大化的方向(所謂的主成分)。與 PCA 相反,LDA
是「監(jiān)督的」并且計算表示使多個類之間的間隔最大化的軸的方向(「線性判別式」)。
有關(guān)這方面的簡要說明,請閱讀以下內(nèi)容:
LDA 和 PCA 之間的降維有什么區(qū)別?作者 Sebastian Raschka。地址:Machine Learning FAQ
第 7 步:更多的深度學(xué)習(xí)
上篇中提供了一個學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)的入口。如果你的學(xué)習(xí)到目前比較順利并希望鞏固對神經(jīng)網(wǎng)絡(luò)的理解,并練習(xí)實(shí)現(xiàn)幾個常見的神經(jīng)網(wǎng)絡(luò)模型,那么請繼續(xù)往下看。

首先,看一些深度學(xué)習(xí)基礎(chǔ)材料:
深度學(xué)習(xí)關(guān)鍵術(shù)語及解釋,作者 Matthew Mayo
理解深度學(xué)習(xí)的 7 個步驟,作者 Matthew Mayo。地址:7 Steps to Understanding Deep Learning
接下來,在 Google 的機(jī)器智能開源軟件庫 TensorFlow(一個有效的深度學(xué)習(xí)框架和現(xiàn)今幾乎是最好的神經(jīng)網(wǎng)絡(luò)工具)嘗試一些簡明的概述/教程:
機(jī)器學(xué)習(xí)敲門磚:任何人都能看懂的 TensorFlow 介紹(第 1、2 部分)
入門級解讀:小白也能看懂的 TensorFlow 介紹(第 3、4 部分)
最后,直接從 TensorFlow 網(wǎng)站試用這些教程,它實(shí)現(xiàn)了一些最流行和常見的神經(jīng)網(wǎng)絡(luò)模型:
循環(huán)神經(jīng)網(wǎng)絡(luò),谷歌 TensorFlow 教程。地址:http://suo.im/2gtkze
卷積神經(jīng)網(wǎng)絡(luò),谷歌 TensorFlow 教程。地址:http://suo.im/g8Lbg
此外,目前一篇關(guān)于 7 個步驟掌握深度學(xué)習(xí)的文章正在寫作之中,重點(diǎn)介紹使用位于 TensorFlow 頂部的高級 API,以增模型實(shí)現(xiàn)的容易性和靈活性。我也將在完成后在這兒添加一個鏈接。
相關(guān)的:
進(jìn)入機(jī)器學(xué)習(xí)行業(yè)之前應(yīng)該閱讀的 5 本電子書。地址:5 EBooks to Read Before Getting into A Machine Learning Career
理解深度學(xué)習(xí)的 7 個步驟。地址:7 Steps to Understanding Deep Learning
機(jī)器學(xué)習(xí)關(guān)鍵術(shù)語及解釋。地址:Machine Learning Key Terms, Explained
--------------------------------
參考
只需十四步:從零開始掌握Python機(jī)器學(xué)習(xí)?
【朝花夕拾】- 來侃侃簡潔而又強(qiáng)大的 Python?