机器学习 Python 库 Top 20
如今開源是創新的核心,推動著技術的飛速革新。本文會為你介紹 2016 年機器學習 Top 20 Python 開源項目,同時分析得出一些有趣的見解和發展趨勢。
KDnuggets 為您帶來?Github 上最新的 Python 機器學習開源項目前 20 名。奇怪的是,去年一些非常活躍的項目漸漸停滯了,因此沒能上榜,而 13 個新項目沖進了今年的 top 20(參考貢獻 contributions 和提交數 commits)。
2016 Top 20 Python?機器學習開源項目
1.?Scikit-learn?是一個簡單且高效的數據挖掘和數據分析工具,易上手,可以在多個上下文中重復使用。它基于NumPy, SciPy 和 matplotlib,開源,可商用(基于 BSD 許可)
提交數: 21486, 貢獻者: 736, Github 鏈接:?Scikit-learn
2.?Tensorflow?最初由谷歌機器智能科研組織中的谷歌大腦團隊(Google Brain Team)的研究人員和工程師開發。該系統設計的初衷是為了便于機器學習研究,能夠更快更好地將科研原型轉化為生產項目。
提交數: 10466, 貢獻者: 493, Github 鏈接:?Tensorflow
3.?Theano?允許高效地定義、優化以及評估涉及多維數組的數學表達式. 提交數: 24108, 貢獻者: 263, Github 鏈接:?Theano
4.?Caffe?是一個基于表達式,速度和模塊化原則創建的深度學習框架。它由伯克利視覺學習中心(BVLC, Berkeley Vision and Learning Center)和社區貢獻者共同開發。 提交數: 3801, 貢獻者: 215, Github 鏈接:?Caffe
5.?Gensim?是一個免費的 Python 庫,它包含可擴展的統計語義,分析純文本文檔的語義結構,以及檢索相似語義的文檔等功能。
提交數: 2702, 貢獻者: 145, Github 鏈接:?Gensim
6.?Pylearn2?是一個機器學習庫。它的大多數功能都是構建于Theano?之上的。這意味著你可以利用數學表達式自己寫 Pylearn2 插件(新模型,算法等等),Theano 會為你優化這些表達式使其更加穩定,你還可以選擇將其編譯到后端(CPU 或 GPU)。
提交數: 7100, 貢獻者: 115, Github 鏈接:?Pylearn2
7.?Statsmodels?是一個 Python 模塊,可以用來探索數據,估計統計模型,進行統計測試。對于不同類型的數據和模型估計,都有描述性統計,統計測試,繪圖功能和結果統計的詳細列表可用。
提交數: 8664, 貢獻者: 108, Github 鏈接:?Statsmodels
8.?Shogun?是一個機器學習工具箱,它提供了很多統一高效的機器學習方法。這個工具箱允許多個數據表達,算法類和通用工具無縫組合。
提交數: 15172 貢獻者: 105, Github 鏈接:?Shogun
9.?Chainer?是一個基于 Python 的獨立的深度學習模型開源框架。Chainer 提供了靈活、直觀且高性能的方法實現全方位的深度學習模型,包括循環神經網絡 (recurrent neural networks) 和變分自編碼器(variational autoencoders)這些最新的模型 。
提交數: 6298, 貢獻者: 84, Github 鏈接:?Chainer
10.?NuPIC?是一個基于 HTM 算法 (Hierarchical Temporal Memory) 的開源項目。HTM 的一部分已經通過實踐、測試和應用,另一部分仍在開發之中。
提交數: 6088, 貢獻者: 76, Github 鏈接:?NuPIC
11.?Neon?是?Nervana?公司一個基于 Python 的深度學習庫。它易于使用且具有超高的性能。
提交數: 875, 貢獻者: 47, Github 鏈接:?Neon
12.?Nilearn?是一個 Python 模塊,用于在神經成像 (NeuroImaging) 數據上進行快速簡單的統計學習。它利用?scikit-learn?Python 工具箱來處理多變量統計信息,包括預測建模,分類,解碼或連接分析.
提交數: 5254, 貢獻者: 46, Github 鏈接:?Nilearn
13.?Orange3?是一個同時適用于新手和數據專家的機器學習和數據可視化開源軟件,支持擁有大型工具箱的交互式數據分析工作流程。
提交數: 6356, 貢獻者: 40, Github 鏈接:?Orange3
14.?Pymc?是一個Python 模塊,它能實現貝葉斯統計模型和擬合算法,包括馬爾科夫鏈蒙特卡羅(Markov chain Monte Carlo)算法。它非常靈活,具有可擴展性,適用于處理一系列大規模問題。
提交數: 2701, 貢獻者: 37, Github 鏈接:?Pymc
15.?PyBrain?是一個模塊化的 Python 機器學習庫。它致力于為機器學習任務提供靈活易上手但功能強大的算法,和一系列用于測試和比較算法的預定義環境。
提交數: 984, 貢獻者: 31, Github 鏈接:?PyBrain
16.?Fuel?是一個數據管道框架(data pipeline framework),它為機器學習模型提供所需的數據。Blocks?和?Pylearn2?這兩個神經網絡庫都有計劃使用 Fuel。
提交數: 1053, 貢獻者: 29, Github 鏈接:?Fuel
17.PyMVPA?是一個 Python 包,旨在簡化大型數據集的統計學習分析。它提供了一個可擴展的框架和一個用于分類,回歸,特征選擇,數據導入導出等算法的高級接口。
提交數: 9258, 貢獻者: 26, Github 鏈接:?PyMVPA
18.?Annoy?(Approximate Nearest Neighbors?Oh Yeah) 是一個帶有 Python 綁定的 C++ 庫,用于在空間中找到和已知的查詢點臨近的點。它還可以創建大型的基于文件的只讀數據結構,并映射至內存,以便多個進程能共同使用相同的數據。
提交數: 365, Contributors: 24, Github 鏈接:?Annoy
19.?Deap?是一個創新的,仍在發展中的計算框架,用于快速構建原型和測試方法。它旨在使算法和數據結構更加清晰透明。它與并行機制(如多進程和?SCOOP?模塊)完美協調。
提交數: 1854, 貢獻者: 21, Github 鏈接:?Deap
20.?Pattern?是一個 Python 的網絡挖掘模塊。它綁定了數據挖掘(Google + Twitter + Wikipedia API, 網絡爬蟲, HTML DOM 解析器),自然語言處理 (詞性標記, n-gram 搜索, 語義分析, WordNet),機器學習(向量空間模型, k-means 聚類, Naive Bayes + k-NN + SVM 分類器) 和網絡分析(圖核心性 graph centrality 和可視化)等工具。
提交數: : 943, Contributors: 20 , Github 鏈接:?Pattern
在下面的圖表中,可以看到 PyMVPA 相較于其他項目擁有最高的貢獻率(contribution rate)。令人吃驚的是,Scikit-learn 雖然擁有最多的貢獻者,但是貢獻率卻很低。這種現象背后的原因可能是:PyMVPA 是新項目,正處于開發的早期階段,新功能開發,漏洞修補和重構等都能夠引導更多的提交。而 Scikit-learn 屬于比較舊且非常穩定的項目,改進和修復的空間更小。
在比較同時上榜 2015 和 2016 Top 20 的項目時,可以發現,Pattern,PyBrain 和 Pylearn2 沒有新的貢獻者(contributors)也沒有新的貢獻代碼。同時,還可以發現貢獻者數和提交數之間有顯著關聯。貢獻者數的增長可能會導致提交數的增長,我認為這是開源項目和社區的魔力——引領頭腦風暴,激發更多創意,開發更好的軟件工具。
以上是對 2016 Python 機器學習開源項目所做的分析,該分析基于項目貢獻者和提交數,作者是 KDnuggets 團隊的 Prasad 和 Gregory。
開源萬歲!分享萬歲!
總結
以上是生活随笔為你收集整理的机器学习 Python 库 Top 20的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Codeforces Round #25
- 下一篇: Ember入门指南——教程目录