[轉(zhuǎn)]機器學習工具匯總

原作者:Jason Brownlee

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

在這篇文章中,你將會見識到各種機器學習工具。了解它們?yōu)槭裁粗匾?,以及可供選擇的工具類型。

為什么要使用工具

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

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

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

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

有目的地選擇工具

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

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

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

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

好工具 VS 強大工具

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

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

最佳實踐:強大的機器學習工具體現(xiàn)了過程,配置和實現(xiàn)的最佳實踐。比如自動配置機器學習算法,工具內(nèi)部結(jié)構(gòu)良好的處理方式。

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

何時使用機器學習工具

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

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

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

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

平臺 VS 庫

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

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

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

機器學習平臺

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

機器學習平臺的特征有:

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

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

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

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

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

WEKA Machine Learning Workbench

R Platform。

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

機器學習庫

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

機器學習庫的特征有:

它們?yōu)橐粋€機器學習項目中一個或多個步驟提供了特定的功能。

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

它們?yōu)樘囟ㄓ美?,問題類型或環(huán)境量身定制。

以下是一些機器學習庫:

python中的scikit-learn。

Java中的JSAT。

.Net中的Accord Framework。

機器學習工具界面

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

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

下面是一些常見的界面。

圖形化用戶界面

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

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

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

用戶可以使用界面進行結(jié)構(gòu)化處理。

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

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

KNIME。

RapidMiner。

Orange

命令行界面

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

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

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

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

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

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

Waffles。

WEKA Machine Learning Workbench

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

應用程序編程接口

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

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

你可以創(chuàng)建自己的機器學習工具。

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

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

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

面向Python的Pylearn 2。

面向Java的Deeplearning4j

面向C的LIBSVM。

參考文章:

25個Java機器學習工具&庫

最好的Python機器學習庫

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

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

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

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

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

本地工具

本地工具是下載、安裝并運行在本地環(huán)境的。

專為內(nèi)存中數(shù)據(jù)和算法設計。

由運行配置和參數(shù)控制。

集成到你自己的系統(tǒng),以滿足你的需求。

以下是一些本地工具:

面向C++的Shogun Library

面向GoGoLearn

遠程工具

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

專為運行更大規(guī)模數(shù)據(jù)設計。

在多系統(tǒng),多核心和共享內(nèi)存上運行。

為適應大規(guī)模系統(tǒng),所以服務提供的算法更少。

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

通過遠程過程調(diào)用集成到你本地環(huán)境中。

以下是一些遠程工具:

Google Prediction API。

AWS Machine Learning。

Microsoft Azure Machine Learning

參考文章:

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

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

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

面向HadoopApache Mahout

SparkMLlib。

PredictionIO。

總結(jié)

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

你學習到了三種結(jié)構(gòu)化看待機器學習工具的方式:

平臺 VS 庫

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

本地工具 VS 遠程工具

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

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

原文鏈接:Machine Learning Tools

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

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

友情鏈接更多精彩內(nèi)容