开发者成功使用机器学习的十大诀窍

在提供发现埋藏数据深层的模式的能力上,机器学习有着潜在的能力使得应用程序更加的强大并且更能响应用户的需求。精心调校好的算法能够从巨大的并且互不相同的数据源中提取价值,同时没有人类思考和分析的限制。对于开发者而言,机器学习为应用业务的关键分析提供了希望,从而实现从改善客户体验到提供产品推荐上升至超个性化内容服务的任何应用程序。

像Amazon和Micorosoft这样的云供应商提供云功能的机器学习解决方案,承诺为开发者提供一个简单的方法,使得机器学习的能力能够融入到他们的应用程序当中,这也算是最近的头条新闻了。承诺似乎很好,但开发者还需谨慎。

对于开发人员而言,基于云的机器学习工具带来了使用机器学习创造和提供新的功能的可能性。然而,当我们使用不当时,这些工具会输出不好的结果,用户可能会因此而感到不安。测试过微软年龄检测机器学习工具的人都会发现,伴随即插即用的易用性而来的是主要的精度问题——对于关键应用程序或者是重大决策,它应该不值得信赖。

想要在应用程序中成功地融入机器学习的开发者,需要注意以下的一些关键要点:

1. 算法使用的数据越多,它的精度会更加准确,所以如果可能要尽量避免抽样。机器学习理论在预测误差上有着非常直观的描述。简而言之,在机器学习模型和最优预测(在理论上达到最佳可能的误差)之间的预测误差的差距可以被分解为三个部分:

由于没有找到正确函数形式的模型的误差

由于没有找到最佳参数的模型的误差

由于没用使用足够数据的模型的误差

如果训练集有限,它可能无法支撑解决这个问题所需的模型复杂性。统计学的基本规律告诉我们,如果我们可以的话,应该利用所有的数据而不是抽样。

2. 对给定的问题选择效果最好的机器学习算法是决定成败的关键。例如,梯度提升树(GBT)是一个非常受欢迎的监督学习算法,由于其精度而被业内开发人员广泛使用。然而,尽管其高度受欢迎,我们也不能盲目的把这种算法应用于任何问题上。相反,我们使用的算法应该是能够最佳地拟合数据特征同时能够保证精度的算法。

为了证明这个观点,尝试做这样一个实验,在数据集 the popular text categorization dataset rcv1上测试GBT算法和线性支持向量机(SVM)算法,并比较两者的精度。我们观察到在这个问题上,就错误率而言,线性SVM要优于GBT算法。这是因为在文本领域当中,数据通常是高维的。一个线性分类器能够在N-1维当中完美的分离出N个样本,所以,一个样本模型在这种数据上通常表现的更好。此外,模型越简单,通过利用有限的训练样本来避免过拟合的方式学习参数,并且提供一个精确的模型,产生的问题也会随之越少。

另一方面,GBT是高度非线性的并且更加强大,但是在这种环境中却更难学习并且更容易发生过拟合,往往结果精度也较低。

3. 为了得到一个更好的模型,必须选择最佳的的算法和相关的参数。这对于非数据科学家而言可能不容易。现代的机器学习算法有许多的参数可以调整。例如,对于流行的GBT算法单独的就有十二个参数可以设置,其中包括如何控制树的大小,学习率,行或列的采样方法,损失函数,正则化选项等等。一个特有的项目需要在给定的数据集上为每一个参数找到其最优值并且达到最精准的精度,这确实不是一件容易的事。但是为了得到最佳的结果,数据科学家需要训练大量的模型,而直觉和经验会帮助他们根据交叉验证的得分,然后决定使用什么参数再次尝试。

4. 机器学习模型会随着好的数据而变得更好,错误的数据收集和数据处理会降低你建立预测和归纳的机器学习模型的能力。根据经验,建议仔细审查与主题相关的数据,从而深入了解数据和幕后数据的生成过程。通常这个过程可以识别与记录、特征、值或采样相关的数据质量问题。

5. 理解数据特征并改进它们(通过创造新的特征或者去掉某个特征)对预测能力有着高度的影响。机器学习的一个基本任务就是找到能够被机器学习算法充分利用的丰富特征空间来替代原始数据。例如,特征转换是一种流行的方法,可以通过在原始数据的基础上使用数学上的转换提取新的特征来实现。最后的特征空间(也就是最后用来描述数据的特征)要能更好的捕获数据的多复杂性(如非线性和多种特征之间的相互作用),这对于成功的学习过程至关重要。

6. 在应用中,选择合适的灵感来自商业价值的目标函数/损失函数对于最后的成功至关重要。几乎所有的机器学习算法最后都被当成是一种优化问题。根据业务的性质,合理设置或调整优化的目标函数,是机器学习成功的关键。

以支持向量机为例,通过假设所有错误类型的权重相等,对一个二分类问题的泛化误差进行了优化。这对损失敏感的问题并不合适,如故障检测,其中某些类型的错误比重可能比其它类型的要高。在这种情况下,建议通过在特定的错误类型上,增加更多的惩罚来解释它们的权重,从而调整SVM的损失函数。

7. 确保正确地处理训练数据和测试数据,如此当在生产中部署该模型时,测试数据能够模拟输入数据。例如,我们可以看到,这对于时间依赖性数据是多么的重要。在这种情况下,使用标准的交叉验证方法进行训练,调整,那么测试模型的结果可能会有偏差,甚至会不准确。这是因为在实施平台上它不能准确的模拟输入数据的性质。为了纠正这一点,在部署时我们必须仿照模型来部署使用。我们应该使用一个基于时间的交叉验证,用时间较新的数据来验证训练模型。

8. 部署前理解模型的泛化误差。泛化误差衡量模型在未知数据上的性能好坏。因为一个模型在训练数据上的性能好并不意味着它在未知的数据上的表现也好。一个精心设计的模拟实际部署使用的模型评估过程,是估计模型泛化误差所需要的。

一不留心就很容易违反交叉验证的规则,并且也没有一种显而易见的方法来表现交叉验证的非正确性,通常在你试图寻找快捷方式计算时发生。在任何模型部署之前,有必要仔细注意交叉验证的正确性,以获得部署性能的科学评估。

9.知道如何处理非结构化和半结构化数据,如文本、时间序列、空间、图形或者图像数据。大多数机器学习算法在处理特征空间中的数据时,一个特征集代表一个对象,特征集的每一个元素都描述对象的一个特点。在实际当中,数据引进时并不是这种格式化的形式,往往来自于最原始的格式,并且最后都必须被改造成机器学习算法能够识别的理想格式。比如,我们必须知道如何使用各种计算机视觉技术从图像中提取特征或者如何将自然语言处理技术应用于影片文本。

10.学会将商业问题转换成机器学习算法。一些重要的商业问题,比如欺诈检测、产品推荐、广告精准投放,都有“标准”的机器学习表达形式并且在实践当中取得了合理的成就。即使对于这些众所周知的问题,也还有鲜为人知但功能更强大的表达形式,从而带来更高的预测精度。对于一般在博客和论坛中讨论的小实例的商业问题,适当的机器学习方法则不太明显。

如果你是一个开发者,学习这十个通往成功的诀窍可能似乎是一个艰难的任务,但是不要气馁。事实上,开发者不是数据科学家。认为开发人员可以充分利用所有的机学习工具是不公平的。但是这并不意味着开发人员没有机会去学习一些有水准的数据科学从而改进他们的应用。随着适当的企业解决方案和自动化程度的提高,开发人员可以做模型构建到实施部署的一切事情,使用机器学习最佳实践来保持高精度。

自动化是在应用程序中扩展机器学习的关键。即使你能够供得起一批小的数据科学家团队和开发者携手合作,也没有足够的人才。像Skytree的AutoModel(自动化模型)能够帮助开发者自动地确定最佳的参数并且使得算法得到最大的模型精度。一个易于使用的接口可以引导开发人员通过训练加工,调整并且测试模型来防止统计上的错误。

自动化机器学习过程,有许多方式,包括数据科学家或开发者的人工智能原理,允许算法去思考,学习并且承受更多的建模重任。也就是说,认为数据科学家能够从机器学习中解耦是错误的,特别是在关键任务模型上。谨防这种能够简单使用机器学习功能的承诺,即能够在不需要正确复杂的思考下或者可扩展的应用技术下就使用机器学习——这通常并不会得到高预测精度和机器学习提供的高商业价值结果。更糟糕的是,在应用程序中使用不好的模型实际上可能会适得其反,并迅速在其用户之间建立不信任的产品或服务。

作者简介:Alexander Gray,Skytree首席技术官,佐治亚理工学院计算机学院副教授,主要致力于大规模数据集的机器学习算法技术研发,1993年开始在NASA喷气推进实验室机器学习系统小组从事大规模科学数据的工作。

译者简介: 刘帝伟,中南大学软件学院在读研究生,关注机器学习、数据挖掘及生物信息领域。

原文发布时间为:2015-07-15

时间: 2024-08-31 21:52:59

开发者成功使用机器学习的十大诀窍的相关文章

保障移动安全的十大诀窍

随着移动设备的普及度不断攀升,新型商务及娱乐应用也开始在市场上大规模出现.如今人们已经可以在移动设备上玩游戏.购物.支付账单并通过社交网络分享观点. "对于消费者而言,网络犯罪似乎还是一种仅仅威胁大型企业.无暇侵犯个人权益的隐患.然而在线交易频率的持续走高已经让普通用户成为黑客的目标.移动设备如今已经开始保存大量个人重要信息,包括信用卡号码,因此高枕无忧的时代已经一去不返了,"Stonesoft公司CISO Joona Airamo表示. 恶意软件严重威胁移动设备安全,保存在手机或平板

在互联网上成功所必备的十大思维能力

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 大家都知道互联网上到处都是金山银山,当然也到处是暗礁陷阱,如果要想在互联网上获得成功,光光依靠钱来砸是行不通的,关键的还是要看运营者们有没有清晰的思维,也就是说要想在互联网上获得成功就必须要具备的思维能力,下面就让笔者给大家总结一下十大互联网思维! 一:物竞天择 互联网是达尔文进化论的现实版,是典型的适者生存,物竞天择,成功的网站都是在惨烈的

成功网络创业者的十大必备素质

欲望 将"欲望"列在创业者必备素质的第一位,你可能多少感到意外.佛经上有一句话,叫做"无欲则刚",意思是说,一个人如果没有什么欲望的话,他就什么都不怕,什么都不必怕了.然而和尚在寺院里修炼一辈子,末了没有一个不想上西天的;道士整日闭关打坐,末了没有一个不想白日飞升的,可见虽然"无欲则刚",但要真正做到"无欲"是一件多么困难的事. "欲",实际就是一种生活目标,一种人生理想.创业者的欲望与普通人的欲望的不同之

制作网页十大诀窍_应用技巧

预早筹划 设计主页未必很艰难.但这一工作与编制传统的宣传品一样,都需要我们谨慎处理和筹划.换言之,我们必须首先确定自己需要传达的主要信息,然后细意斟酌.把所有意念合情合理地组织起来:之后是设计一个页面式样,试用于有代表性的用户,接着重复修订,务求尽善尽美.  尽量精简 主页的作用好比一本书的封面,是为了吸引用户测览你的网址内容.因此,主页的设汁应以醒目为上.令人一目了然.切勿堆砌太多不必要的细节,或使画面过于复杂.在主页上清楚列出三项要点,例如机构名称.提供的产品或服务.以及主页内容(亦即你的其

制作网页十大诀窍

    预早筹划设计主页未必很艰难.但这一工作与编制传统的宣传品一样,都需要我们谨慎处理和筹划.换言之,我们必须首先确定自己需要传达的主要信息,然后细意斟酌.把所有意念合情合理地组织起来:之后是设计一个页面式样,试用于有代表性的用户,接着重复修订,务求尽善尽美.     尽量精简主页的作用好比一本书的封面,是为了吸引用户测览你的网址内容.因此,主页的设汁应以醒目为上.令人一目了然.切勿堆砌太多不必要的细节,或使画面过于复杂.在主页上清楚列出三项要点,例如机构名称.提供的产品或服务.以及主页内容(

新闻电子邮件传播的十大诀窍

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 让消费者阅读一封电子新闻邮件需要对时间.内容和内容相关性做良好平衡.在今天这一点尤其重要.我们的收件箱在垃圾邮件的压力下不堪重负.未经允许的可疑的邮件比以往任何时候都猖獗. 为了增加你的电子新闻邮件的接受.阅读和回复率.你需要遵从以下十点: 1.头脑中要时刻保持"这里面有什么对我有用的信息?"这一问题.这个问题正是消费者在

开发者建议创建Flash站点十大可用性技巧

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 1.记住用户的目标 用户往往带着目的访问一个站点,每个链接,每次点击都要合乎他们的经验并且引导他们通向他们的目标. 当传输你的页面时,应该让关键的导航链接首先装载--万一用户想转到网站其它的区域.模仿通常的用户图形界面往往可以增加可用性. 2. 记住网站的目的 网站设计应该反应商业或者客户的需求,有效的传播主要信息与促进品牌.然而网站的目标最

开发者入门必读:最值得看的十大机器学习公开课

在当下的机器学习热潮,人才匮乏十分显著.截至目前,国内开设人工智能(AI)专业的高校不多,相当多的开发者是跨界入门,需要自学大量知识并摸索.因而优质的学习资源至关重要.因此,雷锋网搜集了全世界范围内最受欢迎的机器学习课程,整理成这份"机器学习十大入门公开课"盘点,集中呈现给各位.这份推荐榜颇费心血,综合考虑了难易.侧重点.时效性等诸多因素,希望能帮助大家找到最适合自己的学习资源. 这些课程全部免费开放,但有些需翻墙,有的缺少中文字幕. 1. 吴恩达"机器学习"公开课

Java程序开发者需要了解的十大清规戒律

程序 对Java开发者来说,有许多的标准和最佳实践.本文列举了每一个开发人员必须遵从的十大基本法则:如果有了可以遵从的规则而不遵从,那么将导致的是十分悲惨的结局. 1. 在你的代码里加入注释 每个人都知道这点,但不知何故忘记了遵守.算一算有多少次你"忘记"了添加注释?这是事实:注释对程序在功能上没有实质的贡献.但是,你需要一次又一次的回到你两个礼拜之前写的代码上来,可能一辈子都是这样,你一定记不住这些代码为什么会这样.如果这些代码是你的,你还比较的幸运.因为它有可能让你回忆起.但是不幸