28款GitHub最流行的開源機器學習項目,推薦GitHub上10 個開源深度學習框架

 

 

 

 

20 個頂尖的 Python 機器學習開源項目
機器學習   2015-06-08 22:44:30 發佈
您的評價:	
     
0.0	
收藏     1收藏
咱們在Github上的貢獻者和提交者之中檢查了用Python語言進行機器學習的開源項目,並挑選出最受歡迎和最活躍的項目。」

 


圖1:在GitHub上用Python語言機器學習的項目,圖中顏色所對應的Bob, Iepy, Nilearn, 和NuPIC擁有最高的價值。

1. Scikit-learn

www.github.com/scikit-learn/scikit-learn

Scikit-learn 是基於Scipy爲機器學習建造的的一個Python模塊,他的特點就是多樣化的分類,迴歸和聚類的算法包括支持向量機,邏輯迴歸,樸素貝葉斯分類器,隨機森林,Gradient Boosting,聚類算法和DBSCAN。並且也設計出了Python numerical和scientific libraries Numpy and Scipy


2.Pylearn2

www.github.com/lisa-lab/pylearn2

Pylearn是一個讓機器學習研究簡單化的基於Theano的庫程序。


3.NuPIC

www.github.com/numenta/nupic

NuPIC是一個以HTM學習算法爲工具的機器智能平臺。HTM是皮層的精確計算方法。HTM的核心是基於時間的持續學習算法和儲存和撤銷的時空模式。NuPIC適合於各類各樣的問題,尤爲是檢測異常和預測的流數據來源。


4. Nilearn

www.github.com/nilearn/nilearn

Nilearn 是一個可以快速統計學習神經影像數據的Python模塊。它利用Python語言中的scikit-learn 工具箱和一些進行預測建模,分類,解碼,連通性分析的應用程序來進行多元的統計。


5.PyBrain

www.github.com/pybrain/pybrain

Pybrain是基於Python語言強化學習,人工智能,神經網絡庫的簡稱。 它的目標是提供靈活、容易使用而且強大的機器學習算法和進行各類各樣的預約義的環境中測試來比較你的算法。


6.Pattern

www.github.com/clips/pattern

Pattern 是Python語言下的一個網絡挖掘模塊。它爲數據挖掘,天然語言處理,網絡分析和機器學習提供工具。它支持向量空間模型、聚類、支持向量機和感知機而且用KNN分類法進行分類。


7.Fuel

www.github.com/mila-udem/fuel

Fuel爲你的機器學習模型提供數據。他有一個共享如MNIST, CIFAR-10 (圖片數據集), Google's One Billion Words (文字)這類數據集的接口。你使用他來經過不少種的方式來替代本身的數據。


8.Bob

www.github.com/idiap/bob

Bob是一個免費的信號處理和機器學習的工具。它的工具箱是用Python和C++語言共同編寫的,它的設計目的是變得更加高效而且減小開發時間,它是由處理圖像工具,音頻和視頻處理、機器學習和模式識別的大量軟件包構成的。


9.Skdata

www.github.com/jaberg/skdata

Skdata是機器學習和統計的數據集的庫程序。這個模塊對於玩具問題,流行的計算機視覺和天然語言的數據集提供標準的Python語言的使用。


10.MILK

www.github.com/luispedro/milk

MILK是Python語言下的機器學習工具包。它主要是在不少可獲得的分類好比SVMS,K-NN,隨機森林,決策樹中使用監督分類法。 它還執行特徵選擇。 這些分類器在許多方面相結合,能夠造成不一樣的例如無監督學習、密切關係金傳播和由MILK支持的K-means聚類等分類系統。


11.IEPY

www.github.com/machinalis/iepy

IEPY是一個專一於關係抽取的開源性信息抽取工具。它主要針對的是須要對大型數據集進行信息提取的用戶和想要嘗試新的算法的科學家。


12.Quepy

www.github.com/machinalis/quepy

Quepy是經過改變天然語言問題從而在數據庫查詢語言中進行查詢的一個Python框架。他能夠簡單的被定義爲在天然語言和數據庫查詢中不一樣類型的問題。因此,你不用編碼就能夠創建你本身的一個用天然語言進入你的數據庫的系統。

如今Quepy提供對於Sparql和MQL查詢語言的支持。而且計劃將它延伸到其餘的數據庫查詢語言。


13.Hebel

www.github.com/hannes-brt/hebel

Hebel是在Python語言中對於神經網絡的深度學習的一個庫程序,它使用的是經過PyCUDA來進行GPU和CUDA的加速。它是最重要的神經網絡模型的類型的工具並且能提供一些不一樣的活動函數的激活功能,例如動力,涅斯捷羅夫動力,信號丟失和中止法。


14.mlxtend

www.github.com/rasbt/mlxtend

它是一個由有用的工具和平常數據科學任務的擴展組成的一個庫程序。


15.nolearn

www.github.com/dnouri/nolearn

這個程序包容納了大量能對你完成機器學習任務有幫助的實用程序模塊。其中大量的模塊和scikit-learn一塊兒工做,其它的一般更有用。


16.Ramp

www.github.com/kvh/ramp

Ramp是一個在Python語言下制定機器學習中加快原型設計的解決方案的庫程序。他是一個輕型的pandas-based機器學習中可插入的框架,它現存的Python語言下的機器學習和統計工具(好比scikit-learn,rpy2等)Ramp提供了一個簡單的聲明性語法探索功能從而可以快速有效地實施算法和轉換。


17.Feature Forge

www.github.com/machinalis/featureforge

這一系列工具經過與scikit-learn兼容的API,來建立和測試機器學習功能。

這個庫程序提供了一組工具,它會讓你在許多機器學習程序使用中很受用。當你使用scikit-learn這個工具時,你會感受到受到了很大的幫助。(雖然這隻能在你有不一樣的算法時起做用。)


18.REP

www.github.com/yandex/rep

REP是以一種和諧、可再生的方式爲指揮數據移動驅動所提供的一種環境。

它有一個統一的分類器包裝來提供各類各樣的操做,例如TMVA, Sklearn, XGBoost, uBoost等等。而且它能夠在一個羣體以平行的方式訓練分類器。同時它也提供了一個交互式的情節。


19.Python 學習機器樣品

www.github.com/awslabs/machine-learning-samples

用亞馬遜的機器學習建造的簡單軟件收集。


20.Python-ELM

www.github.com/dclambert/Python-ELM

這是一個在Python語言下基於scikit-learn的極端學習機器的實現。

 

 

在這樣的背景下, InfoWorld近日公佈了機器學習領域11個最受歡迎的開源項目,這11個開源項目大多與垃圾郵件過濾、人臉識別、推薦引擎相關。它們大多數基於現今最流行的語言以及平臺,推廣以及擴展了機器學習領域的不少重要算法。從中,用戶不但能夠找到LDA等主題模型,也能夠找到HMM等隱馬爾科夫模型。這些模型都是應用領域的熱點,也是研究者們最須要的。

Scikit-learn
Scikit-learn是一個很是強大的Python機器學習工具包。它經過在現有Python的基礎上構建了NumPy和Matplotlib,提供了很是便利的數學工具。這個工具包包括了不少簡單且高效的工具,很適合用於數據挖掘和數據分析。

在主頁中,能夠看到User Guide,這是整個機器學習的索引,其中用戶能夠學到各類有效的方法。在Reference裏,用戶能夠找到各個類具體的用法索引。

Shogun
Shogun是一個基於C++的最古老的機器學習開源庫,它建立於1999年。做爲一個SWIG庫,Shogun能夠輕鬆地嵌入Java、Python、C#等主流處理語言中。它的重點在於大尺度上的內核方法,特別是「支持向量機」的學習工具箱。其中,它包括了大量的線性方法,如LDA、LPM、HMM等等。

Accord Framework/AForge.net
Accord是AForge.net的擴展,是一個基於.Net的機器學習與信號處理框架。它包括了一系列的對圖像和音頻的機器學習算法,如人臉檢測、SIFT拼接等等。同時,Accord支持移動對象的實時跟蹤等功能。它提供了一個從神經網絡到決策樹系統的機器學習庫。

Mahout
Mahout是一個廣爲人知的開源項目,它是Apache Software旗下的一個開源項目,提供了衆多的機器學習經典算法的實現,旨在幫助開發人員更加方便快捷地建立智能應用程序。Mahout內包含了聚類、分類、推薦等不少經典算法,而且提供了很方便的雲服務的接口。

MLlib
MLlib是Apache本身的Spark和Hadoop機器學習庫,它被設計用於大規模高速度地執行MLlib所包含的大部分常見機器學習算法。MLlib是基於Java開發的項目,同時能夠方便地與Python等語言對接。用戶能夠本身設計針對MLlib編寫代碼,這是很具備個性化的設計。

H2O
H2O是0xdata的旗艦產品,是一款核心數據分析平臺。它的一部分是由R語言編寫的,另外一部分是由Java和Python語言編寫的。用戶能夠部署H2O的R程序安裝包,以後就能夠在R語言環境下運行了。H2P的算法是面向業務欺詐活着趨勢預測的,目前正在新一輪的融資中。

Cloudera Oryx
Oryx也是由Hadoop所設計的機器學習開源項目,由Cloudera Hadoop Distribution的創造者所提供。Oryx可以讓機器學習的模型使用在實時的數據流上,如垃圾郵件過濾等。

GoLearn
GoLearn是谷歌所構建的Go語言的一體化機器學習庫,目標是簡單而且可定製。Go語言是谷歌的主打語言,目前使用已經愈來愈普遍。GoLearn的簡單在於數據在庫內被加載和處理,所以可以可定製地擴展數據結構以源碼。

Weka
>Weka是使用Java開發的用戶數據挖掘的開源項目。Weka做爲一個公開的數據挖掘工做平臺,集合了大量可以承擔數據挖掘人物的機器學習算法,包括了對數據進行預處理、分類、迴歸、聚類等等。同時,Weka實現了對大數據的可視化,經過Java設計的新式交互界面上,實現人與程序的交互。

CUDA-Convnet
CUDA是咱們衆所周知的GPU加速套件。而CUDA-Convnet是一個基於GPU加速的神經網絡應用程序機器學習庫。它使用C++編寫,而且使用了NVidia的CUDA GPU處理技術。

目前,這個項目已經被重組成爲CUDA-Convnet2,支持多個GPU和Kepler-generation GPUs. Vuples項目與之相似,使用F#語言編寫,而且適用於.Net平臺上。

ConvNetJS
ConvNetJS是一款基於JavaScript的在線深度學習庫,它提供了在線的深度學習訓練方式。它可以幫助深度學習的初學者更快、更加直觀的理解算法,經過一些簡單的Demo給用戶最直觀的解釋。

 

最牛逼的開源機器學習框架,你知道幾個
0條評論2015-12-31 10:23    來源:開發者頭條  做者: 大白鯨團隊 編輯: 崔月
  【IT168 評論】機器學習毫無疑問是當今最熱的話題,它已經滲透到生活的方方面面,在移動互聯網中混不懂點機器學習都很差意思,說幾個能看的到的,常常用郵箱吧,是否是感受垃圾郵件比N年前變少了,無聊了和siri聊過天不,想坐一下無人駕駛汽車嗎,手累了用臉解個鎖,智能化產品推薦是否是讓你更懶了。看不到的就更多了:信用卡欺詐監測保證你的交易安全,股票交易/量化投資(知道你的高收益理財怎麼來的嗎?),手勢識別(用過海豚瀏覽器的手勢嗎),還有醫學分析等等,巨頭們爲了在將來佔領先機,前仆後繼的開源他們的機器學習框架,加速了人類進入智能時代的步伐(說什麼,機器人?)
  Facebook:用於Torch的模塊庫fbcunn (2015-01-17 開源)
  fbcunn能夠替代Torch的默認模塊,它們構建在Nvidia的cuFFT庫(一個基於CUDA的庫,用於深度神經網絡)之上,能夠在更短的時間內訓練更大規模的神經網絡模型,它對NVIDIA的GPU進行了優化。一部分能夠用來訓練大型計算機視覺系統。部分模塊也能夠用來訓練處理不一樣類型數據的模型。既能夠進行文本識別、圖像識別,也能用於語言模型的訓練。部分模塊將大型卷積神經網絡模型的訓練速度提高了23.5倍。
  fbcunn基於Fast Training of Convolutional Networks through FFTs這篇論文中的想法構建了這些模塊,FAIR(Facebook人工智能實驗室)的主任Yann LeCun是論文的合著者之一。與cuDNN相比,在卷積核較小的狀況下(3x3),fbcunn的速度提高可達1.84倍;而在卷積核較大的狀況下(5x5),速度提高可達23.5倍。
  Torch和fbcunn的最先的用途之一:圖片分類,它分類過ImageNet的120萬張圖片,能夠參考這個地址:https://github.com/soumith/imagenet-multiGPU.torch
  參考:
http://torch.ch
https://github.com/torch/
https://github.com/facebook/fbcunn
https://research.facebook.com/blog/879898285375829/fair-open-sources-deep-learning-modules-for-torch/
  微軟:DMTK(2015-11-16 開源)
  DMTK由參數服務器和客戶端SDK兩部分構成。參數服務器支持存儲混合數據結構模型、接受並聚合工做節點服務器的數據模型更新、控制模型同步邏輯;客戶端SDK負責維護節點模型緩存(與全局模型服務器同步)、本地訓練和模型通信之間的流水線控制以及片狀調度大模型訓練。它包含DMTK框架、LightLDA和分佈式詞向量(Word Embedding)三個組件。
  DMTK採用了傳統的客戶端/服務器架構,有多個服務器實例運行在多臺機器上負責維護全局模型參數,而訓練例程(routines)則使用客戶端API訪問並更新這些參數。爲了適應不一樣的集羣環境,DMTK框架支持兩種進程間的通訊機制:MPI和ZMQ。應用程序端不須要修改任何代碼就可以在這兩種方式之間切換。DMTK支持Windows和Linux兩種操做系統。
  DMTK則是使用C++編寫的,提供了一個客戶端API和SDK。 DMTK的官網 對DMTK框架、LightLDA、分佈式詞向量的應用場景、下載、安裝、配置、運行以及性能等方面都作了詳盡的介紹(見參考部分)。
  DMTK主要用於天然語言處理方面,好比:文本分類與聚類、話題識別以及情感分析等
  參考:
http://www.dmtk.io
https://github.com/Microsoft/DMTK
  Google:TensorFlow(2015-11-10 開源)
  TensorFlow 是一個用來編寫和執行機器學習算法的工具。計算在數據流圖中完成,圖中的節點進行數學運算,邊界是在各個節點中交換的張量(Tensors--多維數組)。TensorFlow負責在不一樣的設備、內核以及線程上異步地執行代碼,目前支持CNN、RNN和LSTM等圖像、語音和天然語言處理(NLP)領域最流行的深度神經網絡模型。
  Google已將TensorFlow用於GMail(SmartReply)、搜索(RankBrain)、圖片(生成圖像分類模型--Inception Image Classification Model)、翻譯器(字符識別)等產品。
  TensorFlow可以在臺式機、服務器或者移動設備的CPU和GPU上運行,也可使用Docker容器部署到雲環境中。在處理圖像識別、語音識別和語言翻譯等任務時,TensorFlow依賴於配備圖像處理單元(GPU)的機器和被用於渲染遊戲圖像的芯片,它對這些芯片依賴度比想象中的高。當前開源的版本可以運行在單機上,暫不支持集羣。操做系統方面,TensorFlow可以運行在Linux和MacOS上。
  TensorFlow的核心是使用C++編寫的,有完整的Python API和C++接口,同時還有一個基於C的客戶端API。
  參考:
https://www.tensorflow.org
https://github.com/tensorflow/tensorflow
  IBM:SystemML (2015-06 開源)
  SystemML是靈活的,可伸縮機器學習(ML) 語言,使用Java編寫。可實現 可定製算法(述性分析、分類、聚類、迴歸、矩陣分解及生存分析等), 多個執行模式(單獨運行、Hadoop 和 Spark ), 自動優化。它由 IBM 的 Almaden 實驗室花了近 10年開發而成的機器學習技術。
  SystemML語言,聲明式機器學習 (DML)。SystemML 包含線性代數原語,統計功能和 ML 指定結構,能夠更容易也更原生的表達 ML 算法。算法經過 R 類型或者 Python 類型的語法進行表達。DML 經過提供靈活的定製分析表達和獨立於底層輸入格式和物理數據表示的數據顯著提高數據科學的生產力。
  SystemML 運行環境支持 Windows、Linux 及 MacOS,可支持單機和分佈式部署。單機部署顯然有利於本地開發的工做,而分佈式部署則能夠真正發揮機器學習的威力,支持的框架包括 Hadoop 和 Spark
  衆所周知的IBM AIWaston融入了很多SystemML技術(不瞭解的同窗能夠看下《Jeopardy!》節目,來領教到沃森的威力)
  參考:
http://systemml.apache.org
https://github.com/apache/incubator-systemml
  三星:VELES
  VELES 是分佈式深度學習應用系統,號稱:用戶只須要提供參數,剩下的我來搞,VELES使用 Python 編寫,使用OpenCL 或者 CUDA,利用基於Flow 的編程方式。
  參考:
https://velesnet.ml
https://github.com/Samsung/veles
  百度:期待ING。。。
  巨頭之因此開源本身耗時多年打造的機器學習框架,是但願可以加速在人工智能方面的部署,在人工智能日益重要的將來搶佔更多的主導權。而對於機器人創業公司來講,當這麼多巨頭將機器學習平臺開源後,還有什麼理由作很差機器人。

 

盤點 | 今年GitHub排名前20的Python機器學習開源項目
機器之心2016-11-27 13:05:06數據分析 技術 閱讀(2277) 評論(0)
選自KDnuggets
做者:Prasad Pore
機器之心編譯
參與:楊旋、吳攀
當今時代,開源是創新和技術快速發展的核心。本文來自 KDnuggets 的年度盤點,介紹了2016 年排名前 20 的 Python 機器學習開源項目,在介紹的同時也會作一些有趣的分析以及談一談它們的發展趨勢。和去年同樣,KDnuggets 介紹了 GitHub 上最新的而且排名前 20 的 Python 機器學習開源項目。使人吃驚的是,去年一些最活躍的項目已經停滯不前了,也有一些項目跌出了前 20 名(在 contribution 和 commit 方面),固然,也有 13 個新項目進入了前 20。
  
2016 年排名前 20 的 Python 機器學習開源項目
1.Scikit-learn是一種基於 NumPy、SciPy 和 matplotlib 的用於數據挖掘和數據分析的工具,其不只使用起來簡單高效,並且仍是開源的,可供全部人使用,而且擁有商業可用的 BSD 許可證,在不一樣的環境下都能很好的被使用。
  提交:21486,貢獻者:736
  連接:http://scikit-learn.org/
2.TensorFlow 最初由 Google 機器智能研究機構的 Google Brain 團隊的研究人員和工程師開發。該系統旨在促進對機器學習的研究,同時也讓機器學習研究原型過渡到生產系統更加高效容易。
提交:10466,貢獻者:493
連接:https://www.tensorflow.org/
3.Theano 能讓您更加高效地定義、優化和評估涉及多維數組的數學表達式。
提交:24108,貢獻者:263
連接:http://deeplearning.net/software/theano/
4.Caffe是一個由伯克利視覺與學習中心(BVLC)和社區貢獻者開發的深度學習框架,它兼具表現力和速度,還有模塊化的優勢。
提交:3801,貢獻者:215
連接:http://caffe.berkeleyvision.org/
5.Gensim 是一個免費的 Python 庫,它具備諸如可擴展的統計語義等特徵,它可用於分析純文本文檔的語義結構和檢索語義類似的文檔。
提交:2702,貢獻者:145
  連接:https://radimrehurek.com/gensim/
6.Pylearn2 是一個機器學習庫。它的大部分功能都是創建在 Theano 的基礎之上。這意味着你可使用數學表達式編寫 Pylearn2 插件(新模型、算法等),而後 Theano 將爲你優化這些表達式讓其更加穩定,並將根據你的選擇把它編譯適配相應的後端(CPU 或 GPU)。
提交:7100,貢獻者:115
連接:http://github.com/lisa-lab/pylearn2
7.Statsmodels 是一個容許用戶挖掘數據、估計統計模型和執行統計測試的 Python 模塊。描述性統計、統計測試、繪圖函數和結果統計的詳細列表可用於不一樣類型的數據和估計器。
提交:8664,貢獻者:108
連接:https://github.com/statsmodels/statsmodels/
8.Shogun是一種提供大量高效且統一的機器學習(ML)方法的機器學習工具箱。它能容易地把多種數據表示,算法類和通用工具緊密地聯繫起來。
提交:15172,貢獻者:105
連接:https://github.com/shogun-toolbox/shogun
9.Chainer 是一個基於 Python 而且獨立的深度學習模型開源框架。Chainer 提供一種靈活、直觀且高效的方法來實現整個深度學習模型,包括如循環神經網絡和變分自動編碼器等最早進的模型。
提交:6298,貢獻者:84
連接:https://github.com/pfnet/chainer
10.NuPIC是一個基於一種被稱爲分層式即時記憶(HTM/ Hierarchical Temporal Memory)的新皮質理論的開源項目。HTM 理論中的一部分已經在應用中被實現、測試和使用了,而其餘部分仍在開發中。
提交:6088,貢獻者:76
連接:http://github.com/numenta/nupic
11.Neon 是 Nervana (http://nervanasys.com/) 公司的一個基於 Python 的深度學習庫。它提供易用性的同時也提供了最高的性能。
提交:875,貢獻者:47
連接:http://neon.nervanasys.com/
12.Nilearn 是一個用於在 NeuroImaging 數據上快速輕鬆地進行統計學習的 Python 模塊。它利用 scikit-learn Python 工具箱來處理如預測建模、分類、解碼或鏈接分析等多變量統計信息。
提交:5254,貢獻者:46
連接:http://github.com/nilearn/nilearn
13.Orange3是一個新手和專家均可以使用的開源機器學習和數據可視化工具。在交互式數據分析工做流程中擁有大型的工具箱。
提交:6356,貢獻者:40
連接:https://github.com/biolab/orange3
14.Pymc 是一個實現貝葉斯統計模型和擬合算法的 Python 模塊,其中包括馬爾可夫鏈和蒙特卡羅方法。其靈活性和可擴展性使其適用於大量問題。
提交:2701,貢獻者:37
連接:https://github.com/pymc-devs/pymc
15.PyBrain是 Python 的一個模塊化機器學習庫。它的目標是爲機器學習任務提供靈活且易於使用但仍然強大的算法,以及各類預約義環境來對你的算法進行測試和比較。
提交:984,貢獻者:31
連接:http://github.com/pybrain/pybrain
16.Fuel是一個數據管道框架(data pipeline framework),它爲你的機器學習模型提供所需的數據。它將被 Blocks 和 Pylearn2 神經網絡庫使用。
提交:1053,貢獻者:29
連接:http://github.com/mila-udem/fuel
17.PyMVPA 是一個用於簡化大型數據集的統計學習分析 Python 包。它提供了一個可擴展的框架,具備大量用於分類、迴歸、特徵選擇、數據導入和導出等算法的高級接口。
提交:9258,貢獻者:26
連接:https://github.com/PyMVPA/PyMVPA
18.Annoy(Approximate Nearest Neighbors Oh Yeah)是一個綁定 Python 的 C ++庫,用來搜索在空間中距離給定查詢點較近的點。它還建立了基於大型只讀文件的數據結構,這些數據結構被映射到內存中,以便許多進程能夠共享相同的數據。
提交:365,貢獻者:24
  連接:https://github.com/spotify/annoy
19.Deap 是一個用於快速原型和測試思想的新穎的進化計算框架。它試圖使算法更加淺顯易懂,數據結構更加透明。它與並行機制(例如 multiprocessing 和 SCOOP)能完美協調。
提交:1854,貢獻者:21
連接:https://github.com/deap/deap
12.Pattern 是 Python 編程語言的 Web 挖掘模塊。它捆綁了數據挖掘(Google + Twitter +維基百科 API、網絡爬蟲、HTML DOM 解析器)、天然語言處理(詞性標記、n-gram 搜索、情感分析、WordNet)、機器學習(向量空間模型、k-means 聚類、樸素貝葉斯+ k-NN + SVM 分類器)和網絡分析(圖形中心性和可視化)等工具。
提交:943,貢獻者:20
  連接:https://pypi.python.org/pypi/Pattern
從下面的圖表中咱們能夠得知,與其它項目相比,PyMVPA 具備最高的貢獻率。使人吃驚的是,相比於其它項目,儘管 Scikit-learn 的貢獻者最多,可是它的貢獻率比較低。這背後的緣由多是由於 PyMVPA 是一個新的項目,經歷了早期的發展階段,因爲新的想法/功能開發,缺陷修復,重構等緣由致使了許多提交。而 Scikit-learn 是一個早期的而且比較穩定的項目,因此擁有較少的改進或缺陷修復等提交。
  
咱們對 2015 年和 2016 年的項目進行了比較,它們都是排名前 20 名的項目。咱們能夠看到 Pattern、PyBrain 和 Pylearn2 的貢獻率沒有明顯的改變,也沒有新的貢獻者。此外,咱們能夠在貢獻者的數量和提交的數量中看到一個顯著的相關性。貢獻者的增長可能會致使提交的增長,這也是我認爲開源項目和社區神奇的地方;它能夠致使頭腦風暴,產生新想法以及創造更好的軟件工具。
  
以上就是 KDnuggets 團隊根據貢獻者數量和提交數量對 2016 年排名前 20 的 Python 機器學習開源項目的分析。
開源和知識共享是使人快樂的一件事!
  原文鏈接:http://www.kdnuggets.com/2016/11/top-20-python-machine-learning-open-source-updated.html

 

28款GitHub最流行的開源機器學習項目

如今機器學習逐漸成爲行業熱門,通過二十幾年的發展,機器學習目前也有了十分普遍的應用,如:數據挖掘、計算機視覺、天然語言處理、生物特徵識別、搜索引擎、醫學診斷、DNA序列測序、語音和手寫識別、戰略遊戲和機器人等方面。html

翻譯整理了目前GitHub上最受歡迎的28款開源的機器學習項目,以供開發者參考使用。python

1. TensorFlow

 

28款GitHub最流行的開源機器學習項目

TensorFlow 是谷歌發佈的第二代機器學習系統。據谷歌宣稱,在部分基準測試中,TensorFlow的處理速度比第一代的DistBelief加快了2倍之多。
具體的講,TensorFlow是一個利用數據流圖(Data Flow Graphs)進行數值計算的開源軟件庫:圖中的節點( Nodes)表明數學運算操做,同時圖中的邊(Edges)表示節點之間相互流通的多維數組,即張量(Tensors)。這種靈活的架構可讓使用者在多樣化的將計算部署在臺式機、服務器或者移動設備的一個或多個CPU上,並且無需重寫代碼;同時任一基於梯度的機器學習算法都可夠借鑑TensorFlow的自動分化(Auto-differentiation);此外經過靈活的Python接口,要在TensorFlow中表達想法也變得更爲簡單。
TensorFlow最初由Google Brain小組(該小組隸屬於Google's Machine Intelligence研究機構)的研究員和工程師開發出來的,開發目的是用於進行機器學習和深度神經網絡的研究。但該系統的通用性足以使其普遍用於其餘計算領域。
目前Google 內部已在大量使用 AI 技術,包括 Google App 的語音識別、Gmail 的自動回覆功能、Google Photos 的圖片搜索等都在使用 TensorFlow 。linux


開發語言:C++
許可協議:Apache License 2.0 
GitHub項目地址:https://github.com/tensorflow/tensorflowgit

2. Scikit-Learn

Scikit-Learn是用於機器學習的Python 模塊,它創建在SciPy之上。該項目由David Cournapeau 於2007年創立,當時項目名爲Google Summer of Code,自此以後,衆多志願者都爲此作出了貢獻。
主要特色:github

  • 操做簡單、高效的數據挖掘和數據分析
  • 無訪問限制,在任何狀況下可從新使用
  • 創建在NumPy、SciPy 和 matplotlib基礎上

Scikit-Learn的基本功能主要被分爲六個部分:分類、迴歸、聚類、數據降維、模型選擇、數據預處理,具體能夠參考官方網站上的文檔。通過測試,Scikit-Learn可在 Python 2.六、Python 2.7 和 Python 3.5上運行。除此以外,它也應該可在Python 3.3和Python 3.4上運行。
注:Scikit-Learn之前被稱爲Scikits.Learn。web


開發語言:Python
許可協議:3-Clause BSD license
GitHub項目地址: https://github.com/scikit-learn/scikit-learn算法

3.Caffe

Caffe 是由神經網絡中的表達式、速度、及模塊化產生的深度學習框架。後來它經過伯克利視覺與學習中心((BVLC)和社區參與者的貢獻,得以發展造成了以一個伯克利主導,而後加之Github和Caffe-users郵件所組成的一個比較鬆散和自由的社區。
Caffe是一個基於C++/CUDA架構框架,開發者可以利用它自由的組織網絡,目前支持卷積神經網絡和全鏈接神經網絡(人工神經網絡)。在Linux上,C++能夠經過命令行來操做接口,對於MATLAB、Python也有專門的接口,運算上支持CPU和GPU直接無縫切換。數據庫

Caffe的特色

  • 易用性:Caffe的模型與相應優化都是以文本形式而非代碼形式給出, Caffe給出了模型的定義、最優化設置以及預訓練的權重,方便快速使用;
  • 速度快:可以運行最棒的模型與海量的數據;
  • Caffe可與cuDNN結合使用,可用於測試AlexNet模型,在K40上處理一張圖片只須要1.17ms;
  • 模塊化:便於擴展到新的任務和設置上;
  • 使用者可經過Caffe提供的各層類型來定義本身的模型;

目前Caffe應用實踐主要有數據整理、設計網絡結構、訓練結果、基於現有訓練模型,使用Caffe直接識別。apache


開發語言:C++
許可協議: BSD 2-Clause license
GitHub項目地址: https://github.com/BVLC/caffenpm

4. PredictionIO

PredictionIO 是面向開發人員和數據科學家的開源機器學習服務器。它支持事件採集、算法調度、評估,以及經由REST APIs的預測結果查詢。使用者能夠經過PredictionIO作一些預測,好比個性化推薦、發現內容等。PredictionIO 提供20個預設算法,開發者能夠直接將它們運行於本身的數據上。幾乎任何應用與PredictionIO集成均可以變得更「聰明」。其主要特色以下所示:

  • 基於已有數據可預測用戶行爲;
  • 使用者可選擇你本身的機器學習算法;
  • 無需擔憂可擴展性,擴展性好。

PredictionIO 基於 REST API(應用程序接口)標準,不過它還包含 Ruby、Python、Scala、Java 等編程語言的 SDK(軟件開發工具包)。其開發語言是Scala語言,數據庫方面使用的是MongoDB數據庫,計算系統採用Hadoop系統架構。 


開發語言:Scala
許可協議: Apache License 2.0
GitHub項目地址: https://github.com/PredictionIO/PredictionIO

5. Brain

Brain是 JavaScript 中的 神經網絡庫。如下例子說明使用Brain來近似 XOR 功能:

var net = new brain.NeuralNetwork();

net.train([{input: [0, 0], output: [0]},

           {input: [0, 1], output: [1]},

           {input: [1, 0], output: [1]},

           {input: [1, 1], output: [0]}]);

var output = net.run([1, 0]);  // [0.987]

當 brain 用於節點中,可以使用npm安裝:

npm install brain

當 brain 用於瀏覽器,下載最新的 brain.js 文件。訓練計算代價比較昂貴,因此應該離線訓練網絡(或者在 Worker 上),並使用 toFunction() 或者 toJSON()選項,以便將預訓練網絡插入到網站中。


開發語言:JavaScript
GitHub項目地址: https://github.com/harthur/brain

6. Keras

Keras是極其精簡併高度模塊化的神經網絡庫,在TensorFlow 或 Theano 上都可以運行,是一個高度模塊化的神經網絡庫,支持GPU和CPU運算。Keras能夠說是Python版的Torch7,對於快速構建CNN模型很是方便,同時也包含了一些最新文獻的算法,好比Batch Noramlize,文檔教程也很全,在官網上做者都是直接給例子淺顯易懂。Keras也支持保存訓練好的參數,而後加載已經訓練好的參數,進行繼續訓練。
Keras側重於開發快速實驗,用可能最少延遲實現從理念到結果的轉變,即爲作好一項研究的關鍵。
當須要以下要求的深度學習的庫時,就能夠考慮使用Keras:

  • 考慮到簡單快速的原型法(經過整體模塊性、精簡性以及可擴展性);
  • 同時支持卷積網絡和遞歸網絡,以及二者之間的組合;
  • 支持任意鏈接方案(包括多輸入多輸出訓練);
  • 可在CPU 和 GPU 上無縫運行。

Keras目前支持 Python 2.7-3.5。


開發語言:Python
GitHub項目地址:https://github.com/fchollet/keras

7. CNTK

CNTK(Computational Network Toolkit )是一個統一的深度學習工具包,該工具包經過一個有向圖將神經網絡描述爲一系列計算步驟。在有向圖中,葉節點表示輸入值或網絡參數,其餘節點表示該節點輸入之上的矩陣運算。
CNTK 使得實現和組合如前饋型神經網絡DNN、卷積神經網絡(CNN)和循環神經網絡(RNNs/LSTMs)等流行模式變得很是容易。同時它實現了跨多GPU 和服務器自動分化和並行化的隨機梯度降低(SGD,偏差反向傳播)學習。
下圖將CNTK的處理速度(每秒處理的幀數)和其餘四個知名的工具包作了比較了。配置採用的是四層全鏈接的神經網絡(參見基準測試腳本)和一個大小是8192 的高效mini batch。在相同的硬件和相應的最新公共軟件版本(2015.12.3前的版本)的基礎上獲得以下結果:

28款GitHub最流行的開源機器學習項目

CNTK自2015年四月就已開源。


開發語言:C++
GitHub項目地址:https://github.com/Microsoft/CNTK

8. Convnetjs

ConvNetJS是利用Javascript實現的神經網絡,同時還具備很是不錯的基於瀏覽器的Demo。它最重要的用途是幫助深度學習初學者更快、更直觀的理解算法。
它目前支持:

  • 常見的神經網絡模塊(全鏈接層,非線性);
  • 分類(SVM/ SOFTMAX)和迴歸(L2)的成本函數;
  • 指定和訓練圖像處理的卷積網絡;
  • 基於Deep Q Learning的實驗強化學習模型。

一些在線示例:

9. Pattern

 

28款GitHub最流行的開源機器學習項目

Pattern是Python的一個Web挖掘模塊。擁有如下工具:

  • 數據挖掘:網絡服務(Google、Twitter、Wikipedia)、網絡爬蟲、HTML DOM解析;
  • 天然語言處理:詞性標註工具(Part-Of-Speech Tagger)、N元搜索(n-gram search)、情感分析(sentiment analysis)、WordNet;
  • 機器學習:向量空間模型、聚類、分類(KNN、SVM、 Perceptron);
  • 網絡分析:圖形中心性和可視化。

其文檔完善,目前擁有50多個案例和350多個單元測試。 Pattern目前只支持Python 2.5+(尚不支持Python 3),該模塊除了在Pattern.vector模塊中使用LSA外沒有其餘任何外部要求,所以只需安裝 NumPy (僅在Mac OS X上默認安裝)。


開發語言:Python
許可協議:BSD license
GitHub項目地址:https://github.com/clips/pattern

10. NuPIC

 

28款GitHub最流行的開源機器學習項目

NuPIC是一個實現了HTM學習算法的機器智能平臺。HTM是一個關於新(大腦)皮質(Neocortex)的詳細人工智能算法。HTM的核心是基於時間的連續學習算法,該算法能夠存儲和調用時間和空間兩種模式。NuPIC能夠適用於解決各種問題,尤爲是異常檢測和流數據源預測方面。
NuPIC Binaries文件目前可用於:

  • Linux x86 64bit
  • OS X 10.9
  • OS X 10.10
  • Windows 64bit

NuPIC 有本身的獨特之處。許多機器學習算法沒法適應新模式,而NuPIC的運做接近於人腦,當模式變化的時候,它會忘掉舊模式,記憶新模式。


開發語言:Python
GitHub項目地址:https://github.com/numenta/nupic

11. Theano

Theano是一個Python庫,它容許使用者有效地定義、優化和評估涉及多維數組的數學表達式,同時支持GPUs和高效符號分化操做。Theano具備如下特色:

  • 與NumPy緊密相關--在Theano的編譯功能中使用了Numpy.ndarray ;
  • 透明地使用GPU--執行數據密集型計算比CPU快了140多倍(針對Float32);
  • 高效符號分化--Theano將函數的導數分爲一個或多個不一樣的輸入;
  • 速度和穩定性的優化--即便輸入的x很是小也能夠獲得log(1+x)正確結果;
  • 動態生成 C代碼--表達式計算更快;
  • 普遍的單元測試和自我驗證--多種錯誤類型的檢測和斷定。

自2007年起,Theano一直致力於大型密集型科學計算研究,但它目前也很被普遍應用在課堂之上( 如Montreal大學的深度學習/機器學習課程)。


開發語言:Python
GitHub項目地址:https://github.com/Theano/Theano

12. MXNet

 

28款GitHub最流行的開源機器學習項目

MXNet是一個兼具效率和靈活性的深度學習框架。它容許使用者將符號編程和命令式編程相結合,以追求效率和生產力的最大化。其核心是動態依賴調度程序,該程序能夠動態自動進行並行化符號和命令的操做。其中部署的圖形優化層使得符號操做更快和內存利用率更高。該庫輕量且便攜帶,而且可擴展到多個GPU和多臺主機上。
主要特色:

  • 其設計說明提供了有用的看法,能夠被從新應用到其餘DL項目中;
  • 任意計算圖的靈活配置;
  • 整合了各類編程方法的優點最大限度地提升靈活性和效率;
  • 輕量、高效的內存以及支持便攜式的智能設備;
  • 多GPU擴展和分佈式的自動並行化設置;
  • 支持Python、R、C++和 Julia;
  • 對「雲計算」友好,直接兼容S三、HDFS和Azure。

MXNet不只僅是一個深度學習項目,它更是一個創建深度學習系統的藍圖、指導方針以及黑客們對深度學習系統獨特看法的結合體。


開發語言:Jupyter Notebook
開源許可:Apache-2.0 license
GitHub項目地址:https://github.com/dmlc/mxnet

13. Vowpal Wabbit

Vowpal Wabbit是一個機器學習系統,該系統推進了如在線、散列、Allreduce、Learning2search、等方面機器學習前沿技術的發展。 其訓練速度很快,在20億條訓練樣本,每一個訓練樣本大概100個非零特徵的狀況下:若是特徵的總位數爲一萬時,訓練時間爲20分鐘;特徵總位數爲1000萬時,訓練時間爲2個小時。Vowpal Wabbit支持分類、 迴歸、矩陣分解和LDA。
當在Hadoop上運行Vowpal Wabbit時,有如下優化機制:

  • 懶惰初始化:在進行All Reduce以前,可將所有數據加載到內存中並進行緩存。即便某一節點出現了錯誤,也能夠經過在另一個節點上使用錯誤節點的數據(經過緩存來獲取)來繼續訓練。
  • Speculative Execution:在大規模集羣當中,一兩個很慢的Mapper會影響整個Job的性能。Speculative Execution的思想是當大部分節點的任務完成時,Hadoop能夠將剩餘節點上的任務拷貝到其餘節點完成。

 


開發語言:C++
GitHub項目地址:https://github.com/JohnLangford/vowpal_wabbit

14. Ruby Warrior

經過設計了一個遊戲使得Ruby語言和人工智能學習更加有樂趣和互動起來。
使用者扮演了一個勇士經過爬上一座高塔,到達頂層獲取珍貴的紅寶石(Ruby)。在每一層,須要寫一個Ruby腳本指導戰士戰勝敵人、營救俘虜、到達樓梯。使用者對每一層都有一些認識,可是你永遠都不知道每層具體會發生什麼狀況。你必須給戰士足夠的人工智能,以便讓其自行尋找應對的方式。
勇士的動做相關API:

  • Warrior.walk: 用來控制勇士的移動,默認方向是往前;

  • warrior.feel:使用勇士來感知前方的狀況,好比是空格,仍是有怪物;

  • Warrior.attack:讓勇士對怪物進行攻擊;

  • Warrior.health:獲取勇士當前的生命值;

  • Warrior.rest:讓勇士休息一回合,恢復最大生命值的10%。

勇士的感知API:

  • Space.empty:感知前方是不是空格;

  • Space.stairs:感知前方是不是樓梯;

  • Space.enemy: 感知前方是否有怪物;

  • Space.captive:感知前方是否有俘虜;

  • Space.wall:感知前方是不是牆壁。

 


開發語言:Ruby
GitHub項目地址:https://github.com/ryanb/ruby-warrior

15. XGBoost

XGBoot是設計爲高效、靈活、可移植的優化分佈式梯度 Boosting庫。它實現了 Gradient Boosting 框架下的機器學習算法。XGBoost經過提供並行樹Boosting(也被稱爲GBDT、GBM),以一種快速且準確的方式解決了許多數據科學問題。相同的代碼能夠運行在大型分佈式環境如Hadoop、SGE、MP上。它相似於梯度上升框架,可是更加高效。它兼具線性模型求解器和樹學習算法。
XGBoot至少比現有的梯度上升實現有至少10倍的提高,同時還提供了多種目標函數,包括迴歸、分類和排序。因爲它在預測性能上的強大,XGBoot成爲不少比賽的理想選擇,其還具備作交叉驗證和發現關鍵變量的額外功能。
值得注意的是:XGBoost僅適用於數值型向量,所以在使用時須要將全部其餘形式的數據轉換爲數值型向量;在優化模型時,這個算法還有很是多的參數須要調整。


開發語言:C++
開源許可:Apache-2.0 license
GitHub項目地址:https://github.com/dmlc/xgboost

16. GoLearn

GoLearn 是Go 語言中「功能齊全」的機器學習庫,簡單性及自定義性是其開發目標。
在安裝 GoLearn 時,數據做爲實例被加載,而後能夠在其上操做矩陣,並將操做值傳遞給估計值。GoLearn 實現了Fit/Predict的Scikit-Learn界面,所以用戶可輕鬆地經過反覆試驗置換出估計值。此外,GoLearn還包括用於數據的輔助功能,例如交叉驗證、訓練以及爆裂測試。


開發語言:Go
GitHub項目地址: https://github.com/sjwhitworth/golearn

17. ML_for_Hackers

ML_for_Hackers 是針對黑客機器學習的代碼庫,該庫包含了全部針對黑客的機器學習的代碼示例(2012)。該代碼可能和文中出現的並不徹底相同,由於自出版以來,可能又添加了附加的註釋和修改部分。
全部代碼均爲R語言,依靠衆多的R程序包,涉及主題包括分類(Classification)、排行(Ranking)、以及迴歸(Regression)的全部常見的任務和主成分分析(PCA)和多維尺度(Multi-dimenstional Scaling)等統計方法。


開發語言:R
開源許可:Simplified BSD License
GitHub項目地址: https://github.com/johnmyleswhite/ML_for_Hackers

18. H2O-2

H2O使得Hadoop可以作數學運算!它能夠經過大數據衡量統計數據、機器學習和數學。H2O是可擴展的,用戶能夠在覈心區域使用簡單的數學模型構建模塊。H2O保留着與R、Excel 和JSON等相相似的熟悉的界面,使得大數據愛好者及專家們可經過使用一系列由簡單到高級的算法來對數據集進行探索、變換、建模及評分。採集數據很簡單,但判決難度卻很大,而H2O卻經過更快捷、更優化的預測模型,可以更加簡單迅速地從數據中得到深入看法。
0xdata H2O的算法是面向業務流程——欺詐或趨勢預測。Hadoop專家可使用Java與H2O相互做用,但框架還提供了對Python、R以及Scala的捆綁。


開發語言:Java
GitHub項目地址: https://github.com/h2oai/h2o-2

19. neon

neon 是 Nervana 基於 Python 語言的深度學習框架,在諸多常見的深層神經網絡中都可以得到較高的性能,好比AlexNet、VGG 或者GoogLeNet。在設計 neon 時,開發者充分考慮了以下功能:

  • 支持經常使用的模型及實例,例如 Convnets、 MLPs、 RNNs、LSTMs、Autoencoders 等,其中許多預訓練的實現均可以在模型庫中發現;
  • 與麥克斯韋GPU中fp16 和 fp32(基準) 的nervanagpu 內核緊密集成;
    • 在Titan X(1 GPU ~ 32 hrs上可完整運行)的AlexNet上爲3s/macrobatch(3072圖像);
    • 快速影像字幕模型(速度比基於 NeuralTalk 的CPU 快200倍)。
  • 支持基本自動微分;
  • 框架可視化;
  • 可交換式硬盤後端:一次編寫代碼,而後配置到 CPU、GPU、或者 Nervana 硬盤。

在 Nervana中,neon被用來解決客戶在多個域間存在的各類問題。


開發語言:Python
開源許可:Apache-2.0 license
GitHub項目地址: https://github.com/NervanaSystems/neon

20. Oryx 2

開源項目Oryx提供了簡單且實時的大規模機器學習、預測分析的基礎設施。它可實現一些經常使用於商業應用的算法類:協做式過濾/推薦、分類/迴歸、集羣等。此外,Oryx 可利用 Apache Hadoop 在大規模數據流中創建模型,還能夠經過HTTP REST API 爲這些模型提供實時查詢,同時隨着新的數據不斷流入,能夠近似地自動更新模型。這種包括了計算層和服務層的雙重設計,可以分別實現一個Lambda 架構。模型在PMML格式交換。

28款GitHub最流行的開源機器學習項目

Oryx本質上只作兩件事:建模和爲模型服務,這就是計算層和服務層兩個獨立的部分各自的職責。計算層是離線、批量的過程,可從輸入數據中創建機器學習模型,它的經營收益在於「代」,便可利用某一點處輸入值的快照建模,結果就是隨着連續輸入的累加,隨時間生成一系列輸出;服務層也是一個基於Java長期運行的服務器進程,它公開了REST API。使用者可從瀏覽器中訪問,也可利用任何可以發送HTTP請求的語言或工具進行訪問。
Oryx的定位不是機器學習算法的程序庫,Owen關注的重點有四個:迴歸、分類、集羣和協做式過濾(也就是推薦)。其中推薦系統很是熱門,Owen正在與幾個Cloudera的客戶合做,幫他們使用Oryx部署推薦系統。


開發語言:Java
GitHub項目地址: https://github.com/cloudera/oryx

21. Shogun

Shogun是一個機器學習工具箱,由Soeren Sonnenburg 和Gunnar Raetsch(建立,其重點是大尺度上的內核學習方法,特別是支持向量機(SVM,Support Vector Machines)的學習工具箱。它提供了一個通用的鏈接到幾個不一樣的SVM實現方式中的SVM對象接口,目前發展最早進的LIBSVM和SVMlight 也位於其中,每一個SVM均可以與各類內核相結合。工具箱不只爲經常使用的內核程序(如線性、多項式、高斯和S型核函數)提供了高效的實現途徑,還自帶了一些近期的字符串內核函數,例如局部性的改進、Fischer、TOP、Spectrum、加權度內核與移位,後來有效的LINADD優化內核函數也已經實現。
此外,Shogun還提供了使用自定義預計算內核工做的自由,其中一個重要特徵就是能夠經過多個子內核的加權線性組合來構造的組合核,每一個子內核無需工做在同一個域中。經過使用多內核學習可知最優子內核的加權。
目前Shogun能夠解決SVM 2類的分類和迴歸問題。此外Shogun也添加了了像線性判別分析(LDA)、線性規劃(LPM)、(內核)感知等大量線性方法和一些用於訓練隱馬爾可夫模型的算法。


開發語言:C/C++、Python
許可協議:GPLv3 
GitHub項目地址: https://github.com/shogun-toolbox/shogun

22. HLearn

HLearn是由Haskell語言編寫的高性能機器學習庫,目前它對任意維度空間有着最快最近鄰的實現算法。
HLearn一樣也是一個研究型項目。該項目的研究目標是爲機器學習發掘「最佳可能」的接口。這就涉及到了兩個相互衝突的要求:該庫應該像由C/C++/Fortran/Assembly開發的底層��那樣運行快速;同時也應該像由Python/R/Matlab開發的高級庫那樣靈活多變。Julia在這個方向上取得了驚人的進步,可是 HLearn「野心」更大。更值得注意的是,HLearn的目標是比低級語言速度更快,比高級語言更加靈活。
爲了實現這一目標,HLearn採用了與標準學習庫徹底不一樣的接口。在HLearn中H表明着三個不一樣的概念,這三個概念也是HLearn設計的基本要求:

  • H表明Haskell。機器學習是從數據中預測函數,因此功能性編程語言適應機器學習是徹底說的通的。但功能性編程語言並沒普遍應用於機器學習,這是由於它們固來缺少支持學習算法的快速數值計算能力。HLearn經過採用Haskell中的SubHask庫得到了快速數值計算能力;

  • H同時表明着Homomorphisms。Homomorphisms是抽象代數的基本概念,HLearn將該代數結構用於學習系統中;

  • H還表明着History monad。在開發新的學習算法過程當中,最爲困難的任務之一就是調試優化過程。在此以前,是沒有辦法減輕調試過程的工做量的,但History monad正在試圖解決該問題。它可讓你在整個線程優化代碼的過程當中無需修改原代碼。此外,使用該技術時沒有增長其餘的運行開銷。

 


開發語言:Haskell
GitHub項目地址:https://github.com/mikeizbicki/HLearn

23. MLPNeuralNet

MLPNeuralNet是一個針對iOS和Mac OS系統的快速多層感知神經網絡庫,可經過已訓練的神經網絡預測新實例。它利用了向量運算和硬盤加速功能(若是可用),其創建在蘋果公司的加速框架之上。

28款GitHub最流行的開源機器學習項目

若你已經用Matlab(Python或R)設計了一個預測模型,並但願在iOS應用程序加以應用。在這種狀況下,正好須要MLP NeuralNet,而MLP NeuralNet只能加載和運行前向傳播方式的模型。MLP NeuralNet 有以下幾個特色:

  • 分類、多類分類以及迴歸輸出;
  • 向量化實現形式;
  • 雙精度;
  • 多重隱含層數或空(此時至關於邏輯學/線性迴歸)。

 


開發語言:Objective-C
許可協議:BSD license
GitHub項目地址: https://github.com/nikolaypavlov/MLPNeuralNet

24. Apache Mahout

Mahout 是Apache Software Foundation(ASF) 旗下的一個開源項目,提供一些可擴展的機器學習領域經典算法的實現,旨在幫助開發人員更加方便快捷地建立智能應用程序。Mahout包含許多實現,包括聚類、分類、推薦過濾、頻繁子項挖掘。此外,經過使用 Apache Hadoop 庫,Mahout 能夠有效地擴展到雲中。Apache Mahout項目的目標是創建一個可以快速建立可擴展、高性能機器學習應用的環境。
雖然在開源領域中相對較爲年輕,但 Mahout 已經提供了大量功能,特別是在集羣和 CF 方面。Mahout 的主要特性包括:

  • Taste CF,Taste是Sean Owen在SourceForge上發起的一個針對CF的開源項目,並在2008年被贈予Mahout;
  • 一些支持 Map-Reduce 的集羣實現包括 k-Means、模糊 k-Means、Canopy、Dirichlet 和 Mean-Shift;
  • Distributed Naive Bayes 和 Complementary Naive Bayes 分類實現;
  • 針對進化編程的分佈式適用性功能;
  • Matrix 和矢量庫。

使用 Mahout 還可實現內容分類。Mahout 目前支持兩種根據貝氏統計來實現內容分類的方法:第一種方法是使用簡單的支持 Map-Reduce 的 Naive Bayes 分類器;第二種方法是 Complementary Naive Bayes,它會嘗試糾正Naive Bayes方法中的一些問題,同時仍然可以維持簡單性和速度。


開發語言:Java
許可協議:Apache
GitHub項目地址: https://github.com/apache/mahout

25. Seldon Server

Seldon是一個開放式的預測平臺,提供內容建議和通常的功能性預測。它在Kubernetes集羣內運行,所以能夠調配到Kubernetes範圍內的任一地址:內部部署或雲部署(例如,AWS、谷歌雲平臺、Azure)。另外,它還能夠衡量大型企業安裝的需求。


開發語言:Java
GitHub項目地址: https://github.com/SeldonIO/seldon-server

26. Datumbox - Framework

Datumbox機器學習框架是用Java編寫的一個開源框架,該框架的涵蓋大量的機器學習算法和統計方法,並可以處理大尺寸的數據集。
Datumbox API提供了海量的分類器和天然語言處理服務,可以被應用在不少領域的應用,包括了情感分析、話題分類、語言檢測、主觀分析、垃圾郵件檢測、閱讀評估、關鍵詞和文本提取等等。目前,Datumbox全部的機器學習服務都可以經過API獲取,該框架可以讓用戶迅速地開發本身的智能應用。目前,基於GPL3.0的Datumbox機器學習框架已經開源而且能夠從GitHub上進行下載。
Datumbox的機器學習平臺很大程度上已經可以取代普通的智能應用。它具備以下幾個顯著的優勢:

  • 強大而且開源。Datumbox API使用了強大的開源機器學習框架Datumbox,使用其高度精確的算法可以迅速地構建創新的應用;
  • 易於使用。平臺API十分易於使用,它使用了REST&JSON的技術,對於全部的分類器;
  • 迅速使用。Datumbox去掉了那些很花時間的複雜機器學習訓練模型。用戶可以經過平臺直接使用分類器。

Datumbox主要能夠應用在四個方面:一個是社交媒體的監視,評估用戶觀點可以經過機器學習解決,Datumbox可以幫助用戶構建本身的社交媒體監視工具;第二是搜索引擎優化,其中很是有效的方法就是文檔中重要術語的定位和優化;第三點是質量評估,在在線通信中,評估用戶產生內容的質量對於去除垃圾郵件是很是重要的,Datumbox可以自動的評分而且審覈這些內容;最後是文本分析,天然語言處理和文本分析工具推進了網上大量應用的產生,平臺API可以很輕鬆地幫助用戶進行這些分析。


開發語言:Java
許可協議:Apache License 2.0
GitHub項目地址: https://github.com/datumbox/datumbox-framework

27. Jubatus

Jubatus庫是一個運行在分佈式環境中的在線機器學習框架,即面向大數據數據流的開源框架。它和Storm有些相似,但可以提供更多的功能,主要功能以下:

  • 在線機器學習庫:包括分類、聚合和推薦;
  • Fv_converter: 數據預處理(用天然語言);
  • 在線機器學習框架,支持容錯。

Jubatus認爲將來的數據分析平臺應該同時向三個方向展開:處理更大的數據,深層次的分析和實時處理。因而Jubatus將在線機器學習,分佈式計算和隨機算法等的優點結合在一塊兒用於機器學習,並支持分類、迴歸、推薦等基本元素。根據其設計目的,Jubatus有以下的特色: 

  • 可擴展:支持可擴展的機器學習處理。在普通硬件集羣上處理數據速度高達100000條/秒; +實時計算:實時分析數據和更新模型;
  • 深層次的數據分析:支持各類分析計算:分類、迴歸、統計、推薦等。

若是有基於流數據的機器學習方面的需求,Jubatus值得關注。


開發語言:C/C++
許可協議:LGPL
GitHub項目地址: https://github.com/jubatus/jubatus

28. Decider

Decider 是另外一個 Ruby 機器學習庫,兼具靈活性和可擴展性。Decider內置了對純文本和URI、填充詞彙、中止詞刪除、字格等的支持,以上這些均可以很容易地在選項中組合。Decider 可支持Ruby中任何可用的存儲機制。若是你喜歡,能夠保存到數據庫中,實現分佈式分類。
Decider有幾個基準,也兼做集成測試。這些都是按期運行並用於查明CPU和RAM的瓶頸。Decider能夠進行大量數學運算,計算至關密集,因此對速度的要求比較高。這是常用Ruby1.9和JRuby測試其計算速度。此外,用戶的數據集應該徹底在內存中,不然將會遇到麻煩。

 

 

 

 

推薦GitHub上10 個開源深度學習框架

 

日前,Google 開源了 TensorFlow(GitHub),此舉在深度學習領域影響巨大,由於 Google 在人工智能領域的研發成績斐然,有着雄厚的人才儲備,並且 Google 本身的 Gmail 和搜索引擎都在使用自行研發的深度學習工具。

無疑,來自 Google 軍火庫的 TensorFlow 必然是開源深度學習軟件中的明星產品,登錄 GitHub 當天就成爲最受關注的項目,當週得到評星數就輕鬆超過 1 萬個。

對於但願在應用中整合深度學習功能的開發者來講,GitHub 上其實還有不少不錯的開源項目值得關注,首先咱們推薦目前規模人氣最高的 TOP3:

1、Caffe。源自加州伯克利分校的 Caffe 被普遍應用,包括 Pinterest 這樣的 web 大戶。與 TensorFlow 同樣,Caffe 也是由 C++ 開發,Caffe 也是 Google 今年早些時候發佈的 DeepDream 項目(能夠識別喵星人的人工智能神經網絡)的基礎。

2、Theano。2008 年誕生於蒙特利爾理工學院,Theano 派生出了大量深度學習 Python 軟件包,最著名的包括 Blocks 和 Keras

3、Torch。Torch 誕生已經有十年之久,可是真正起勢得益於去年 Facebook 開源了大量 Torch 的深度學習模塊和擴展。Torch 另一個特殊之處是採用了不怎麼流行的編程語言 Lua(該語言曾被用來開發視頻遊戲)。

除了以上三個比較成熟知名的項目,還有不少有特點的深度學習開源框架也值得關注:

4、Brainstorm。來自瑞士人工智能實驗室 IDSIA 的一個很是發展前景很不錯的深度學習軟件包,Brainstorm 可以處理上百層的超級深度神經網絡——所謂的公路網絡 Highway Networks

5、Chainer。來自一個日本的深度學習創業公司 Preferred Networks,今年 6 月發佈的一個 Python 框架。Chainer 的設計基於 define by run 原則,也就是說,該網絡在運行中動態定義,而不是在啓動時定義,這裏有 Chainer 的詳細文檔

6、Deeplearning4j。 顧名思義,Deeplearning4j 是」for Java」的深度學習框架,也是首個商用級別的深度學習開源庫。Deeplearning4j 由創業公司 Skymind 於 2014 年 6 月發佈,使用 Deeplearning4j 的不乏埃森哲、雪弗蘭、博斯諮詢和 IBM 等明星企業。

DeepLearning4j 是一個面向生產環境和商業應用的高成熟度深度學習開源庫,可與 Hadoop 和 Spark 集成,即插即用,方便開發者在 APP 中快速集成深度學習功能,可應用於如下深度學習領域:

· 人臉/圖像識別

· 語音搜索

· 語音轉文字(Speech to text)

· 垃圾信息過濾(異常偵測)

· 電商欺詐偵測

7、Marvin。是普林斯頓大學視覺工做組新推出的 C++ 框架。該團隊還提供了一個件用於將 Caffe 模型轉化成語 Marvin 兼容的模式。

8、ConvNetJS。這是斯坦福大學博士生 Andrej Karpathy 開發瀏覽器插件,基於萬能的 JavaScript 能夠在你的遊覽器中訓練神經網絡。Karpathy 還寫了一個 ConvNetJS 的入門教程,以及一個簡潔的瀏覽器演示項目

9、MXNet。出自 CXXNet、Minerva、Purine 等項目的開發者之手,主要用 C++ 編寫。MXNet 強調提升內存使用的效率,甚至能在智能手機上運行諸如圖像識別等任務。

10、Neon。由創業公司 Nervana Systems 於今年五月開源,在某些基準測試中,由 Python 和 Sass 開發的 Neon 的測試成績甚至要優於 Caffeine、Torch 和谷歌的 TensorFlow。

相關文章
相關標籤/搜索