大数据开发,如何发掘数据的关系?

简介: 数据之中蕴藏关系,数据量足够大,这种关系越逼近真实世界客观规律。网页之间链接关系蕴藏着网页重要性排序关系,购物车商品清单蕴藏着商品关联关系,通过对这些关系的挖掘,可帮助我们更清晰世界规律,并利用规律提高生产效率,改造世界。

数据之中蕴藏关系,数据量足够大,这种关系越逼近真实世界客观规律。


网页之间链接关系蕴藏着网页重要性排序关系,购物车商品清单蕴藏着商品关联关系,通过对这些关系的挖掘,可帮助我们更清晰世界规律,并利用规律提高生产效率,改造世界。


挖掘数据的典型应用场景有搜索排序、关联分析以及聚类。

搜索排序


Hadoop最早源于Google,而Google使用大数据技术最重要场景就是网页排名。使用Google搜索时,通常在搜索前三个结果里就能找到自己想要的网页内容,而且很大概率第一个结果就是我们想要网页。


12.png


而排名越往后,搜索结果与我期望的偏差越大。并且在搜索结果页的上面,会提示共找到多少结果。


你思考过Google为何能在十几万网页中知道我最想看的网页是哪些,然后把它们排到最前面?


PageRank算法


根据网页的链接关系给网页打分。若一个网页A,包含另一个网页B的超链接,则认为A网页给B网页投了一票,以下面四个网页A、B、C、D举例,带箭头的线条表示链接。


11.png


B网页包含A、D页面的超链接,相当于B网页给A、D每个页面投一票,初始时,所有页面都是1分,经过这次投票后,B给A、D每个页面1/2分(B包含了A、D两个超链接,所以每个投票值1/2分),自己从C页面得到1/3分(C包含了A、B、D三个页面的超链接,每个投票值1/3分)。


而A页面则从B、C、D分别得到1/2、1/3、1分。用公式表示就是


P R ( A ) = P R ( B ) 2 + P R ( C ) 3 + P R ( D ) 1 PR(A) = \frac{PR(B)}{2}+\frac{PR( C )}{3}+\frac{PR(D)}{1}

PR(A)=

2

PR(B)

+

3

PR(C)

+

1

PR(D)


等号左边是经过一次投票后,A页面的PageRank分值

等号右边每一项,分子是包含A页面超链接的页面的PageRank分值,分母是该页面包含的超链接数目

这样一次计算后,每个页面的PageRank分值就会重新分配,重复同样算法过程,经过几次计算后,根据每个页面PageRank分值排序,就得到一个页面重要程度的排名表。根据该排名表,将用户搜索出来的网页结果排序,排在前面的通常也正是用户想要的。


问题


若某页面只包含指向自己的超链接,这样其他页面不断给它送分,而自己一分不出,随计算执行次数越多,其分值就越高,这显然不合理。如下的A只包含指向自己的超链接:

10.png



解决方案


设想浏览一个页面时,有一定概率不是点击超链接,而是在地址栏输入一个URL访问其他页面,表现在公式上:


P R ( A ) = α ( P R ( B ) 2 + P R ( C ) 3 + P R ( D ) 1 ) + ( 1 − α ) 4 PR(A) = \alpha(\frac{PR(B)}{2}+\frac{PR( C )}{3}+\frac{PR(D)}{1})+\frac{(1-\alpha)}{4}

PR(A)=α(

2

PR(B)

+

3

PR(C)

+

1

PR(D)

)+

4

(1−α)


( 1 − α ) (1-\alpha)(1−α)就是跳转到其他任何页面的概率,通常取经验值0.15(即α \alphaα 为0.85),因为有一定概率输入的URL是自己的,所以加上上面公式最后一项,其中分母4表示所有网页的总数。


那么对于N NN个网页,任一页面P i P_{i}P

i

的PageRank公式:


P a g e R a n k ( P i ) = α ∑ P j ∈ M ( P i ) P a g e R a n k ( P j ) L ( P j ) + 1 − α N PageRank(P_{i})=\alpha \sum_{P_{j}\in M(P_{i})}^{}{\frac{PageRank(P_{j})}{L(P_{j})}} + \frac{1-\alpha}{N}

PageRank(P

i

)=α

P

j

∈M(P

i

)

 

L(P

j

)

PageRank(P

j

)

+

N

1−α


P j ∈ M ( P i ) P_{j}\in M(P_{i})P

j

∈M(P

i

)表示所有包含有P i P_{i}P

i

超链接的P j P_{j}P

j

,L ( P j ) L(P_{j})L(P

j

)表示P j P_{j}P

j

页面包含的超链接数,N NN表示所有的网页总和。


这里的N可能是个万亿级数字,一开始将所有页面PageRank值设为1,带入上面公式计算,每个页面都得到一个新的PageRank值。再把这些新的PageRank值带入上面的公式,继续得到更新的PageRank值,如此迭代计算,直到所有页面的PageRank值几乎不再有大变化。


在这样大规模数据上进行多次迭代计算,是传统计算方法解决不了的,这也是Google研究大数据技术的原因,并因此诞生大数据产业。


关联分析


大数据计算的重要场景之一。通过数据挖掘,商家发现尿不湿和啤酒经常会同时被购买,所以商家就把啤酒和尿不湿摆放在一起促进销售。这个案例曾经被质疑是假的,因为没有人见过超市把啤酒和尿布放在一起卖。


传统商超确实没有见过把啤酒和纸尿裤放在一起的,可能是因为传统商超物理货架分区策略限制它无法这么做,而啤酒和尿不湿存在关联关系则确实是大数据中存在的规律,在电子商务网站就能轻易进行关联推荐。


通过商品订单,可发现频繁出现在同一购物篮里商品间的关联关系,这种大数据关联分析也被称作是“购物篮分析”,频繁出现的商品组合被称作是“频繁模式”。


支持度,一组频繁模式的出现概率,比如(啤酒,尿不湿)是一组频繁模式,它的支持度是4%,即所有订单中,同时出现啤酒和尿不湿这两件商品的概率是4%

置信度,衡量频繁模式内部的关联关系,若出现啤酒的订单中有一半包含尿不湿,则购买啤酒后购买尿不湿的置信度是50%

大型超市商品种类数量数以万计,所有商品组合更是大数字;而电商网站商品种类更多,历史订单数据也庞大,虽有大数据技术,但资源依然有限。


应该从哪里考虑着手,可使用最少计算资源寻找到最小支持度的频繁模式?寻找满足最小支持度的频繁模式经典算法是Apriori算法


Apriori算法


步骤

第1步:设置最小支持度阈值。


第2步:寻找满足最小支持度的单件商品,也就是单件商品出现在所有订单中的概率不低于最小支持度。


第3步:从第2步找到的所有满足最小支持度的单件商品中,进行两两组合,寻找满足最小支持度的两件商品组合,也就是两件商品出现在同一个订单中概率不低于最小支持度。


第4步:从第3步找到的所有满足最小支持度的两件商品,以及第2步找到的满足最小支持度的单件商品进行组合,寻找满足最小支持度的三件商品组合。


第5步:以此类推,找到所有满足最小支持度的商品组合。


极大降低了需计算的商品组合数目


算法原理


若一个商品组合不满足最小支持度,则所有包含这个商品组合的其他商品组合也不满足最小支持度。所以从最小商品组合,即一件商品开始计算最小支持度,逐渐迭代,进而筛选出所有满足最小支持度的频繁模式。


通过关联分析,可发现看似不相关商品的关联关系,并利用这些关系进行商品营销,比如我上面提到的啤酒和尿不湿的例子:


可以为用户提供购买便利

也能提高企业营收


聚类


分类算法主要解决如何将一个数据分到几个确定类别中的一类里去。分类算法通常需要样本数据训练模型,再利用模型进行数据分类,那么一堆样本数据又如何知道各自的类别呢?样本数据归类一方面可以通过人工手动打标签,另一方面也可以利用算法进行自动归类,即“聚类”。


对一批数据进行自动归类,如下图这样的一组数据,人眼一眼就可以识别出可以分为四组:


9.png


但若这些数据不是画在平面上,而是以二维坐标的方式给你一堆数据,你还能看出来吗?


K-means是一种在给定分组个数后,能够对数据进行自动归类,即聚类的算法。计算过程请看图中这个例子。

8.png



第1步:随机在图中取K个种子点,图中K=2,即图中的实心小圆点。


第2步:求图中所有点到这K个种子点的距离,假如一个点离种子点X最近,那么这个点属于X点群。在图中,可以看到A、B属于上方的种子点,C、D、E属于中部的种子点。


第3步:对已经分好组的两组数据,分别求其中心点。对于图中二维平面上的数据,求中心点最简单暴力的算法就是对当前同一个分组中所有点的X坐标和Y坐标分别求平均值,得到的<x,y>就是中心点。


第4步:重复第2步和第3步,直到每个分组的中心点不再移动。这时候,距每个中心点最近的点数据聚类为同一组数据。


K-means算法原理简单,在知道分组个数时,效果非常好,是聚类经典算法。通过聚类分析可发现事物的内在规律,具有相似购买习惯的用户群体被聚类为一组:


可直接针对不同分组用户进行差别营销,线下渠道的话还可以根据分组情况进行市场划分

可进一步分析,比如同组用户的其他统计特征还有哪些,并发现一些有价值的模式


总结


PageRank算法通过挖掘链接关系,发现互联网网页的排名权重;Apriori算法通过购物篮分析,发现商品的频繁模式;K-means算法则可以进行自动数据聚类。这些算法不需要人工事先对数据进行标注,一般被称作无监督算法。上期的分类算法需要样本数据,而这些样本数据是需要人工进行预先标注的,因此分类算法一般都是有监督算法。


数据挖掘其实在大数据出现之前,甚至在计算机出现之间就已经存在了,因为挖掘数据中的规律可以帮助我们更好地认识这个世界,最终实现更好地改造这个世界。大数据技术使数据挖掘更加方便、成本更低,而几乎各种大数据产品都有对应的算法库可以方便地进行大数据挖掘。所以请保持好奇心,通过数据挖掘发现规律,进而可以创造更多的价值。


聚类算法K-means要求提前知晓分组个数K, 用户怎么知道应该分成几个组呢。根据经验或者其他的算法专门计算K。


Pagerank,Apriori,K-means,这些算法在计算前不需要进行标注数据,也叫无监督算法:


在Pagerank算法中,通过链接的关系,计算每一个网站的排名权重,得到我们最想要的网站在最前

Apriopi算法,我的理解也是在选择一个最小商品组合之后,不断迭代,筛选出所有满足最小支持度的频繁模式

K—means算法,通过计算数据的平均值找出中心点,进一步计算中心点,直到每一个分组的中心点不在移动

为什么关联推荐中是找到最小支持度的频繁模式呢,不应该是最大吗?就是至少有这么多出现,才叫有关联。

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
目录
相关文章
|
2月前
|
分布式计算 DataWorks IDE
MaxCompute数据问题之忽略脏数据如何解决
MaxCompute数据包含存储在MaxCompute服务中的表、分区以及其他数据结构;本合集将提供MaxCompute数据的管理和优化指南,以及数据操作中的常见问题和解决策略。
47 0
|
2月前
|
SQL 存储 分布式计算
MaxCompute问题之下载数据如何解决
MaxCompute数据包含存储在MaxCompute服务中的表、分区以及其他数据结构;本合集将提供MaxCompute数据的管理和优化指南,以及数据操作中的常见问题和解决策略。
38 0
|
2月前
|
分布式计算 关系型数据库 MySQL
MaxCompute问题之数据归属分区如何解决
MaxCompute数据包含存储在MaxCompute服务中的表、分区以及其他数据结构;本合集将提供MaxCompute数据的管理和优化指南,以及数据操作中的常见问题和解决策略。
35 0
|
3月前
|
机器学习/深度学习 存储 分布式计算
机器学习PAI关于maxcompute上用protobuf 处理数据,比较方便的方式
机器学习PAI关于maxcompute上用protobuf 处理数据,比较方便的方式
|
2月前
|
分布式计算 DataWorks BI
MaxCompute数据问题之运行报错如何解决
MaxCompute数据包含存储在MaxCompute服务中的表、分区以及其他数据结构;本合集将提供MaxCompute数据的管理和优化指南,以及数据操作中的常见问题和解决策略。
38 1
|
4月前
|
存储 SQL 大数据
dataCompare大数据对比之异源数据对比
dataCompare大数据对比之异源数据对比
104 0
|
2月前
|
分布式计算 关系型数据库 数据库连接
MaxCompute数据问题之数据迁移如何解决
MaxCompute数据包含存储在MaxCompute服务中的表、分区以及其他数据结构;本合集将提供MaxCompute数据的管理和优化指南,以及数据操作中的常见问题和解决策略。
34 0
|
2月前
|
分布式计算 Cloud Native MaxCompute
MaxCompute数据问题之没有访问权限如何解决
MaxCompute数据包含存储在MaxCompute服务中的表、分区以及其他数据结构;本合集将提供MaxCompute数据的管理和优化指南,以及数据操作中的常见问题和解决策略。
38 0
|
9天前
|
数据采集 搜索推荐 大数据
大数据中的人为数据
【4月更文挑战第11天】人为数据,源于人类活动,如在线行为和社交互动,是大数据的关键部分,用于理解人类行为、预测趋势和策略制定。数据具多样性、实时性和动态性,广泛应用于市场营销和社交媒体分析。然而,数据真实性、用户隐私和处理复杂性构成挑战。解决策略包括数据质量控制、采用先进技术、强化数据安全和培养专业人才,以充分发挥其潜力。
13 3
|
11天前
|
运维 供应链 大数据
数据之势丨从“看数”到“用数”,百年制造企业用大数据实现“降本增效”
目前,松下中国旗下的64家法人公司已经有21家加入了新的IT架构中,为松下集团在中国及东北亚地区节约了超过30%的总成本,减少了近50%的交付时间,同时,大幅降低了系统的故障率。