机器学习的商业实战入门

jopen 9年前
 

你可能听说过谷歌和非死book这样的公司如何利用机器学习来开车、识别语音和分类图片。你可能会想,这很酷。但这和你的工作有什么关系呢?好吧,来看看这些公司如何使用机器学习吧。

  • 一家支付处理公司在几十亿次交易中,实时检测到了欺诈行为,每月减少损失达100万美元。
  • 一家汽车保险公司用详细的地理空间数据,预测保险索赔的损失,让他们能够对极端天气对生意的影响进行建模。
  • 有了车载通信技术提供的数据,一家厂商发现了运营指标的规律,并用它们来驱动前瞻性主动维护业务。

这些成功的故事中有两个相同的主题。首先,每个应用都基于大数据——极大数量的、格式不同的快速数据。第二,每个案例中,机器学习都揭示出了新的洞察,并驱动了价值的增长。

机器学习的技术基础已有超过50年历史了,但是直到最近,学术界之外的人才注意到它的能力。机器学习需要大量的计算能力,但早期的使用者们缺乏成本划算的基础设施。

近期,机器学习引起了许多人的兴趣,逐渐活跃起来,这归功于一些正在融合的趋势。

  • 摩尔定律极大降低了计算成本;大规模计算能力可用最小的成本获得。
  • 具有独创性的新算法提升了计算速度。
  • 数据科学家积累了许多理论和实践知识,提升了机器学习的效率。

总的来说,大数据带来的飓风创造了许多无法用传统统计学方法解决的分析问题。需要是发明之母。旧的分析方法已经不适用于今天的商业环境。

机器学习技术

目前,世界上共有几百种不同的机器学习算法。最近,仅在分类方面,有一篇论文就测试了超过150个算法。这个概览覆盖了数据科学家用来驱动价值的关键技术。

数据科学家将机器学习分为监督式学习和非监督式学习。监督式学习技术需要结果的先验知识。例如,如果我们正在研究一个市场活动的历史数据,我们可以根据市场是否产生预期的反应来对数据进行分类,或决定下一步要花多少钱。监督式学习技术为预测和分类提供了强大的工具。

然而,经常会出现的情况是,我们并不知道一个事件「最终」的结果。例如,在某些欺诈的案例中,只有当事情发生很久以后,我们才可能知道某次交易是不是欺诈。在这种情况下,与其试图预测哪些交易是欺诈,我们不如使用机器学习来识别那些可疑的交易,并做出标记,以备后续观察。但我们对某种特定的结果缺乏先验知识、但仍希望从数据中汲取有用的洞察时,就要用到无监督式学习。

使用最广泛的监督式学习技术包括以下这些:

  • 广义线性模型(GLM,Generalized linear models):这是线性回归的一种高级形式,支持不同的概率分布和 联系函数,能让分析师更有效地对数据进行建模。GLM用格点搜索进行加强,是经典统计学和最先进的机器学习的混血产物。
  • 决策树:这是一种监督式学习模型,能够学习一组将总体逐步划分为若干小片段的规则。这些小片段对目标变量来说是同质的。
  • 随机森林:一种流行的集成学习方法,可以训练许多决策树,然后将这些决策树进行平均,做出预测。这个平均的过程产生了一个更一般的解,过滤掉了数据中的随机噪声。
  • 梯度提升机器(GBM,Gradient boosting machine):这种方法通过训练一系列决策树来产生一个预测模型,在其中,后序决策树会校正前序决策树所产生的预测误差。
  • 深度学习:这种方法能用复杂多层网络的形式对数据中的高级模式进行建模。由于深度学习是对问题建模来说最一般的方法,因此有潜力解决机器学习中最具有挑战性的问题。

无监督式学习的关键技术包括以下这些:

  • 聚类:一种将物体分成小类的技术。这些类别在许多度量上彼此相似。顾客细分就是聚类的一个实际例子。现在有许多不同的聚类算法,应用最广泛的是k-均值算法。
  • 异常检测:这是一种识别意外事件或结果的过程。在安全和防欺诈领域,不可能对每一次交易都进行调查;我们需要系统对那些最可疑的交易做出标记。我们之前在监督式学习部分讨论过的深度学习,也可以用来进行异常检测。
  • 维数缩减:这个过程可以减少纳入考虑的变量数量。随着企业和组织获取的数据量越来越多,可能的预测因子(或特征)迅速增长。想要识别数据对某一特定问题提供了什么有价值的信息是一件很重要的工作。主成分分析(PCA)会对一组原始特征进行评估,并将它们减少为彼此独立的索引。

在机器学习中,某些技术总是比其他的技术表现好,但对某一个特定的问题来说,很难说哪一个技术是最好的。这样,大多数数据科学家更喜欢尝试多种技术,并从中选择最好的模型。由于这个原因,高性能就显得非常必要,因为它可以让数据科学家在更少的时间内尝试更多的选项。

机器学习实战

在工业和商业领域,企业们都在使用机器学习来提升收入和降低成本,因为在许多任务上它们比人类更加高效。下面就是7个例子,证明机器学习的多功能性和广泛的适用性。

  1. 预防欺诈:PayPal是在线支付产业的龙头老大,每年拥有超过1.5亿活跃的电子钱包用户,支付额超过2000亿美元。在这个体量下,即使是小比率的欺诈也会带来极大的损失。在过去,这家公司在欺诈行为上的损失曾达到每月1000万美元。为了解决这个问题,PayPal建立了一个由顶尖研究者组成的团队,他们使用最先进的机器学习技术构建了一个能实时识别欺诈性交易的模型。
  2. 选择电子广告的目标客户。广告科技公司Dstillery用机器学习来帮助Verizon和Williams-Sonoma这样的公司在实时竞价平台上定位电子广告的目标。Dstillery使用了用户的浏览历史、访问、点击和购买信息,能在每秒内做出几千次预测,同时处理几百个广告活动。这样,这家公司在广告定位上的表现极大地超过了人类市场分析人员,优化了每美元所带来的市场影响。
  3. 内容推荐。Comcast公司基于每个交互式电视服务的顾客的历史观看习惯,提供了个性化的实时内容推荐。Comcast用机器学习技术分析了几十亿个历史记录,对每一个顾客做出了独特的品味描述,然后将顾客的品味分成不同的类别。对每一类顾客,Comcast都能实时跟踪和显示最流行的内容,这样顾客就能看到目前正在火爆的潮流。最后的结果就是:更好的推荐系统,更高的利用率,更满意的顾客。
  4. 建造更好的汽车。捷豹路虎生产的新汽车上装有60个机载计算机,每天在2万个参数上产生1.5GB的数据。这家公司的工程师利用机器学习来提取数据并理解顾客如何与汽车互动。有了这些真实的使用数据,设计师就能预测零件失效和潜在的安全问题,有助于他们设计车况更好的汽车。
  5. 瞄准最好的潜在市场。市场人员用「购买倾向」模型作为工具来决定最好的潜在销售市场,并提供最好的产品。思科的产品系列很多,从路由器到有线电视盒子,应有尽有。它的市场分析团队在几小时内训练了6万个模型,对1.6亿个潜在市场进行了打分。他们使用了一系列的技术(例如决策树和梯度提升机器),极大提升了模型的精确度。这些模型提升了销售量,减少了无用的销售电话,也提升了销售代表的满意度。
  6. 优化媒体。NBC环球公司存储了几百TB分配到国际有线电视的媒体文件。对这些在线资源的有效管理对互联网客户的分配支持是非常必要的。这家公司使用了机器学习,基于多参数的组合来预测每个项目的未来需求。基于这样的预测,这家公司将预测需求较低的媒体文件移入低成本的离线存储。机器学习带来的预测比基于单参数(例如文件年龄)的随机规则更加高效。结果,NBC环球在保持客户满意度的情况下,降低了总体存储成本。
  7. 改善医疗保障服务。对医院来说,病人再次入院是一个严重的问题,这不仅会影响病人的健康和福利。如果一家医院的再入院率高,将面临美国联邦医疗保险和私人保险公司的处罚,所以考虑到经济利益,医院通常只会允许那些恢复得很好、看起来会保持健康的病人出院。卡罗莱纳州医疗系统 (CHS)使用机器学习,对病人的风险进行打分,帮助病例管理员决定某个病人是否应该出院。这个系统提升了护士和病例管理员的效率,并根据风险和病症的复杂性对病人进行排序。结果,CHS的再入院率从21%降到了14%。

机器学习的软件要求

适合机器学习的软件随处可见,机构在开发功能时有许多选择,以下是评估机器学习时应该考虑的需求:

  1. 速度
  2. 实现价值的时间
  3. 模型准确性
  4. 集成简便
  5. 灵活部署
  6. 可用性
  7. 可视化

让我们分别来看一看:

速度。时间就是金钱,运算快速的软件能够使你高薪雇用的数据科学更具生产力。实践中的数据科学往往需要不断实验和迭代,一个项目可能数百次测试,运算速度上的微小改善可能就会显著的提升效率。考虑到每天的数据量,高性能的机器学习软件必须在分布式平台上运行,这样你就可以就工作量分散在多台服务器上。

实现价值的时间。执行期的表现只是「实现价值的时间」中的一部分。公司生意的度量标准应该是整个项目的完成时间,从数据获取到部署完成。在现实情况下,这意味着你的机器学习软件应该将Hadoop和云格式整合起来,并且应该输出的预测模型的代码能够被部署在公司的任何其他地方。

模型准确性。准确性关系重大,尤其是设计到高风险行业。例如交易中的欺诈监测,在准确性上提高一点就能每年节省数百万美元。你的机器学习软件应该给予数据科学家充分授权,让他们可以使用公司的所有数据,而不是只让他们处理某些样本。

集成简便。你的机器学习软件应该与你生产过程中复杂的大数据软件共存。理想化的机器学习软件应该是运行在日常硬件上,而不需要专门的高性能计算设备,也不需要GPU芯片等外加设备。

灵活部署。你的机器学习软件应该在一定范围内提供多种部署选择,包括Hadoop上的主机托管或者独立的计算机集群。如果云服务是公司架构中的一部分,务必要寻找那些能够运行在多种云平台的软件,包括AWS、微软Azure和谷歌云平台。

可用性。数据科学家会使用不同的软件工作来进行工作,包括R、Python、Scala等分析语言。你的机器学习平台应该可以非常简便的将这些工具集成起来。另外,精心设计的机器学习算法应该包含以下几种省时功能:

  • 处理缺失数据的能力
  • 转化分类数据的能力
  • 管理复杂性的规则化技术
  • 适用于测试及学习自动化的网格搜索能力
  • 自动化的交叉验证

可视化。成功的预测模型需要数据科学家和商业用户进行合作,因此,你的机器学习软件应该为你的商业用户提供相应的工具,便于他们对预测模型的特性和各类特征进行可视化评估。

许多开发者相信,机器学习将变得像搜索引擎一样无处不在和使用简便。在搜索引擎方面,谷歌、雅虎等公司向普通用户释放了Web的力量,让他们能在浩如烟秒的网页中找到自己想要的信息。同样的,机器学习也能帮助各种各样的企业利用现代化的数据集获取有价值的洞察。目前,我们还未做到这一点。要达到理想的未来,还需要更多的投入——不仅来自机器学习开发者,还来自那些数据量和分析需求早已超出传统方法处理范畴的商业用户。

来自 infoworld ,机器之心编译出品。编译:汪汪,赵云峰。