1. 程式人生 > >Machine Learning之Python篇(一)

Machine Learning之Python篇(一)

Machine Learning之Python篇

概述

教程

《Python機器學習》中文版

東南大學某研究生的github,包含大量ML演算法示例。

上個哥們的DL示例

Python資料分析之武林祕籍。這裡包括了大量ML或DL的python工具包。

Chris Albon的個人主頁。包含大量ML/DL相關的note。

Chris Albon, UC Davis博士。在肯亞工作多年,援非的IT人。著有《Machine Learning with Python Cookbook: Practical Solutions from Preprocessing to Deep Learning》。

Chris Albon寫的ML卡片書。

一個python製作遊戲的示例庫,包括使用AI玩遊戲(DQN等)

上個作者的另一個python+AI+遊戲的程式碼庫

Python實現各種基礎演算法

Anaconda

Anaconda是一個科學計算方面的python發行版,下面提到的所有工具都可以通過Anaconda一站式安裝。

官網:

基本命令:

conda update --all

conda update conda

conda update anaconda

Anaconda同時也支援多個Python版本的並存和切換。它的底層用到了virtualenv。這個功能在Ubuntu下意義不太大,因為後者的apt工具已經維護好了2.x和3.x兩個分支,除非你想同時支援兩個不同的3.x分支。但在Windows下,由於包管理器的缺位,這個問題是很難解決的。

建立一個virtualenv:

conda create -n python2 python=2.7

這條命令會在Anaconda/envs下建立一個python2資料夾。

將命令列環境切換到該版本:

activate python2

參考:

Anaconda安裝更新庫

Python多版本切換工具-Pyenv\virtualenv及Anaconda科學計算環境的配置

Anaconda多環境多版本python配置指導

virtualenv

安裝:

pip3 install virtualenv

建立env:

virtualenv --no-site-packages venv

使用:

source venv/bin/activate

NumPy

NumPy是python語言所有數學計算庫的基礎。它主要提供了矩陣運算的功能。

官網:

教程:

API參考:

quickstart中文版:

檔案存取

原始二進位制檔案:tofile()和fromfile()

NumPy專用的格式檔案(.npy或.npz,它和原始二進位制檔案的區別在於:前者包含維度和型別資訊,而後者只有資料本身):save()和load()

文字檔案:savetxt()和loadtxt()

參考:

python:numpy(檔案存取)

資料型別轉換

型別轉換:c = b.astype(int)

把A型別看做B型別,比如將一個float64的數,看做8個單位元組的數:a.dtype = 'int8'

參考:

numpy資料型別dtype轉換

參考

從陣列到矩陣的跡,NumPy常見使用大總結

101 NumPy Exercises for Data Analysis。這裡包含了101個和numpy有關的問題,並附有答案。

用Python做影象處理(3)

numpy ndarray之內功心法,理解高維操作!

SciPy

SciPy提供了一些更高階的數學運算庫,比如:積分、插值、訊號處理、傅立葉變換、矩陣特徵值、統計計算等。

SciPy提供的功能主要仍侷限於數學運算,而並未提升到演算法的層面。這也是它和scikit-learn或其他高階庫的差別所在。

官網:

API參考:

Gaussian filter

w = 2int(truncatesigma + 0.5) + 1

參考:

Gaussian filter in scipy

Scikit-learn

Scikit-learn提供了常見的機器學習演算法的實現。

官網:

教程:

API參考:

中文文件:

Matplotlib

Matplotlib是一個高階的圖形庫,主要提供生成圖表等資料視覺化方面的功能。

官網:

API參考:

參考:

如何優雅而高效地使用Matplotlib實現資料視覺化

5種快速易用的Python Matplotlib資料視覺化方法

用Python做影象處理(2)

matplotlib–python的資料視覺化

Pandas

Pandas是一個數據分析方面的工具庫。它提供的Series(1-dimensional)和DataFrame(2-dimensional)資料結構,可以提供類似sql的資料操作和查詢的功能。

官網:

文件:

API參考:

參考:

十分鐘搞定pandas

Pandas和SQL的比較

一行程式碼,Pandas秒變分散式,快速處理TB級資料

淺談NumPy和Pandas庫

簡單實用的pandas技巧:如何將記憶體佔用降低90%

python科學計算之Pandas使用

23種Pandas核心操作,你需要過一遍嗎?

AI開發最大升級:Pandas與Scikit-Learn合併,新工作流程更簡單強大!

mysql

python操作mysql資料庫

chainer

chainer是一個日本公司Preferred Networks寫的基於python的深度學習框架。

官網:

程式碼:

Preferred Networks是日本目前最強的AI創業公司,估值已經超過20億美元。在工業機器人領域具有很強的實力。

它推出的PaintsChainer是一個給黑白線稿上色的App。

官網:

iPython

ipython是一個python的互動式 shell,比預設的python shell 好用得多,支援變數自動補全,自動縮排,支援 bash shell 命令,內建了許多很有用的功能和函式。

在較新的ipython版本中,添加了ipython notebook的功能,彌補了ipython shell下程式碼不易儲存等缺點,並且在使用–pylab inline選項後,可以在程式碼執行後立即顯示執行結果(包括圖片,資料表格等),因此在資料分析中運用十分廣泛。

sudo apt-get install ipython ipython-notebook

Jupyter

Jupyter是iPython的後繼專案,它不僅支援python語言,還支援其他50多種互動式語言。成為目前最流行的互動式shell和資料文字交換格式。

官網:

安裝:

pip install jupyter

執行:

jupyter notebook

參見:

Jupyter專案的前世今生

快速學習Jupyter Notebook

Jupyter中顯示matplotlib的圖片

Jupyter Notebook快速入門

TuShare

TuShare是一個免費、開源的python財經資料介面包。主要實現對股票等金融資料從資料採集、清洗加工 到 資料儲存的過程,能夠為金融分析人員提供快速、整潔、和多樣的便於分析的資料,為他們在資料獲取方面極大地減輕工作量,使他們更加專注於策略和模型的研究與實現上。

官網:

skimage

skimage相當於python版本的OpenCV。

官網:

參考:

Compute the HOG descriptor by skimage

Numba

NumPy的一個高速版本,能完成前者大部分的功能。

官網:

參考:

Python高效能運算庫——Numba

Face Recognition

這是一個人臉識別的軟體包。

程式碼:

參考:

3行Python程式碼完成人臉識別

Luminoth

Luminoth是一個開源的計算機視覺工具包,目前支援目標探測和影象分類,但以後會有更多的擴充套件。該工具包在TensorFlow和Sonnet上用Python搭建而成。

程式碼:

Tangent

Tangent是一個用於自動微分的源到源Python庫。

官網:

參考:

谷歌開源Tangent

PIL

PIL:Python Imaging Library,已經是Python平臺事實上的影象處理標準庫了。PIL功能非常強大,但API卻非常簡單易用。

官網:

安裝:

sudo apt install python-imaging

文件:

參考:

用Python做影象處理(1)

VisPy

VisPy可以算的上是Matplotlib的威力加強版,它添加了對GPU、3D和大資料的支援。

官網:

參考:

利用Python實現卷積神經網路的視覺化

Seaborn

Seaborn是另一個非常棒的Matplotlib的威力加強版,專注於統計繪圖,並可無縫對接Pandas庫。

官網:

參考:

資料視覺化詳解+程式碼演練

mlpy

mlpy是一個開源的ML庫。只是它最近的一次更新,已經是2012年的事情了。

官網:

Pyecharts

pyecharts是一個用於生成Echarts圖表的類庫。Echarts是百度開源的一個數據視覺化JS庫。

官網:

參考:

Pyecharts:極其強大的Python資料視覺化模組

ImageAI

ImageAI是一個CV方面的庫,集成了大量的DL模型,其目標是使用數十行程式碼完成一個CV任務。

程式碼: