如何选择Spark机器学习API

作者: Andrew C. Oliver 2017-07-26 17:25:22

本文将简要介绍Spark机器学习库(Spark MLlib’s APIs)的各种机器学习算法,主要包括:统计算法、分类算法、聚类算法和协同过滤算法,以及各种算法的应用。

如何选择Spark机器学习API

你不是一个数据科学家。“根据科技和商业媒体报道,机器学习将防止全球变暖”,显然只有中国的新闻媒体才会发布类似的虚假新闻,可能机器学习能够识别虚假新闻吧(与分类算法有关)?事实上,机器学习还真的可以呢!

那么机器学习能做点什么呢?你又将怎样发现呢?如果你已经使用了Apache Spark进行批处理和流处理,那么现在有一东西可以帮你更好地处理。有一个你在用Spark SQL和Spark流处理的时候很可能同时用到的东西,就是Spark MLlib,Spark MLlib是一个API形式的机器学习库和统计算法。

下面简要介绍一下四种最基本的MLlib APIs,主要包括它们的作用和应用。PS:文中所有标蓝字体均可点击底部阅读原文获取详情。

统计算法

这些API主要是用来进行A-B检验或者A-B-C检验。通常在商业中,我们认为,如果两个东西的平均值相等,那么这两个东西就大体相当了。其实不一定。试想一下,一个汽车制造商换掉汽车座椅之后,做一个关于座椅舒适度的调查。对于个子矮小的用户来说,他们可能觉得座椅更舒服了,但是对于个子高大的用户来说,他们可能会觉得非常不舒服,以至于放弃购买汽车,而个子中等的用户刚好平衡了这个差异。通常,新座椅也许要更舒服一些,但是,如果没有身高超过6英尺的用户购买的话,我们还是失败了。根据Spark的假设测试,你可以先做一个皮尔逊卡方值检验或者一个柯尔莫可洛夫-斯米洛夫检验,先测试一下某个东西的“合适程度”,或者它的取值是否符合“正态分布”。这种方法基本适用于所有需要比较两串数据的情况。“合适程度”表明“你是否喜欢”,或者说新算法是否达到了“优于”旧算法的目的。

分类算法

你的属性是什么?如果你手头有一堆属性不同的东西,你可以让电脑对这些东西进行正确的归类。这里的技巧就是要把各个属性对应到各个“类”,而对于这个分类,并没有标准的正确答案,错误答案倒是不少。如果你认为某人在看一组表格并把它们归类,这就是分类算法。你在使用垃圾邮件过滤器时就已经接触过分类算法了,垃圾邮件过滤器就是过滤掉包含垃圾邮件中常见词语的邮件。分类算法还可以用来诊断患者病情或用来预测哪些用户有可能取消订购有线广播电视(一般是不看体育节目的人)。从本质上来说,分类学习是基于过去的数据标签,然后把这些标签应用到未来的发展预测。

聚类算法

当你跟一个人讨论“机器学习”的时候,如果对方只能说出k-means算法,那说明他只看过“小抄”,什么都不懂。如果你手上有一组属性,你可以找到一些关键点把这些属性归为各个类中,这就是聚类算法。你能说出各个不同类之间的区别,但是也有可能有些类是比较接近的。有可能一个大的东西和一个小的东西被归为了同一类,而另一个更小的东西却被归为了大的一类。再加上其他各种复杂的属性和不同的维度,所以其实聚类算法也有很多种。聚类算法和分类算法不同,但是聚类算法经常用来对一群人分组,二者***的区别在于,在聚类算法中,我们不知道集群前面的标签(或组)是什么,而在分类算法中,标签就很明确了。客户细分是一个常见的应用,不同的客户有不一样的喜好特点,比如可以把客户分成信用组、保留风险组或购买组(对于新鲜农产品或熟食),但是也有可能要根据已有数据进行诈骗识别的分类。

协同过滤算法

好吧,协同过滤算法是一种大众化的算法。我们公司就用协同过滤算法去提高搜索结果的精确度,我还做过一个相关的讲座,如果有足够多的人点击第二张猫的照片,那它一定比***张猫的图片好。在一个社交或电子商务环境中,如果你充分运用各种用户的“喜欢”和“不喜欢”,你就可以找到出对于大部分用户或者某一特定用户群体来说“***的”结果,这是通过个性化系统的多属性过滤来实现的,例如,当你在Google地图或Yelp上搜索餐厅(你可以根据服务质量、食物种类、内部风格、是否适合小孩、是否有情调、用户评论和消费水平等等进行过滤)时使用的就是这个原理。

上述并不是关于机器学习的所有算法,但也算是使用过程中最常见的几种算法了。以上四个大类中,每一类中都包含好几个可选算法或者衍生算法,那要选哪个呢?好吧,具体选用哪一种算法是考虑数学背景、实验过程和已知数据等各种因素的综合结果。记住,这些算法都只是你分析问题的工具而已,也有可能使用这些算法之后得到的是没有用的结果。

机器学习 Spark API
上一篇:Uber 刘彦东:当Uber开拓送餐服务后,全世界的外卖都震惊了 下一篇:机器学习技术之预测性维护
评论
取消
暂无评论,快去成为第一个评论的人吧

更多资讯推荐

开发板能这么用?美国学者用Jetson Nano支持假肢,控制每一根手指

在一篇新论文中,来自明尼苏达大学等机构的研究者提出了一种基于嵌入式深度学习控制的神经假肢实现。

佚名 ·  2天前
机器学习如何影响系统设计:Learned Index Structures浅析

本文简要介绍了Learned Index Structures的实现和优缺点,希望可以给大家带来一些系统设计的启发和思路。

作者Victor ·  2天前
吴恩达的二八定律:80%的数据+20%的模型=更好的机器学习

一个机器学习团队80%的工作应该放在数据准备上,确保数据质量是最重要的工作,每个人都知道应该如此做,但没人在乎。

新智元 ·  2天前
机器学习在铁路缺陷检测中的实际应用

本文介绍了在铁轨的超声波检测过程中有效使用机器学习技术自动检测缺陷的经验,并提出了一种使用数学建模为神经网络创建训练数据集的有效方法,为实际缺陷图的识别提供了更高精度的指标。文中训练神经网络运算的原型实例,其实际缺陷图的预测精度高达92%。

李睿 ·  2天前
人工智能进军“古玩鉴定”,人类职业再遭冲击?

近两年,人工智能的风头虽然偶被5G、自动驾驶等所盖过,但其发展和热度并未因此受到影响。

林中易木 ·  3天前
机器学习概述

机器学习(Machine Learning)这个术语常常掩盖了它的计算机科学性质,因为它的名字可能暗示机器正在像人类一样学习,甚至做得更好。尽管我们希望有一天机器能够像人类一样思考和学习,但如今机器学习并不能超越执行预定义过程的计算机程序。

追求源于热爱i ·  3天前
为什么机器学习胜过人工智能?

人工智能、数据科学和机器学习都属于同一个领域。问题是,在这种情况下,它们中的哪一个能达到正确的目的。

Cassie ·  3天前
启动机器学习/深度学习项目的八种方法

从探索性的数据分析到自动机器学习(AutoML),组织需要使用这些技术来推动其数据科学项目发展,并建立更好的模型。

李睿 ·  3天前
Copyright©2005-2021 51CTO.COM 版权所有 未经许可 请勿转载