2018年將會(huì)是人工智能和機(jī)器學(xué)習(xí)快速發(fā)展的一年,有專(zhuān)家表示:相較之下Python比Java更加接地氣,也自然而然地成為機(jī)器學(xué)習(xí)的首選語(yǔ)言
在數(shù)據(jù)科學(xué)方面榴鼎,Python的語(yǔ)法與數(shù)學(xué)語(yǔ)法最為接近物舒,因此是數(shù)學(xué)家或經(jīng)濟(jì)學(xué)家等專(zhuān)業(yè)人士最容易理解和學(xué)習(xí)的語(yǔ)言。本文將羅列機(jī)器學(xué)習(xí)和數(shù)據(jù)科學(xué)應(yīng)用程序中最有用的十大Python工具
五大機(jī)器學(xué)習(xí)工具
1贞言、Shogun
SHOGUN是一個(gè)機(jī)器學(xué)習(xí)工具箱,專(zhuān)注于支持向量機(jī)(SVM)的學(xué)習(xí)工具箱阀蒂。它是用C++編寫(xiě)的该窗,早在1999年就已經(jīng)創(chuàng)建弟蚀,是最古老的機(jī)器學(xué)習(xí)工具之一,它提供了廣泛的統(tǒng)一機(jī)器學(xué)習(xí)方法酗失,旨在為機(jī)器學(xué)習(xí)提供透明和可訪問(wèn)的算法义钉,并為任何對(duì)此領(lǐng)域感興趣的人提供免費(fèi)的機(jī)器學(xué)習(xí)工具。
Shogun提供了一個(gè)記錄完善的Python界面用于統(tǒng)一的大規(guī)模學(xué)習(xí)规肴,并提供高性能速度捶闸。不過(guò),Shogun的缺點(diǎn)就是它的API很難使用拖刃。(項(xiàng)目地址:https://github.com/shogun-toolbox/shogun)
2鉴嗤、Keras
Keras是一個(gè)高級(jí)神經(jīng)網(wǎng)絡(luò)API,提供了一個(gè)Python深度學(xué)習(xí)庫(kù)序调。對(duì)于任何初學(xué)者來(lái)說(shuō)醉锅,這是機(jī)器學(xué)習(xí)的最佳選擇,因?yàn)榕c其他庫(kù)相比发绢,它提供了一種更簡(jiǎn)單的表達(dá)神經(jīng)網(wǎng)絡(luò)的方法硬耍。Keras由純Python編寫(xiě)而成并基Tensorflow、Theano以及CNTK后端边酒。
據(jù)官方網(wǎng)站稱(chēng)经柴,Keras側(cè)重于4個(gè)主要指導(dǎo)原則,即用戶(hù)友好性墩朦,模塊化坯认,易擴(kuò)展性和與Python協(xié)作。然而氓涣,就速度而言牛哺,Keras 相對(duì)還是比較弱的。(項(xiàng)目地址:https://github.com/keras-team/keras)
3劳吠、scikit-learn
scikit-learn 是一個(gè) Python 的機(jī)器學(xué)習(xí)項(xiàng)目引润。是一個(gè)簡(jiǎn)單高效的數(shù)據(jù)挖掘和數(shù)據(jù)分析工具⊙魍妫基于 NumPy淳附、SciPy 和 matplotlib 構(gòu)建。Scikit-Learn提供了一致且易于使用的API網(wǎng)格以及隨機(jī)搜索蠢古。其主要優(yōu)勢(shì)算法簡(jiǎn)單而且速度快奴曙。Scikit-learn的基本功能主要被分為六大部分:分類(lèi),回歸草讶,聚類(lèi)洽糟,數(shù)據(jù)降維,模型選擇和數(shù)據(jù)預(yù)處理(項(xiàng)目地址:https://github.com/scikit-learn/scikit-learn)
4、Pattern
Pattern是一個(gè)Web挖掘模塊脊框,為數(shù)據(jù)挖掘颁督,自然語(yǔ)言處理践啄,機(jī)器學(xué)習(xí)浇雹,網(wǎng)絡(luò)分析和網(wǎng)絡(luò)分析提供工具。它還附帶完善的文檔屿讽,有50多個(gè)示例以及通過(guò)350多個(gè)單元測(cè)試昭灵。最重要的是,它是免費(fèi)的7ヌ浮(項(xiàng)目地址:https://github.com/clips/pattern)
5烂完、Theano
Theano可以說(shuō)是最成熟的Python深度學(xué)習(xí)庫(kù)之一,Theano是以以為希臘畢達(dá)哥拉斯哲學(xué)家和數(shù)學(xué)家畢達(dá)哥拉斯的妻子的名字命名诵棵,Theano的主要功能:與NumPy緊密集成抠蚣,用符號(hào)式語(yǔ)言定義你想要的結(jié)果,該框架會(huì)對(duì)你的程序進(jìn)行編譯履澳,來(lái)高效運(yùn)行于 GPU 或 CPU嘶窄。
它還提供了定義,優(yōu)化和評(píng)估數(shù)學(xué)表達(dá)式的工具距贷,并且可以在Theano上構(gòu)建大量其他庫(kù)柄冲,以探索其數(shù)據(jù)結(jié)構(gòu)。盡管如此忠蝗,使用Theano還是有一些缺點(diǎn)的; 比如學(xué)習(xí)它的API可能需要很長(zhǎng)時(shí)間现横,而另一些人則認(rèn)為T(mén)heano大模型的編譯時(shí)間顯的它不夠高效(項(xiàng)目地址:https://github.com/Theano/Theano)
五大數(shù)據(jù)科學(xué)工具
1、SciPy
SciPy (pronounced "Sigh Pie") 是一個(gè)開(kāi)源的數(shù)學(xué)阁最、科學(xué)和工程計(jì)算包戒祠。SciPy使用NumPy,IPython或Pandas等各種軟件包為常用的數(shù)學(xué)和科學(xué)編程任務(wù)提供庫(kù)速种。當(dāng)你想操縱計(jì)算機(jī)上的數(shù)字并顯示或發(fā)布結(jié)果時(shí)得哆,此工具是一個(gè)很好的選擇,并且它也是免費(fèi)的哟旗。(項(xiàng)目地址:https://github.com/scipy/scipy)
2贩据、Dask
Dask 是一個(gè)用于分析計(jì)算的靈活的并行計(jì)算庫(kù)。同樣闸餐,通過(guò)更改只有幾行代碼饱亮,你可以快速對(duì)現(xiàn)有代碼進(jìn)行并行處理,因?yàn)樗腄ataFrame與Pandas庫(kù)中的相同舍沙,它的Array對(duì)象的工作方式類(lèi)似于NumPy能夠并行化以純Python編寫(xiě)近上。(項(xiàng)目地址:https://github.com/dask/dask)
3、Numba
此工具是一種開(kāi)源優(yōu)化編譯器拂铡,它使用LLVM編譯器基礎(chǔ)結(jié)構(gòu)將Python語(yǔ)法編譯為機(jī)器碼壹无。在數(shù)據(jù)科學(xué)應(yīng)用中使用Numba的主要優(yōu)勢(shì)在于它使用NumPy數(shù)組來(lái)加速應(yīng)用程序的能力葱绒,因?yàn)镹umba是一個(gè)支持NumPy的編譯器。就像Scikit-Learn一樣斗锭,Numba也適用于機(jī)器學(xué)習(xí)應(yīng)用地淀。(項(xiàng)目地址:https://github.com/numba/numba)
4、HPAT
高性能分析工具包(HPAT)是一個(gè)基于編譯器的大數(shù)據(jù)框架岖是。它將Python中的分析/機(jī)器學(xué)習(xí)代碼自動(dòng)擴(kuò)展到群集/云環(huán)境中的大數(shù)據(jù)分析和機(jī)器學(xué)習(xí)帮毁,并可以使用@jit裝飾器優(yōu)化特定功能。(項(xiàng)目地址:https://github.com/IntelLabs/hpat)
5豺撑、Cython
使用數(shù)學(xué)密碼或密碼循環(huán)運(yùn)行的代碼時(shí)烈疚,Cython是您的最佳選擇。Cython是一款基于Pyrex的源代碼翻譯器聪轿,可快速生成Python擴(kuò)展模塊(extention module)的工具爷肝。Cython語(yǔ)言非常接近Python語(yǔ)言,但是Cython還支持調(diào)用C函數(shù)并在變量和類(lèi)屬性上聲明C類(lèi)型陆错。這允許編譯器從Cython代碼生成非常高效的C代碼灯抛。(項(xiàng)目地址:https://github.com/cython/cython)