2018年將會是人工智能和機器學習快速發展的一年,有專家表示:相較之下Python比Java更加接地氣,也天然而然地成爲機器學習的首選語言git
在數據科學方面,Python的語法與數學語法最爲接近,所以是數學家或經濟學家等專業人士最容易理解和學習的語言。本文將羅列機器學習和數據科學應用程序中最有用的十大Python工具github
五大機器學習工具算法
一、Shogun編程
SHOGUN是一個機器學習工具箱,專一於支持向量機(SVM)的學習工具箱。它是用C++編寫的,早在1999年就已經建立,是最古老的機器學習工具之一,它提供了普遍的統一機器學習方法,旨在爲機器學習提供透明和可訪問的算法,併爲任何對此領域感興趣的人提供免費的機器學習工具。後端
Shogun提供了一個記錄完善的Python界面用於統一的大規模學習,並提供高性能速度。不過,Shogun的缺點就是它的API很難使用。(項目地址:https://github.com/shogun-too...)數組
二、Keras網絡
Keras是一個高級神經網絡API,提供了一個Python深度學習庫。對於任何初學者來講,這是機器學習的最佳選擇,由於與其餘庫相比,它提供了一種更簡單的表達神經網絡的方法。Keras由純Python編寫而成並基Tensorflow、Theano以及CNTK後端。數據結構
據官方網站稱,Keras側重於4個主要指導原則,即用戶友好性,模塊化,易擴展性和與Python協做。然而,就速度而言,Keras 相對仍是比較弱的。(項目地址:https://github.com/keras-team...)框架
三、scikit-learn機器學習
scikit-learn 是一個 Python 的機器學習項目。是一個簡單高效的數據挖掘和數據分析工具。基於 NumPy、SciPy 和 matplotlib 構建。Scikit-Learn提供了一致且易於使用的API網格以及隨機搜索。其主要優點算法簡單並且速度快。Scikit-learn的基本功能主要被分爲六大部分:分類,迴歸,聚類,數據降維,模型選擇和數據預處理(項目地址:https://github.com/scikit-lea...)
四、Pattern
Pattern是一個Web挖掘模塊,爲數據挖掘,天然語言處理,機器學習,網絡分析和網絡分析提供工具。它還附帶完善的文檔,有50多個示例以及經過350多個單元測試。最重要的是,它是免費的!(項目地址:https://github.com/clips/pattern)
五、Theano
Theano能夠說是最成熟的Python深度學習庫之一,Theano是以覺得希臘畢達哥拉斯哲學家和數學家畢達哥拉斯的妻子的名字命名,Theano的主要功能:與NumPy緊密集成,用符號式語言定義你想要的結果,該框架會對你的程序進行編譯,來高效運行於 GPU 或 CPU。
它還提供了定義,優化和評估數學表達式的工具,而且能夠在Theano上構建大量其餘庫,以探索其數據結構。儘管如此,使用Theano仍是有一些缺點的; 好比學習它的API可能須要很長時間,而另外一些人則認爲Theano大模型的編譯時間顯的它不夠高效(項目地址:https://github.com/Theano/Theano)
五大數據科學工具
一、SciPy
SciPy (pronounced "Sigh Pie") 是一個開源的數學、科學和工程計算包。SciPy使用NumPy,IPython或Pandas等各類軟件包爲經常使用的數學和科學編程任務提供庫。當你想操縱計算機上的數字並顯示或發佈結果時,此工具是一個很好的選擇,而且它也是免費的。(項目地址:https://github.com/scipy/scipy)
二、Dask
Dask 是一個用於分析計算的靈活的並行計算庫。一樣,經過更改只有幾行代碼,你能夠快速對現有代碼進行並行處理,由於它的DataFrame與Pandas庫中的相同,它的Array對象的工做方式相似於NumPy可以並行化以純Python編寫。(項目地址:https://github.com/dask/dask)
三、Numba
此工具是一種開源優化編譯器,它使用LLVM編譯器基礎結構將Python語法編譯爲機器碼。在數據科學應用中使用Numba的主要優點在於它使用NumPy數組來加速應用程序的能力,由於Numba是一個支持NumPy的編譯器。就像Scikit-Learn同樣,Numba也適用於機器學習應用。(項目地址:https://github.com/numba/numba)
四、HPAT
高性能分析工具包(HPAT)是一個基於編譯器的大數據框架。它將Python中的分析/機器學習代碼自動擴展到羣集/雲環境中的大數據分析和機器學習,並可使用@jit裝飾器優化特定功能。(項目地址:https://github.com/IntelLabs/...)
五、Cython
使用數學密碼或密碼循環運行的代碼時,Cython是您的最佳選擇。Cython是一款基於Pyrex的源代碼翻譯器,可快速生成Python擴展模塊(extention module)的工具。Cython語言很是接近Python語言,可是Cython還支持調用C函數並在變量和類屬性上聲明C類型。這容許編譯器從Cython代碼生成很是高效的C代碼。(項目地址:https://github.com/cython/cython)