[轉]機器學習工具匯總

原作者:Jason Brownlee

工具是機器學習的重要組成部分,選擇合適的工具與使用最好的算法同等重要。

在這篇文章中,你將會見識到各種機器學習工具。了解它們為什么重要,以及可供選擇的工具類型。

為什么要使用工具

機器學習工具使得應用機器學習更快,更簡單,更有趣。

更快:好工具可以自動化應用機器學習過程中的每一步。這意味著,從提出創意到得到結果的時間大大縮短。如果你從頭開始自己實現每一個功能,這花的時間要比選擇現有工具要長的多。

更簡單:你可以花時間來選擇合適的工具,而不是研究、實現技術來完成任務。如果你自己實現,你必須對每一個過程都十分精通。這需要研究,資深經驗來理解技術,以及高水平的工程技能來確保有效執行。

有趣:對于初學者得到良好結果的門檻低。你可以花費額外的時間來得到更好的結果,或者進行更多的項目實踐。如果不使用這些工具,你將會花費大部分時間來構建你自己的工具,而沒將時間集中在獲取結果上。

有目的地選擇工具

你不希望為學習、使用機器學習工具而學習、使用機器學習工具。必須有目的地使用工具。

機器學習工具可以讓你在機器學習項目中交付結果。當你試圖決定是否要學習新工具或是新功能的時候,問自己這么一個問題:

這些工具如何幫助我在機器學習項目中交付結果?

機器學習工具不僅僅是機器學習算法的實現。它們可能是,但在你解決機器學習問題的過程中,它們也可以為每一個過程提供幫助。

好工具 VS 強大工具

你想在你正在解決的問題上使用最好的工具。那么如何區分好的機器學習工具與強大機器學習工具之間的區別呢?

直觀的界面:強大的機器學習工具在應用機器學習過程的子任務上提供直觀的界面。在任務的界面中有良好的映射以及適應性。

最佳實踐:強大的機器學習工具體現了過程,配置和實現的最佳實踐。比如自動配置機器學習算法,工具內部結構良好的處理方式。

值得信賴的資源:強大的機器學習工具維護良好,時常保持更新,并具有社區人群。尋找關于一個工具相關的活動,是此工具被使用的標志。

何時使用機器學習工具

機器學習工具能夠節省你的時間,并在項目中持續為你提供良好的結果。以下是使用機器學習工具能夠為你帶來的一些好處:

入門:當你剛剛入門時,機器學習工具可以引導你完成整個項目并快速得到良好的結果,而且會給予你繼續下一個項目的信心。

日常:如果你想快速得到一個問題的良好結果,機器學習工具可以讓你集中關注特定的問題,而不是得到答案需要的技術深度。

項目工作:當你正在從事大型工程時,機器學習工具可以幫助你制定原型解決方案,進行需求分析,并且給出你可能要實現的系統的模板。

平臺 VS 庫

機器學習工具有許多。谷歌搜索到的結果就足以讓你頭暈目眩了。

一種有用的機器學習工具分類方式是將它們分成平臺和庫。平臺為你運行一個項目所需的全部功能,而庫只為你完成一個項目提供部分功能。

這么區分并不完美,因為有些機器學習平臺同時也是庫,有些庫也提供了圖形化用戶界面。然而,這提供了很好的比較方式,從特定目的工具中區分具體使用情形。

機器學習平臺

機器學習平臺提供了從頭到尾完成一個機器學習項目的功能。也就是,數據分析,數據準備,建模和算法評估及選擇。

機器學習平臺的特征有:

它們提供了機器學習項目中每一個過程所需要的功能。

界面可以是圖形化的,也可以是命令行,平臺將所有的或部分界面結合起來。

它們提供功能的松耦合,你可以在特定項目中將各個部件結合起來。

它們是為通用目的用途和探索而量身定制的,而不是為了速度,可擴展性和準確性。

以下是一些機器學習平臺:

WEKA Machine Learning Workbench

R Platform

PythonSciPy的子集(比如Pandasscikit-learn)。

機器學習庫

機器學習庫提供了完成一個機器學習項目部分模塊的功能。比如,一個庫可能提供了一系列建模算法。

機器學習庫的特征有:

它們為一個機器學習項目中一個或多個步驟提供了特定的功能。

它們的接口通常是需要編程的應用程序編程接口。

它們為特定用例,問題類型或環境量身定制。

以下是一些機器學習庫:

python中的scikit-learn

Java中的JSAT

.Net中的Accord Framework

機器學習工具界面

另一種區分機器學習工具的方式是根據它們提供的界面。

這可能令人迷惑,因為一些工具提供了多個界面。然而,這可能為你挑選機器學習工具提供了起點,甚至可能為你區分這些工具提供了幫助。

下面是一些常見的界面。

圖形化用戶界面

機器學習工具提供了圖形用戶界面,包括窗口,得分,點擊,專注于可視化。圖形化用戶界面的好處有:

允許掌握較少技術的用戶完成機器學習工作。

專注于處理過程,以及如何最大限度地利用機器學習技術。

用戶可以使用界面進行結構化處理。

更注重于信息的圖形化展示,比如可視化。

以下是一些有圖形化界面的機器學習工具:

KNIME

RapidMiner

Orange

命令行界面

機器學習工具提供了命令行界面,包括命令行程序,命令行參數,注重于輸入和輸出。命令行用戶界面的好處有:

允許不是程序員的技術用戶完成機器學習項目。

提供了許多專門的程序或機器學習項目特定子任務的編程模型。

根據需要的輸入和將會得到的輸出分解機器學習任務。

通過記錄或腳本命令和命令行參數來促進有復驗性的結果。

以下是一些提供命令行界面的機器學習工具:

Waffles

WEKA Machine Learning Workbench

如果你喜歡在命令行下工作,看看這本書《Data Science at the Command Line: Facing the Future with Time-Tested Tools》,可以讓你了解如何在命令行下解決機器學習問題。

應用程序編程接口

機器學習工具提供了應用程序編程接口,可以讓你自由決定在你的程序中使用什么元素以及如何使用。應用程序編程接口的好處有:

你可以將機器學習算法合并到自己的軟件項目當中。

你可以創建自己的機器學習工具。

你可以在機器學習項目中靈活使用自己的處理流程和自動操作。

你可以將自己的方法與庫提供的方法以及擴展提供的方法結合。

以下是一些帶有應用程序編程接口的機器學習工具:

面向Python的Pylearn 2

面向Java的Deeplearning4j

面向C的LIBSVM

參考文章:

25個Java機器學習工具&庫

最好的Python機器學習庫

本地機器學習工具 VS 遠程機器學習工具

比較機器學習工具最后一個方法是這個工具是本地工具還是遠程工具。

本地工具是你下載并安裝的,在本地使用,而遠程工具運行在第三方服務器上。

這樣區分也許有些模糊,因為有些工具可以以本地或遠程的方式運行。另外,如果你是優秀的工程師,你可以在自己的服務器上配置幾乎所有的工具作為托管解決方案。

然后,這么區分可能很有用,能夠幫助你理解和選擇機器學習工具。

本地工具

本地工具是下載、安裝并運行在本地環境的。

專為內存中數據和算法設計。

由運行配置和參數控制。

集成到你自己的系統,以滿足你的需求。

以下是一些本地工具:

面向C++的Shogun Library

面向GoGoLearn

遠程工具

遠程工具托管在服務器上,并且可以從本地環境調用。這些工具通常被稱為將機器學習作為服務(MLaaS)。

專為運行更大規模數據設計。

在多系統,多核心和共享內存上運行。

為適應大規模系統,所以服務提供的算法更少。

更簡單的接口,在運行配置和算法參數上提供較少的控制。

通過遠程過程調用集成到你本地環境中。

以下是一些遠程工具:

Google Prediction API

AWS Machine Learning

Microsoft Azure Machine Learning

參考文章:

七種基于云計算的機器學習服務

機器學習API Top 10:AT&T Speech、IBM Watson和Google Prediction

也有一些工具可以讓你建立自己的遠程解決方案,并作為服務集成到你的本地環境中。比如:

面向HadoopApache Mahout

SparkMLlib

PredictionIO

總結

在這篇文章中,你了解到了為什么工具在應用機器學習中很重要。你了解到,沒有良好的機器學習工具,你就必須從無到有實現所有的技術,而這需要專業技術知識和高效工程實踐。

你學習到了三種結構化看待機器學習工具的方式:

平臺 VS 庫

圖形化用戶界面 VS 命令行界面 VS 應用程序編程接口

本地工具 VS 遠程工具

你在使用什么機器學習工具呢?歡迎評論并分享你正在使用的機器學習工具。

作者簡介:Jason Brownlee,MachineLearningMastery.com的Editor-in-chief,專業程序員,機器學習踐行者。

原文鏈接:Machine Learning Tools

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,578評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,701評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,691評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,974評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,694評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,026評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,015評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,193評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,719評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,442評論 3 360
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,668評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,151評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,846評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,255評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,592評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,394評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,635評論 2 380

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,775評論 25 708
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,836評論 18 139
  • 發現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,180評論 4 61
  • 做一些事,有時候會心慌,會很難受,跟不想做,但是懶得話可以很舒服的躺在床上歇著,不用很忙。 不用忙,不用干活,那該...
    不好聽的時光閱讀 177評論 0 0
  • 今天看四大名助,上面一個男孩因為父母離婚。所以由開朗變成封閉。他的父親很自責。老實說,從這個男孩身上我看到了自己。...
    蝎蝎迪迪閱讀 249評論 0 0