huichen/mlf: 大資料機器學習框架

weixin_33892359發表於2017-04-30

huichen/mlf: 大資料機器學習框架 https://github.com/huichen/mlf

讓天下沒有難做的大資料模型!
現有的機器學習框架/軟體包存在幾個問題:
無法處理大資料:多數Python,Matlab和R寫的訓練框架適合處理規模小的樣本,沒有為大資料優化。
不容易整合到實際生產系統:standalone的程式無法作為library嵌入到大程式中。
模型單一:一個軟體包往往只解決一個型別的問題(比如監督式或者非監督式)。
不容易擴充套件:設計時沒有考慮可擴充套件性,難以新增新的模型和元件。
程式碼質量不高:程式碼缺乏規範,難讀懂、難維護。

彌勒佛專案的誕生就是為了解決上面的問題,在框架設計上滿足了下面幾個需求:
處理大資料:可隨業務增長scale up,無論你的資料樣本是1K還是1B規模,都可使用彌勒佛專案。
為實際生產:模型的訓練和使用都可以作為library或者service整合到在生產系統中。
豐富的模型:容易嘗試不同的模型,在監督、非監督和線上學習等模型間方便地切換。
高度可擴充套件:容易新增新模型,方便地對新模型進行實驗並迅速整合到生產系統中。
高度可讀性:程式碼規範,註釋和文件儘可能詳盡,適合初學者進行大資料模型的學習。

[

](https://github.com/huichen/mlf#安裝更新)安裝/更新
go get -u github.com/huichen/mlf

[

](https://github.com/huichen/mlf#功能)功能
下面是彌勒佛框架解決的問題型別,括號中的斜體代表尚未實現以及預計實現的時間
監督式學習:最大熵分類模型(max entropy classifier),決策樹模型(decision tree based models,2014 Q1
非監督式學習:聚類問題(k-means,2014 Q1
線上學習:線上梯度遞降模型(online stochastic gradient descent)
神經網路(2014 Q2/3

專案實現了下面的元件
多種資料集(in-mem,skip)
多種評價器(precision,recall,f-score,accuracy,confusion)和交叉評價(cross-validation)
多種優化器:協程併發L-BFGS,梯度遞降(batch, mini-batch, stochastic),帶退火的學習率(learning rate),L1/L2正則化(regularization)
稀疏向量(sparse vector)以儲存和表達上億級別的特徵
特徵辭典(feature dictionary)在特徵名和特徵ID之間自動翻譯

[

](https://github.com/huichen/mlf#其它)其它
專案名稱來歷
專案郵件列表
聯絡方式

相關文章