用Spark分析Amazon的8000万商品评价(内含数据集、代码、论文)

尽管数据科学家经常通过分布式云计算来处理数据,但是即使在一般的笔记本电脑上,只要给出足够的内存,Spark也可以工作正常(在这篇文章中,我使用2016年MacBook Pro / 16GB内存,分配给Spark 8GB内存)。

此外,通过Maxcompute及其配套产品,低廉的大数据分析仅需几步。

亚马逊的商品评论和评分是一个非常重要的业务。 亚马逊上的客户经常基于这些评论做出购买决定,并且单个不良评论可以导致潜在购买者重新考虑。 几年前,我写了一篇非常受欢迎的博客文章,题为“120万亚马逊评论统计分析“。

当时,我只限于1200万评论,因为尝试处理更多的数据会导致内存不足,以至于我的R语言代码需要运行几个小时。

Apache Spark是一个高效的开源大数据计算框架,在过去几年中已经非常流行(对于使用Spark和Python的好教程,我推荐免费的eDX课程)。尽管数据科学家经常通过分布式云计算来处理数据,但是即使在一般的笔记本电脑上,只要给出足够的内存,Spark也可以工作正常(在这篇文章中,我使用2016年MacBook Pro / 16GB内存,分配给Spark 8GB内存)。

我写了一个简单的Python脚本,用来合并Julian McAuley、Rahul Pandey和Jure Leskovecucehua在2015年发布“Inferring Networks of Substitutable and Complementary Products”论文时准备的亚马逊产品评论数据集中每个类别的评级数据 。成果是一个4.53 GB的CSV,肯定不能在Microsoft Excel中打开。选取和整合的数据集包括:留下评论的用户的用户名,指明是哪一个接收评论亚马逊产品的id,从1到5的用户给出的评级,以及评论写入的时间(精确到天)。 我们还可以从数据子集的名称推断已评价产品的类别。

然后,使用面对R语言的新的升级包,我可以使用一个spark_connect()命令轻松启动本地Spark集群,并使用单个spark_read_csv()命令很快将整个CSV加载到集群中。

在数据集中总共有8074万条记录,即8.074e + 07条。如果使用传统工具(如dplyr或甚至Python pandas)高级查询,这样的数据集将需要相当长的时间来执行。

使用sparklyr,操作实际很大的数据就像对只有少数记录的数据集执行分析一样简单(并且比上面提到的eDX类中教授的Python方法简单一个数量级)。

试探性分析

(您可以查看用于Spark处理数据的R代码,并在此R Notebook中生成可视化数据)有20,368,412个有效id的用户在此数据集中提供评论。 其中51.9%的用户只写了一篇评论。

相应地,此数据集中有8,210,439个单独的产品,其中43.3%只有一个评论。

删除几个重复的评分后,我为每个评分添加了几个函数,这可能有助于说明审核行为随时间的变化:一个能表示给定该评论的作者的#评论排名值(作者的第一次评论,第二次评论等),一个指示给定接到该评论的产品已经接收到的#评论(产品的第一评论,产品的第二评论等)的评级值以及进行评论的月份和年份。

前两个添加的函数需要非常大的处理能力,这突出Spark的性能事实上,Spark使用默认情况下所有的CPU核心,而典型的R / Python方法是单线程的!)

这些更改被缓存到Spark DataFrame df_t中。 如果我想确定哪个亚马逊产品类别获得最佳平均评论评分,我可以按类别整合数据,计算每个类别的平均评分,然后排序。多亏Spark的强大功能,这个数百万记录的数据处理需要几秒钟。

也可以使用ggplot2以图表形式显示:

数字音乐/ CD产品平均获得最高评价,而视频游戏和手机得到最低平均评价,评分范围为0.77。 这确实说明了一些直观的联系; 购买数字音乐和CD这类产品时,你知道你会得到什么,没有产生随机缺陷机会,而手机和配件根据背后的第三方卖家的会有不同的质量(电子游戏尤其容易由于微小的不合理而产生评论的“爆炸”)。

我们可以将每个条细分分成从1-5的每个评级的百分比,更利于该可视化。 也可以将饼图图表划分成不同类别,但像这样码成条形图再缩放到100%能看起来更清爽。

新的图表确实有助于支持上述理论; 顶部的类别的4/5星评级的百分比显著高于底部类别,并且1/2/3星级评分的比例低得多,底部类别与之相反。那么这些故障如何随时间而改变? 还有其他因素在发挥吗?

随时间变化的评级

也许出现在二十世纪二十年代社会媒体中的二元评级“喜欢/不喜欢”已经转化为五星级评论系统的行为。 以下是从2000年1月至2014年7月每月撰写的评论的评分细目:

投票行为在一段时间内非常轻微地振荡,没有清晰的尖峰或拐点,这与该理论冲突。

平均值分布

我们应该看看亚马逊的产品分数的全球平均值(即客户在购买产品时看到的),以及给出分级的用户。在我们期望中两者分布匹配,所以任何偏差都会很有趣。关注至少评级5的产品时,有4.16平均总评级:

当查看反应用户给出的总体评分类似的图表时(5个评级最低),平均评级略高于4.20。

这两种分配的主要区别是亚马逊客户只有5星评价的比例明显更高。归纳和总结两个图表可以清楚突出了差异。

特别的评论

几个帖子前,我讨论了Reddit帖子的第一个评论为何比以后的评论有更大的影响。 在做出越来越多的评论后,用户评分行为是否会改变? 同一件产品的第一次评价,与典型的评级行为是否不同?这里是某个用户给出的几个亚马逊评论的评分细目:

第一个用户评论的评分比之后的评价稍高。其他情况下,评级行为大部分是相同的,虽然用户给4星而不是5星评价的比例增加,由于这样更舒适。相比之下,这里是某亚马逊产品收到的几个评论的评分细目:

第一个产品评论是5星评价的可能略高于随后的评论。 然而,在第10次审查之后,评级分布没有变化,这意味着特殊评级行为独立于该阈值之后的当前评分。

总结

的确,这篇博文中使用数据多于分析它。 在未来技术发布中,可能更有趣的是特定条件下的行为,例如根据该产品/该用户以前的评价,预测评论的评级。 然而,这篇文章表明,虽然“大数据”可能现在仍是一个令人费解的流行语,但即使你不必为一家财富500强公司工作,也能够理解它。 即使数据集由5个简单的函数组成,您也可以归纳大量的结论。

而这篇文章甚至不需要查看亚马逊的产品评论的文本或与产品相关的元数据! 只要有想法,就能完成。

您可以在R Notebook中查看所有用于可视化Amazon数据的R和ggplot2代码。您还可以在此GitHub存储库中查看用于此帖子的镜像/数据

本文作者:Max Woolf

来源:51CTO

时间: 2024-07-28 13:29:44

用Spark分析Amazon的8000万商品评价(内含数据集、代码、论文)的相关文章

用Spark分析Amazon的8000万商品评价(内含数据集、代码、论文)

亚马逊的商品评论和评分是一个非常重要的业务. 亚马逊上的客户经常基于这些评论做出购买决定,并且单个不良评论可以导致潜在购买者重新考虑. 几年前,我写了一篇非常受欢迎的博客文章,题为"120万亚马逊评论统计分析". 当时,我只限于1200万评论,因为尝试处理更多的数据会导致内存不足,以至于我的R语言代码需要运行几个小时. Apache Spark是一个高效的开源大数据计算框架,在过去几年中已经非常流行(对于使用Spark和Python的好教程,我推荐免费的eDX课程).尽管数据科学家经常

蒙克:8000万活跃用户养9亿商品是有问题的PC端已经没有优势

摘要: 12 月 12 日消息,楚楚街副总裁蒙克在亚马逊主办,亿邦动力网承办的亚马逊找寻下一场风流论坛上表示, 8000 万活跃用户养 9 亿商品是有问题的, PC 端已经没有优势. 互联网最大的价 12月12日消息,楚楚街副总裁蒙克在亚马逊主办,亿邦动力网承办的"亚马逊·找寻下一场风流"论坛上表示,8000万活跃用户养9亿商品是有问题的,PC端已经没有优势. 互联网最大的价值一是把小众聚合起来变成市场:其次就是个性化服务.楚楚街的优势就是足够的细分,90后用户占据70%,我们所有的运

Spark-ML-01-小试spark分析离线商品信息

任务 一个在线商品购买记录数据集,约40M,格式如下: Jack,iphone cover,9,99 Jack,iphone cover,9,99 Jack,iphone cover,9,99 Jack,iphone cover,9,99 完成统计: 1.购买总次数 2.客户总个数 3.总收入 4.最畅销的商品 代码 import java.util.Collections; import java.util.Comparator; import java.util.List; import o

企查查支撑8000万+企业数据的大数据平台技术选型与实现

11+大数据行业应用实践请见https://yq.aliyun.com/activity/156,同时这里还有流计算.机器学习.性能调优等技术实践.此外,通过Maxcompute及其配套产品,低廉的大数据分析仅需几步,详情访问https://www.aliyun.com/product/odps:更多精彩内容参见大数据频道:https://yq.aliyun.com/big-data . 企查查是苏州朗动网络科技公司旗下的一款核心企业信息查询工具,立足于企业征信的相关信息整合,经过深度学习.特征

英迈中国涉嫌增值税犯罪:金额高达8000万

黄婕 <财富>500强企业.全球最大IT分销商英迈(Ingram Micro)卷入了涉嫌虚开及倒卖增值税发票事件. 一位业内知情人士近日向本报记者报料,过去两年多时间里,英迈国际(中国)有限公司(以下简称英迈中国)内部相关员工涉嫌对外倒卖增值税发票,金额高达8000多万元,已被上海市公安局经侦总队拘捕.目前公安局正针对此案进行调查. 记者就此消息向上海市公安局求证,截至发稿未获回复.但上海市公安局一内部人士向记者确认了这个消息,但该人士表示,由于案件正在审理过程中,有关案件的涉案金额等细节目前

美8000万医疗用户数据泄露背后,谁动了患者的奶酪

近期,大洋彼岸传来消息:美国第二大的医疗保险服务商Anthem公司信息系统被黑客攻破,近8000万员工和客户资料被盗. 该公司总裁兼CEO司伟德官方发布一份声明:黑客入侵公司信息系统,获得了公司员工和客户的个人资料,这当中包括姓名.生日.医保ID号.社会保险号.住宅地址.电子邮箱,雇佣情况,以及收入数据. 虽然Anthem公司称,客户的信用卡号码.病历等数据并未丢失.不过在美国,病例失窃影响非常之大:"它就像一个无限制使用的信用卡,你可以'免费'获得昂贵的服务或者药物.大家对信用卡和银行账户都比

芒果网高调宣布投入8000万现金补贴,启动“酒店狂欢节”

携程(Ctrip)和艺龙(Elong)在酒店领域的"龙虎斗"酣战正浓,不料半路杀出芒果网.近日,芒果网高调宣布投入8000万现金补贴,启动"酒店狂欢节",欲以更为凶悍的促销活动将价格战推向纵深.有分析认为,芒果网是为冲击资本市场增添筹码.至此,OTA行业三强全数卷入酒店价格大战. 在机票预订市场透明化的背景下,酒店预订成了OTA的香饽饽.2012年一季度,艺龙净营收1.53亿元,其中酒店预订营收为1.229亿元,同比增长36%,占营收75%.艺龙CEO崔广福坦言看好

支付宝虚拟信用卡真的来了:覆盖8000万用户

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;和我们之前报道的阿里巴巴B2B信用卡不同,这将是阿里巴巴的首个消费 金融产品,用途和覆盖用户范围也远远超过前者. 阿里巴巴名为"信用支付"的金融产品即将正式上线.支付宝将根据用户交易数据,对用户进行授信,信用额度可用于在淘宝等购物支付,用户需要在还款日之前进行还款,最长可以获得38天免息期--这也意味着,支付宝的"虚拟信用卡"真

西街网获中兴合创中金资本8000万融资

7月7日,北京,国内领先的垂直运动品类B2C电子商务公司西街网(www.xijie.com)宣布获得8000万元人民币的战略投资.投资者为两家国内投资机构中兴合创.上海中金资本.西街网成为首家由国内资本投资垂直品类的B2C公司. 西街网成立于2009年12月,定位于向用户提供运动品类的一站式购物服务. 2010年,西街网销售额达到8000万.2011年,西街网预计销售金额将突破3亿人民币. 西街网创始人郭洪驰表示,"西街网在运动品类的货品上具有较大优势".经过一年半时间的精心建设,目前