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