[转]机器学习工具汇总

原作者: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阅读 212,542评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,596评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,021评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,682评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,792评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,985评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,107评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,845评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,299评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,612评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,747评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,441评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,072评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,828评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,069评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,545评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,658评论 2 350

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,846评论 25 707
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,637评论 18 139
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,066评论 4 62
  • 做一些事,有时候会心慌,会很难受,跟不想做,但是懒得话可以很舒服的躺在床上歇着,不用很忙。 不用忙,不用干活,那该...
    不好听的时光阅读 171评论 0 0
  • 今天看四大名助,上面一个男孩因为父母离婚。所以由开朗变成封闭。他的父亲很自责。老实说,从这个男孩身上我看到了自己。...
    蝎蝎迪迪阅读 227评论 0 0