天天看點

2017年十大最受歡迎機器學習Python庫

每年的十二月是每個人review過去一年成就的時候,在看自己成就的同時,也同時為未來做好打算。對于程式員來說,十二月通常是回顧今年釋出的開源庫或者是最近流行的開源庫,因為它們是在未來一段時間内解決我們問題的絕佳工具。

2017年十大最受歡迎機器學習Python庫

AI的快速發展,讓機器學習走向了巅峰,今天我們就借此盤點一下2017年最受歡迎的機器學習庫(ML),希望你能夠在這裡尋找到你未來一段時間内的“利器”。

今年Facebook推出的DLT架構PyTorch,在深度學習社群中很受歡迎。PyTorch是建構在流行的Torch架構之上,尤其是它是基于Python的。考慮到過去幾年人們一直在使用Python進行資料科學研究,這也是深度學習庫大部分是使用Python的原因。

最值得注意的是,PyTorch已經成為了衆多研究人員的首選架構之一,因為它實作了新穎的動态計算圖範例(Dynamic

Caffe2支援分布式訓練、部署,支援最新的CPU和CUDA的硬體。雖然PyTorch可能更适合研究,但Caffe2更适合大規模部署。其實,你可以在PyTorch中建構和訓練模型,同時使用Caffe2進行部署!這不是很好嗎?

Pendulum的優點之一是它是Python标準datetime類直接替代品,是以你可以輕松地将其與現有代碼內建,并且隻有在需要時才能使用其功能。作者特别注意確定時區能夠正确處理,預設情況下使每個執行個體時區感覺自己的時區。你也将得到一個擴充timedelta,這樣日期時間算術更容易。

Python中有許多庫用于研究資料科學和ML,但是當你的資料是随着時間的推移而變化的度量(例如股票價格,儀器的測量值等等)時,這對于大部分庫來說是一個比較棘手的問題。

PyFlux是一個專門為<b>時間序列而開發的</b> Python開源庫。時間序列研究是統計學和計量經濟學的一個子領域,目标可以描述時間序列如何表現(以潛在的因素或興趣的特征來表示),也可以借此預測未來的行為。

<b>7. </b><b>Fire</b><b></b>

Fire是一個開源的庫,可以為任何Python項目自動生成一個CLI,關鍵是自動,你幾乎不需要編寫任何代碼或文檔來建構你的CLI!你隻需要調用一個Fire方法并把它所需要建構的傳遞給CLI。

在理想的情況下,我們會有完美平衡的資料集,但不幸的是,現實世界并不是這樣的,某些任務擁有非常不平衡的資料。例如,在預測信用卡交易中的欺詐行為時,你預計絕大多數交易(99.9%)是合法的。天真地訓練ML算法會導緻令人失望的性能,是以在處理這些類型的資料集時需要特别小心。

如果你需要搜尋某些文本并将其替換為其他内容(如大多數資料清理流程中),則通常會轉為正規表達式。通常情況下,正規表達式考研完美的解決問題。但是有時會發生這樣的情況:你需要搜尋的術語數量是成千上萬,然後,正規表達式可能變得非常緩慢。這時FlashText是一個更好的選擇,它使整個操作的運作時間大大提高了(從5天到15分鐘)。FlashText的優點在于無論搜尋條件有多少,運作時都是一樣的,而正規表達式中運作時将随着條件數幾乎呈線性增長。

FlashText證明了算法和資料結構設計的重要性,即使對于簡單的問題,更好的算法也可以輕松超越最快的CPU。

現實生活中圖像無處不在,了解其内容對于多個應用程式來說是至關重要的。值得慶幸的是,由于DL的發展,圖像處理技術已經進步很多。

<b>其他優秀的</b><b>Python</b><b>庫:</b><b></b>

假如你很喜歡使用scikit-learn的API,但是遇到了需要使用PyTorch來完成工作。不要擔心,skorch是一個封裝,可以通過類似sklearn的接口提供PyTorch程式設計。如果你熟悉這些庫,那麼文法将很簡單易懂。通過skorch,你會得到一些抽象的代碼,是以你可以把更多的精力放在真正重要的事情上,比如做資料科學。

文章原标題《top-10-python-libraries-of-2017》,

作者:Alan Descoins  部落格位址:https://tryolabs.com/blog/authors/alan-descoins/

譯者:虎說八道,審閱: