機器學習(Machine Learning, ML)是一門多領域交叉學科,涉及機率論、統計學、逼近論、凸分析、算法複雜度理論等多門學科。專門研究計算機怎樣模擬或實現人類的學習行爲,以獲取新的知識或技能,從新組織已有的知識結構使之不斷改善自身的性能。機器學習牽涉的編程語言十分之廣,包括了MATLAB、Julia、R、Perl、Python、Clojure、Ruby等等。
爲了讓開發者更加普遍、深刻地瞭解機器學習,雲棲社區組織翻譯了GitHub Awesome Machine Learning 資源,涵蓋24種編程語言的機器學習的框架、庫以及其餘相關資料。
Lua
通用機器學習
Torch7
- cephes - 由Torch包裝的Cephes數學函數庫,由Stephen L. Moshier開發,庫中提供幷包裝了從Cephes數學庫中的180多個特殊的數學函數,是SciPy的核心,做用普遍;
- autograd - Autograd自動區分本機Torch代碼,受原始的Python版本的啓發;
- graph - Torch的圖形包;
- randomkit - 從Numpy提取的隨機數生成包,包裝成Torch可用形式;
- signal - 適用Torch-7的信號處理工具箱,包括FFT、DCT、Hilbert、cepstrums、stft等變換;
- nn - Torch的神經網絡包;
- nngraph - 此軟件包爲Torch7 nn庫提供圖形計算;
- nnx - 一個不穩定的實驗包,可以擴展Torch的內置nn庫;
- rnn - 可以擴展Torch nn庫的遞推神經網絡庫,包括RNNs、LSTMs、GRUs、BRNNs、BLSTMs等等;
- dpnn - 許多有用的功能,並非主要的神經網絡包的一部分;
- dp - 深度學習庫,專門使用Torch7分配進行合理化的研究和開發,它強調經過優雅地使用面向對象的設計模式,從而實現靈活性;
- optim - 針對Torch的優化庫,包括Adagrad、共軛梯度、LBFGS, RProp等算法;
- unsup - Torch中的無監督學習包,提供了與nn相兼容的模塊((LinearPsd、ConvPsd、AutoEncoder等),以及獨立的算法(k-均值、PCA);
- manifold - 操做流形的包;
- svm - Torch的支持向量機庫;
- lbfgs - 針對liblbfgs的FFT包;
- vowpalwabbit - torch的舊式vowpalwabbit接口;
- OpenGM - OpenGM是一個用於圖形化建模和推斷的C++庫, Lua binding提供了一種簡單的描繪圖形的方法,用Lua描繪,再用OpenGM優化;
- sphagetti - @MichaelMathieu開發的用於torch7的Spaghetti(稀疏線型)模塊;
- LuaSHKit - 將局部敏感哈希庫SHKit包裝成Lua可用形式;
- kernel smoothing - KNN,內核加權平均,以及局部線性迴歸平滑器;
- cutorch - Torch的CUDA實現;
- cunn - Torch的CUDA神經網絡實現;
- imgraph - Torch的圖像/圖形庫,該軟件包提供了在圖像上構造圖形、分割、組建樹、並轉換成圖像的例程;
- videograph - Torch的視頻/圖形庫,該軟件包提供了在視頻上構造圖形、分割、組建樹、並轉換成視頻的例程;
- saliency - 積分圖像的代碼和工具,一種基於快速積分直方圖找到興趣點的庫;
- stitch - 使用hugin拼接圖像,並將其應用以便視頻序列;
- sfm - 運動場景束調整/結構包;
- fex - Torch中用於特徵提取的軟件包,提供SIFT和dSIFT模塊;
- OverFeat - 當前最早進的通用密集特徵提取方式。
Numeric Lua
torch-datasets - 用於加載多個大衆數據集的腳本,數據集包括以下:
- BSR 500
- CIFAR-10
- COIL
- Street View House Numbers
- MNIST
- NORB
Atari2600 - 從Arcade學習環境的靜態幀中生成數據集的腳本。
Matlab
計算機視覺php
天然語言處理html
通用機器學習前端
數據分析/數據可視化python
- matlab_gbl – 處理圖形問題的MATLAB程序包;
- gamic - 圖形算法用純Matlab高效實現,以補充MatlabBGL的MEX函數;
.NETios
計算機視覺git
- OpenCVDotNet – OpenCV工程封裝器,用於.NET應用程序;
- Emgu CV - OpenCV的跨平臺封裝器,可在Mono中編譯,並運行於Windows、Linus、Mac OS X、 iOS、Android等系統;
- AForge.NET - 開放源碼C#框架,用於計算機視覺和人工智能領域的開發和研究人員,目前已轉移到GitHub發展;
- Accord.NET -連同AForge.NET,可爲Windows、Windows RT和Windows Phone提供圖像處理和計算機視覺算法,一些組件適用於Java和Android;
天然語言處理github
通用機器學習web
- Accord-Framework – 完整的Accord.NET框架,用於機器學習,計算機視覺,計算機試聽,信號處理和統計應用;
- Accord.MachineLearning –該軟件包是Accord.NET框架的一部分,包括支持向量機、決策樹、樸素貝葉斯模型、K均值、高斯混合模型和一些通用算法,例如適用於機器學習應用的RANSAC、交叉驗證和網格搜索;
- DiffSharp – 一個自動微分(AD)庫,可以提供精確高效,用於機器學習和優化應用的導數(梯度、Hessians、雅可比行列式、方向導數、無矩陣Hessian-和雅可比矢量積),操做能夠嵌套到任何級別,這意味着你能夠經過利用內部微分,來計算精確的高階導數,如超參數優化函數的應用;
- Vulpes - F#寫的Deep belief與深度學習的實現,並在Alea.cuBase下用CUDA GPU執行;
- Encog –一種先進的神經網絡和機器學習框架。 Encog包含用於建立各種網絡的類,同時也支持爲神經網絡規範和處理數據的類。它的訓練採用多線程彈性傳播。同時使用GPU加快處理時間,此外還提供了圖形化界面來幫助建模和訓練神經網絡;
- Neural Network Designer - DBMS管理系統和神經網絡的設計平臺,該設計應用程序使用WPF開發,是一個用戶界面,容許用戶設計本身的神經網絡,查詢網絡,建立和配置可以提出問題、並能從反饋中學習的聊天機器人,聊天機器人甚至能夠蒐集Internet上的信息,以便在返回時輸出,或者用於學習;
數據分析/數據可視化算法
- numl - 機器學習庫,用於簡化預測和聚類的標準建模技術;
- Math.NET Numerics - Math.NET工程的數值基礎,旨在爲科學、工程中的數值計算提供了方法和算法,支持 Windows, Linux 和 Mac上的.Net 4.0, .Net 3.5 和 Mono ,Silverlight 5, WindowsPhone/SL 8, WindowsPhone 8.1 以及裝有 PCL Portable Profiles 47 及 344的Windows 8, 裝有 Xamarin的Android/iOS;
- Sho – 用於數據分析和科學計算的交互環境,可使用編譯代碼(.NET)無縫鏈接腳本(用IronPython),以實現快速、靈活的原型設計;該環境包括線性代數、數據可視化等強大高效的庫,可供任何.NET語言使用,還爲快速開發提供了功能豐富的交互式shell。
Objectiveshell
通用機器學習
OCaml
通用機器學習
- Oml – 通用的統計學和機器學習庫;
- GPR - OCaml中高效的高斯過程迴歸算法;
- Libra-Tk – 用離散機率模型學習和推理的算法。
PHP
天然語言處理
通用機器學習
Python
計算機視覺
天然語言處理
- NLTK -用人類語言數據編寫Python程序的一個領先平臺;
- Pattern - Python編程語言的Web挖掘模塊,有用於天然語言處理、機器學習等的工具;
- Quepy –一個Python框架,將天然語言問題轉換成數據庫查詢語言;
- TextBlob – 給常規的天然語言處理(NLP)任務提供一致的API,以NLTK和Pattern爲基礎,並和二者都能很好兼容;
- YAlign – 語句校準器,較好地用於從比較語料庫中提取並行語句;
- jieba -中文分詞工具;
- SnowNLP –用於處理中文文本的庫;
- spammy - 建在NLTK之上的庫,用於垃圾郵件過濾;
- loso – 另外一箇中文分詞庫;
- genius - 基於條件隨機域的中文斷詞庫;
- KoNLPy – 用於韓語天然語言處理的Python包;
- nut -天然語言理解工具包;
- Rosetta -文本處理工具和包裝器(例如Vowpal Wabbit);
- BLLIP Parser - Python綁定的BLLIP天然語言解析器(也稱爲Charniak-Johnson解析器);
- PyNLPl - Python的天然語言處理庫,Python的通用NLP庫,還包含一些特定模塊,用於常規的NLP格式分析,尤爲是FoLiA和ARPA語言模型,Moses phrasetables,GIZA++ alignments等;
- python-ucto - Python綁定的ucto(包括Unicode,基於規則,各類語言的的標記生成器);
- python-frog - Python綁定的Frog,用於Dutch的NLP套件(詞性標註,詞性還原,依存分析,NER);
- python-zpar - Python綁定的ZPar,統計性的部分詞性標註,constiuency解析器和英語依存句法分析;
- colibri-core - Python綁定的C++庫,用於以快速和存儲器高效的方式提取並使用基本語言結構,例如-grams 和skipgrams;
- spaCy – 使用Python和Cython,NLP的產業優點;
- PyStanfordDependencies –Python接口,用於將Penn Treebank樹轉換成Stanford Dependencies;
通用機器學習
數據分析/數據可視化
雜項腳本/iPython筆記/代碼庫
Kaggle競賽源碼
Ruby
天然語言處理
通用機器學習
數據分析/數據可視化
雜項
Rust
通用機器學習
R
通用機器學習
數據分析/數據可視化
SAS
通用機器學習
數據分析/數據可視化
高性能機器學習
天然語言處理
示例和腳本
Scala
天然語言處理
- ScalaNLP - ScalaNLP一系列機器學習和數值計算庫的集合;
- Breeze - Breeze是Scala中的的數值處理庫;
- Chalk - Chalk是一個天然語言處理庫.
- FACTORIE - FACTORIE是可部署的機率建模工具包,用Scala實現的軟件庫。爲用戶提供簡潔的語言來建立關係因素圖,評估參數並進行推斷 。
數據分析/數據可視化
通用機器學習
Swift
通用機器學習
- Swift AI - Swift語言編寫的高度優化的人工智能和機器學習;
- BrainCore - 支持iOS和 OS X的神經網絡框架;
- DeepLearningKit--支持蘋果iOS OS X和tvOS系統的開源深度學習框架。目前支持在蘋果操做系統上利用Caffe訓練深度卷積網絡模型;
- AIToolbox - A toolbox framework of AI modules written in Swift: Swift語言編寫的人工智能(AI)模型工具框架:圖/樹、線性迴歸、支持向量機、神經網絡、PCA、KMeans、遺傳算法、MDP和 混合高斯模型。
以上爲「史上最全機器學習資料」的所有內容,更多精彩敬請期待。
譯者:劉崇鑫 校對:王殿進