Machine Learning之Python篇(一)
Machine Learning之Python篇
概述
教程
https://ljalphabeta.gitbooks.io/python-/content/
《Python機器學習》中文版
https://github.com/lawlite19/MachineLearning_Python
東南大學某研究生的github,包含大量ML算法示例。
https://github.com/lawlite19/DeepLearning_Python
上個哥們的DL示例
http://www.jianshu.com/p/eb9e3be977ed
Python數據分析之武林秘籍。這里包括了大量ML或DL的python工具包。
https://chrisalbon.com/
Chris Albon的個人主頁。包含大量ML/DL相關的note。
Chris Albon, UC Davis博士。在肯尼亞工作多年,援非的IT人。著有《Machine Learning with Python Cookbook: Practical Solutions from Preprocessing to Deep Learning》。
https://store.chrisalbon.com/
Chris Albon寫的ML卡片書。
https://github.com/CharlesPikachu/Games
一個python制作游戲的示例庫,包括使用AI玩游戲(DQN等)
https://github.com/CharlesPikachu/AIGames
上個作者的另一個python+AI+游戲的代碼庫
https://github.com/HuberTRoy/leetCode
Python實現各種基礎算法
Anaconda
Anaconda是一個科學計算方面的python發行版,下面提到的所有工具都可以通過Anaconda一站式安裝。
官網:
https://www.anaconda.com/download/
基本命令:
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
參考:
http://www.cnblogs.com/zhusleep/p/5616099.html
Anaconda安裝更新庫
https://segmentfault.com/a/1190000004020387
Python多版本切換工具-Pyenv\virtualenv及Anaconda科學計算環境的配置
http://www.jianshu.com/p/d2e15200ee9b
Anaconda多環境多版本python配置指導
virtualenv
安裝:
pip3 install virtualenv
創建env:
virtualenv --no-site-packages venv
使用:
source venv/bin/activate
NumPy
NumPy是python語言所有數學計算庫的基礎。它主要提供了矩陣運算的功能。
官網:
http://www.numpy.org/
教程:
https://docs.scipy.org/doc/numpy-dev/user/quickstart.html
API參考:
https://docs.scipy.org/doc/numpy/reference/
quickstart中文版:
https://mp.weixin.qq.com/s/q0jSrxRRQAB7FUUqgD5H6A
文件存取
原始二進制文件:tofile()和fromfile()
NumPy專用的格式文件(.npy或.npz,它和原始二進制文件的區別在于:前者包含維度和類型信息,而后者只有數據本身):save()和load()
文本文件:savetxt()和loadtxt()
參考:
http://www.cnblogs.com/dmir/p/5009075.html
python:numpy(文件存取)
數據類型轉換
類型轉換:c = b.astype(int)
把A類型看做B類型,比如將一個float64的數,看做8個單字節的數:a.dtype = 'int8'
參考:
http://www.cnblogs.com/hhh5460/p/5129032.html
numpy數據類型dtype轉換
參考
https://mp.weixin.qq.com/s/FVI3zEp4it-fd99-3MU9vA
從數組到矩陣的跡,NumPy常見使用大總結
https://www.machinelearningplus.com/101-numpy-exercises-python/
101 NumPy Exercises for Data Analysis。這里包含了101個和numpy有關的問題,并附有答案。
https://mp.weixin.qq.com/s/DiFTV29gvMlosoy2HaPQjw
用Python做圖像處理(3)
https://mp.weixin.qq.com/s/qMiNGHHZMnPeFqXFz9c6rQ
numpy ndarray之內功心法,理解高維操作!
SciPy
SciPy提供了一些更高階的數學運算庫,比如:積分、插值、信號處理、傅立葉變換、矩陣特征值、統計計算等。
SciPy提供的功能主要仍局限于數學運算,而并未提升到算法的層面。這也是它和scikit-learn或其他高級庫的差別所在。
官網:
http://www.scipy.org/
API參考:
https://docs.scipy.org/doc/scipy/reference/
Gaussian filter
w = 2int(truncatesigma + 0.5) + 1
參考:
https://stackoverflow.com/questions/25216382/gaussian-filter-in-scipy
Gaussian filter in scipy
Scikit-learn
Scikit-learn提供了常見的機器學習算法的實現。
官網:
http://scikit-learn.org/stable/index.html
教程:
http://scikit-learn.org/stable/user_guide.html
API參考:
http://scikit-learn.org/stable/tutorial/index.html
http://scikit-learn.org/stable/modules/classes.html
中文文檔:
http://sklearn.apachecn.org
Matplotlib
Matplotlib是一個高階的圖形庫,主要提供生成圖表等數據可視化方面的功能。
官網:
http://matplotlib.org/
API參考:
http://matplotlib.org/1.5.3/api/index.html
參考:
https://mp.weixin.qq.com/s/mpj1QpWpnGm8117p3cEWZw
如何優雅而高效地使用Matplotlib實現數據可視化
https://mp.weixin.qq.com/s/LBrlXEhGYOx1aPFZzQcyTQ
5種快速易用的Python Matplotlib數據可視化方法
https://mp.weixin.qq.com/s/aBi1PTEumRs0frUpb_uYrA
用Python做圖像處理(2)
https://mp.weixin.qq.com/s/3VgFKiUOFvtWmqg1BO9xGw
matplotlib–python的數據可視化
Pandas
Pandas是一個數據分析方面的工具庫。它提供的Series(1-dimensional)和DataFrame(2-dimensional)數據結構,可以提供類似sql的數據操作和查詢的功能。
官網:
http://pandas.pydata.org/
文檔:
http://pandas.pydata.org/pandas-docs/stable/
API參考:
http://pandas.pydata.org/pandas-docs/stable/api.html
參考:
http://www.cnblogs.com/chaosimple/p/4153083.html
十分鐘搞定pandas
http://pandas.pydata.org/pandas-docs/stable/comparison_with_sql.html
Pandas和SQL的比較
https://mp.weixin.qq.com/s/XIQ5EpQcYLxmRBuaTCZFzg
一行代碼,Pandas秒變分布式,快速處理TB級數據
https://mp.weixin.qq.com/s/fXI5suCVna6fBxPnVyKevw
淺談NumPy和Pandas庫
https://mp.weixin.qq.com/s/1xHeXs9gM3LzEzCUz0jhXA
簡單實用的pandas技巧:如何將內存占用降低90%
http://wiki.jikexueyuan.com/project/start-learning-python/311.html
python科學計算之Pandas使用
https://mp.weixin.qq.com/s/L95slIQ8so5IWpIpy7ZHEQ
23種Pandas核心操作,你需要過一遍嗎?
https://mp.weixin.qq.com/s/CAddyz0qQt8SY56VOtcpJA
AI開發最大升級:Pandas與Scikit-Learn合并,新工作流程更簡單強大!
mysql
http://www.runoob.com/python/python-mysql.html
python操作mysql數據庫
chainer
chainer是一個日本公司Preferred Networks寫的基于python的深度學習框架。
官網:
https://chainer.org/
代碼:
https://github.com/chainer/chainer
Preferred Networks是日本目前最強的AI創業公司,估值已經超過20億美元。在工業機器人領域具有很強的實力。
它推出的PaintsChainer是一個給黑白線稿上色的App。
官網:
https://github.com/pfnet/PaintsChainer
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和數據文本交換格式。
官網:
https://jupyter.org/
安裝:
pip install jupyter
運行:
jupyter notebook
參見:
https://mp.weixin.qq.com/s/UXlPhX3Vb2yqocpUH_3W5w
Jupyter項目的前世今生
https://mp.weixin.qq.com/s/aJRVh7BWOMq4KCoBMtLGGw
快速學習Jupyter Notebook
https://blog.csdn.net/u011493486/article/details/55001477
Jupyter中顯示matplotlib的圖片
https://www.cnblogs.com/nxld/p/6566380.html
Jupyter Notebook快速入門
TuShare
TuShare是一個免費、開源的python財經數據接口包。主要實現對股票等金融數據從數據采集、清洗加工 到 數據存儲的過程,能夠為金融分析人員提供快速、整潔、和多樣的便于分析的數據,為他們在數據獲取方面極大地減輕工作量,使他們更加專注于策略和模型的研究與實現上。
官網:
http://tushare.org/
skimage
skimage相當于python版本的OpenCV。
官網:
http://scikit-image.org/
參考:
https://buptldy.github.io/2016/03/31/2016-03-31-Skimage hog/
Compute the HOG descriptor by skimage
Numba
NumPy的一個高速版本,能完成前者大部分的功能。
官網:
http://numba.pydata.org/
參考:
https://mp.weixin.qq.com/s/5peMiGXNnviAjMP76tV3pw
Python高性能計算庫——Numba
Face Recognition
這是一個人臉識別的軟件包。
代碼:
https://github.com/ageitgey/face_recognition
參考:
https://mp.weixin.qq.com/s/QcMsSsZY7TcNQ3G57p8eyQ
3行Python代碼完成人臉識別
Luminoth
Luminoth是一個開源的計算機視覺工具包,目前支持目標探測和圖像分類,但以后會有更多的擴展。該工具包在TensorFlow和Sonnet上用Python搭建而成。
代碼:
https://github.com/tryolabs/luminoth
Tangent
Tangent是一個用于自動微分的源到源Python庫。
官網:
https://github.com/google/tangent
參考:
https://mp.weixin.qq.com/s/CExdIdtUxZi4c2B39xdYJA
谷歌開源Tangent
PIL
PIL:Python Imaging Library,已經是Python平臺事實上的圖像處理標準庫了。PIL功能非常強大,但API卻非常簡單易用。
官網:
http://pythonware.com/products/pil/
安裝:
sudo apt install python-imaging
文檔:
http://www.effbot.org/imagingbook/pil-index.htm
參考:
https://mp.weixin.qq.com/s/lJYzxehwo3K2APB2l_WeTA
用Python做圖像處理(1)
VisPy
VisPy可以算的上是Matplotlib的威力加強版,它添加了對GPU、3D和大數據的支持。
官網:
http://vispy.org/
參考:
https://mp.weixin.qq.com/s/yduK_XKQ-qhiYTNl-YZMFg
利用Python實現卷積神經網絡的可視化
Seaborn
Seaborn是另一個非常棒的Matplotlib的威力加強版,專注于統計繪圖,并可無縫對接Pandas庫。
官網:
https://seaborn.pydata.org
參考:
https://mp.weixin.qq.com/s/hPbTZHR2iDH4t1eQghNvUQ
數據可視化詳解+代碼演練
mlpy
mlpy是一個開源的ML庫。只是它最近的一次更新,已經是2012年的事情了。
官網:
http://mlpy.sourceforge.net
Pyecharts
pyecharts是一個用于生成Echarts圖表的類庫。Echarts是百度開源的一個數據可視化JS庫。
官網:
http://pyecharts.org/
參考:
https://mp.weixin.qq.com/s/3T594c4DzuRmPW5A4zu8Dg
Pyecharts:極其強大的Python數據可視化模塊
ImageAI
ImageAI是一個CV方面的庫,集成了大量的DL模型,其目標是使用數十行代碼完成一個CV任務。
代碼:
https://github.com/OlafenwaMoses/ImageAI
總結
以上是生活随笔為你收集整理的Machine Learning之Python篇(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Kaldi(一)
- 下一篇: 深度学习(二十九)——Normaliza