0
本文作者: 李尊 | 2016-08-08 18:27 |
前言:那些流行的機(jī)器學(xué)習(xí)項目之所以受歡迎,一般是因為其提供了一種多數(shù)人需要的服務(wù),或是因為它們是第一個(也許是最好的)針對特定用戶提供服務(wù)的。那些最流行的項目包括Scikit-learn、TensorFlow、 Theano、MXNet 、Weka 等。根據(jù)個人使用的工作系統(tǒng)、深度學(xué)習(xí)目標(biāo)不同,不同的人認(rèn)為流行的項目可能會有些許差異。然而,這些項目共有的特性是它們都面向大量的用戶提供服務(wù)。但是仍然存在很多小型的機(jī)器學(xué)習(xí)項目:pipelines、wrappers、high-level APIs、cleaners等,通常來說這些項目都是針對小規(guī)模的用戶群提供好用且靈活的服務(wù)。
本文將介紹十種不那么有名的機(jī)器學(xué)習(xí)項目,你也可能從這些項目中獲得一些不錯的啟發(fā)。不建議你去嘗試所有的項目,但是如果里面剛好有你需要的某個功能,請盡管去試一試。
以下即十大你不可忽視的機(jī)器學(xué)習(xí)項目(排名不分先后):
1. Deepy
Deepy由Raphael Shu開發(fā),是一個基于Theano擴(kuò)展深度學(xué)習(xí)框架,它提供了一個簡潔的、高階的組件(如LSTMs)、批規(guī)范化、自動編碼等功能。Deepy宣稱其框架是十分簡潔明了的,它的官方文檔和示例也同樣如此。
Deepy工作原理:在給定訓(xùn)練數(shù)據(jù)和參數(shù)(隨機(jī)初始化)下運(yùn)行模型,將錯誤(或梯度)反饋并更新參數(shù),這個過程反復(fù)進(jìn)行。
2. MLxtend
MLxtend 由Sebastian Raschka開發(fā),是一系列有效工具的集合,也是針對機(jī)器學(xué)習(xí)任務(wù)的擴(kuò)展。Sebastian Raschka提到MLxtend本質(zhì)上是一些有效的工具集,也是與機(jī)器學(xué)習(xí)和數(shù)據(jù)科學(xué)相關(guān)的參考資料。他提到開發(fā)MLxtend主要是基于以下幾個原因:
一些其他地方找不到的特定算法(如序列特征選擇算法、多數(shù)表決分類器、疊加預(yù)估、繪圖決策區(qū)域等)
用于教學(xué)目的(邏輯回歸、Softmax回歸、多層感知器、PCA、PCA內(nèi)核等)這些實現(xiàn)主要關(guān)注于代碼的可讀性,而不是單純的效率
打包便利:tensorflow、Softmax回歸和多層感知器
MLxtend基本上是Sebastian Raschka所寫的一個機(jī)器學(xué)習(xí)運(yùn)行常用的庫,其中很多功能的實現(xiàn)都與scikit-learn的API相似,但作者仍在持續(xù)更新中,且作者表示所有的新增特性與創(chuàng)新的算法都會一起打包在MLxtend中。
3. datacleaner
datacleaner由Randal Olson開發(fā),他認(rèn)為自己開發(fā)的datacleaner是一個“能自動清除數(shù)據(jù)集并且讓它們便于分析的Python工具?!彼J(rèn)為:datacleaner所做的將會節(jié)約你大量的編碼和清理數(shù)據(jù)的時間。
datacleaner還處于開發(fā)過程中,但目前已經(jīng)能夠處理以下常規(guī)(傳統(tǒng)方式下耗時量巨大的)數(shù)據(jù)清洗任務(wù):
在列的基礎(chǔ)上,用模式或中位數(shù)替換丟失的值
用數(shù)值等價物對非數(shù)值變量進(jìn)行編碼等
4. auto-sklearn
auto-sklearn由德國弗萊堡大學(xué)機(jī)器學(xué)習(xí)自動算法小組開發(fā),是針對Scikit-learn環(huán)境的自動機(jī)器學(xué)習(xí)工具。
auto-sklearn能將機(jī)器學(xué)習(xí)用戶從算法選擇和高參數(shù)調(diào)整中解救出來,它利用了近期在貝葉斯優(yōu)化、元學(xué)習(xí)和集成構(gòu)筑上研究的優(yōu)勢。其大致工作原理如下:
5. Deep Mining
Deep Mining由來自MIT CSAIL實驗室的Sebastien Dubois開發(fā),是一個機(jī)器學(xué)習(xí)深管道自動調(diào)諧器。為了盡快實現(xiàn)最好的分類精度,該軟件將迭代、智能地測試一些超參數(shù)集。
另外值得一提的是文件夾GCP-HPO包含所有高斯過程(GCP)的實現(xiàn)代碼以及基于其基礎(chǔ)上的超參數(shù)優(yōu)化(HPO)。高斯過程(GCP)可以看作是一種改進(jìn)的版本。這項新技術(shù)被證明優(yōu)于基于GP的超參數(shù)優(yōu)化,已經(jīng)遠(yuǎn)比隨機(jī)搜索表現(xiàn)要好。
6. Rusty Machine
Rusty Machine是基于Rust的機(jī)器學(xué)習(xí)方法,Rust是由Mozilla贊助開發(fā)的一種與C和C++較為相似的計算機(jī)編程語言,其號稱“Rust是一種系統(tǒng)的編程語言,運(yùn)行速度極快,可以防止錯誤,并保證線程安全。”
Rusty Machine的開發(fā)者是否活躍,目前支持一系列想學(xué)習(xí)技術(shù),包括:線性回歸、邏輯回歸、k-均值聚類、神經(jīng)網(wǎng)絡(luò)、支持向量機(jī)等等。
Rusty Machine還支持?jǐn)?shù)據(jù)結(jié)構(gòu),如內(nèi)置向量和矩陣。作為一種常見的模型接口,Rusty Machine為每個支持的模型提供了訓(xùn)練和預(yù)測的功能。
7. scikit-image
scikit-image圖像是針對SciPy使用Python的圖像處理方法。scikit-image是機(jī)器學(xué)習(xí)嗎?它其實是一個機(jī)器學(xué)習(xí)項目(沒有確切地表示他們必須用機(jī)器學(xué)習(xí)方法),scikit-image就屬于數(shù)據(jù)處理和準(zhǔn)備工具這一類。該項目包括一些圖像處理算法,如點檢測、濾波、特征選擇和形態(tài)學(xué)等。
示例:
8. NLP Compromise
NLP Compromise是由Javascript語言編寫的,其在瀏覽器中進(jìn)行自然語言處理過程。NLP Compromise非常容易安裝和使用,以下是它的一個使用范例:
9. Datatest
Datatest是一個依靠數(shù)據(jù)沖突的測試集,其由Python編寫。
Datatest擴(kuò)展了數(shù)據(jù)校正的測試工具標(biāo)準(zhǔn)數(shù)據(jù)庫
Datatest是一種尋找數(shù)據(jù)沖突和準(zhǔn)備的不同方式,如果你的大部分時間都被花在這個任務(wù)上,也許換一種新的方法是值得的。
10. GoLearn
GoLearn是一種針對Go語言的機(jī)器學(xué)習(xí)庫,自稱Go語言機(jī)器學(xué)習(xí)的“內(nèi)置電池”學(xué)習(xí)庫。簡潔、易定制是其追求的目標(biāo)。
對于一些想分支出來的Python用戶或者想嘗試下機(jī)器學(xué)習(xí)的Go語言用戶來說,GoLearn是一個不錯的選項。GoLearn實現(xiàn)了熟悉的Scikit-learn 適應(yīng)/預(yù)測界面,可實現(xiàn)快速預(yù)估測試和交換。。
GoLearn是一個成熟的項目,它提供了交叉驗證和訓(xùn)練/測試等輔助功能。如果你還記得的話,之前提到的 Rusty Machine還沒有實現(xiàn)這個功能。如果要嘗試一門新的Go語言的話,GoLearn可能是你所追求的那個。
總結(jié):以上即十個機(jī)器學(xué)習(xí)項目概覽,既有小眾卻簡潔好用的學(xué)習(xí)框架,也有新興語言衍生出來的學(xué)習(xí)庫資料。再次重申不建議讀者去嘗試所有的項目,但是如果里面剛好有項目能解決你目前所遇到的問題,請盡管去使用。
PS : 本文由雷鋒網(wǎng)獨家編譯,未經(jīng)許可拒絕轉(zhuǎn)載!
via KDnuggets等
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。