Python 學習資源教程(待續)

Cheat_Sheet ---Keras

Cheat_Sheet ---Matlab

Cheat_Sheet ---Matplotlib

Cheat_Sheet ---Numpy

Cheat_Sheet ---Pandas

Cheat_Sheet ---Scikit-Learn

Cheat_Sheet ---SciPy

參考文獻

http://ddl.escience.cn/f/IDkq#path=%2F8215264




hunkim/PythonZeroToAll

----------------------------------------------------------------------

#待整理

Jason Brownlee - Python Machine Learning

Machine Learning in Python Course

Python機器學習——預測分析核心算法(在線閱讀版)

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

辛星Python

---------------------------------------------------

A Pythonic interface for Google Mail

---------------------------------------------------

第一天,太初有道,神諭,import light,于是便有光


(在python解釋器里輸入 import antigravity?? 有彩蛋)

---------------------------------------------------

Python的思想 The Zen of Python

在python命令行中輸入 import this 可以看到

-------------------

Beautiful is better than ugly.美優于丑

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. 殊例不足違訓

Although practicality beats purity. 雖實用大于純粹

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. 若非尼德蘭紅毛,法難定 (......科學沒有國籍)

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!命名空間,多多益善

---------------------------------------------------

圖文教程:


Python教程by@廖雪峰

廖雪峰 python2.7

廖雪峰Python2.7教程 pdf版

廖雪峰 python3

廖雪峰網站教程pdf打包(包含:python2.7教程、python3教程)

《Python入門》and《Python進階》by@廖雪峰from慕課網

Tutorial - Learn Python in 10 minutes

Python Quick Guide?

The Python 3.5 Tutorial?

Python Numpy Tutorial-Stand

---------------------------------------------------

Python函數大全

http://blog.csdn.net/SeeTheWorld518/article/category/3255641


零基礎學PythonGitHub地址by@老齊Py

Python學習筆記(第二版)by@qyuhen

黃哥Python?


網站教程:

?

《"Python研發工程師"的技能樹》from實驗樓

實驗樓-Python課程?

《Learn to program in Python》fromCodecademy

《Learn Python the hard way》

Python|acadamy

Think Python: How to Think Like a Computer Scientist

Google's Python Class?

在線教育網站(Coursera網易云edx課堂騰訊課堂等)有哪些值得推薦的 Python 教程?

Introduction to Computer Science and Programming Using Python?




視頻教程:

莫煩Python基礎

《瘋狂的Python:快速入門精講》

《玩轉Python教程》

《零基礎入門學Python》

https://pythonprogramming.net/?


Python 文檔參考

Python學習教程

用Python做科學計算?

Python 入門指南python3.3?

Python基礎教程

Python 3 教程

Python 100例?
簡明 Python 教程

笨辦法學Python

Python3.x基礎學習資料整理


經典入門書籍:

中文書籍

《Head First Python(中文版)》

《Python基礎教程(第2版·修訂版)》

《笨辦法學Python(第三版)》

《簡明Python教程》

《Python編程實踐》

Python 與科學計算 & github

Python學習手冊(第4版) 中文版

英文書籍

Dive into Python

25本免費的Python電子書

9本免費的Python編程書


論壇or網站板塊:

Python開發者門戶

豆瓣小組:Python編程

伯樂在線

啄木鳥社區

Web開發者

Python中國?


可關注的微博:

@Python開發者

@一人一Python

@Python傳送門

@老齊Py

@愛可可-愛生活


日報

Python日報

Python Weekly

Pycoder's Weekly


Python 與圖像處理

Python for MATLAB Users: Promoting Open Source Computer Vision Research

python-for-matlab-usersDownload

Image Processing Using Python

python數字圖像處理

Python與圖像處理

Python圖像處理

https://www.youtube.com/watch?v=jbuYBURnVZY

PyScience

Scikit-image

https://www.youtube.com/watch?v=1_0JILf0ufg


醫學圖像處理

醫學圖像處理-雷毅?

AI 技術講座精選:利用深度學習分析醫學圖像?

Courses in Medical Image Analysis


Python 與數據分析:

教程 利用python進行數據分析


Python實踐教程

Pythoner—— “你像從前一樣”的Python學習筆記

Twitter數據情感分析

神經網絡實現手寫字符識別系統

Python學習路徑及練手項目合集?


Crossin的編程教室by@Crossin(將課程分門別類了)

Cross在線編程教室

Python 入門

Cross習題集

Python實戰

PyGame

Python在線教程

Python 新手引導

----------------------------------

如果你不懂編程,我建議你從下面的免費在線書籍開始學習,然后再進入后續的材料:

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

----------------------------------

**機器學習基礎技巧**

人們對吳恩達在 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學習機器學習**

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

Introducing IPython Notebook

Beginner's IPython Notebook Tutorial

Example notebook showing how to do statistics in 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?


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容