小白学数据分析之关联分析理论篇

关联分析的学习

在说关联分析之前,先说说自己这段时间的一些感受吧,这段时间相对轻松一些,有一些时间自己自己来学习一些新东西和知识,然而却发现捧着一本数据挖掘理论的书籍在一点一点的研读实在是很漫长,而且看过了没有什么感觉。数据这一行理论很多,算法很多,模型很多,自己现在一直是结合业务来做的数据分析与挖掘,相比电商而言,游戏业做的数据大多很糙,但是仅仅结合业务和运营,更加注重我们客户的质量和维护,当然这不是说电商没做,实际上电商一直在做,然而最近一次经历发现,我们过多的时候去讨论了算法,模型,新理论,新算法研究,比如爬虫,JS,写个脚本测试一下,验证一下,可我一直在考虑,为什么我们要这么做?意义究竟是什么?你费了九牛二虎之力做好的研究,能够以后一直使用,形成规范吗?或者一直是想到一个就研究一下,用毕,放下了,再有新的在研究。

以前看了苏杰的产品经理那本书,其中有一个例子很好,为什么停车位游戏里面就只有四个停车位,而不是八个?回答这个问题,我觉得你即使数据理论、算法在NB你也很难搞得明白,你还是要仅仅结合业务搞明白内在的一些疑问,你才能防守研究。技术流派的数据分析必须要,但是完全的主导,缺少了人性和上层的构建,厉害的技术,NB的算法也无济于事。

然而理论,算法,模型我们还要学习,核心在于我们如何理解和使用,这些东西都是经历了实践的检验,所以才有存在和学习的意义。但请不要为技术论,过度理性的思维往往就走到死胡同,我们也需要乔爷一般的嗅觉和敏感。

废话太多,开始吧。

关联分析是啥?

关联分析是数据挖掘中很重要的一类技术,其实就是挖掘事物之间的联系。

关联分析都研究什么关系?

关联分析研究的关系有两种:简单关联关系和序列关联关系。

简单关联关系

比如在FPS游戏中,购买M4A1的玩家中80%会购买MP5冲锋枪,这就是一种简单的关联关系,经典的购物篮分析中有个例子说,购买面包的顾客中80%会购买牛奶。面包和牛奶作为一种早餐的搭配是大家所接受的,二者没有共同属性,但是二者搭配后就是一顿美味早餐。商场购买时,如果你把这两样摆在一起时,就会刺激顾客的潜意识(这是定位理论的内容,以后再说,文章题目‘从定位理论来看关联购买应用实施’),联系了二者的关系,并刺激购买。这是一种简单的关联关系。

序列关联关系

在FPS中,购买雷包的玩家中80%会购买闪光雷和高爆雷,这属于序列关系,也就是说具有先后顺序。再比如买了iphone手机的顾客中80%会选择购买iphone手机保护壳,这就是序列关联关系,一般没人先去买个保护壳再去买手机。这是存在先后的时间上的顺序的。这里就再说一个例子,比如装备强化系统,我们可以衡量一下得到宝石然后去打孔镶嵌宝石的关系或者先去打孔后去直接购买宝石的关系分析,一般游戏为了刺激玩家在强化方面的消费能力,会选择赠送部分宝石,引导玩家强化,那么我们是否可以做一个分析?

怎么定量的分析这种关联关系?

说到定量分析这种关系,分析就得有个算法或者公式,这就是我们约定一个规则,我们要按照规则来做分析,学名叫做关联规则。早期是在研究超市顾客购买商品的规律方面得到广泛应用,也就是购物篮分析。

游戏的数据分析需要做不?

关联分析在电商、零售、保险等诸多领域广泛应用。对于游戏数据分析来说,关联分析的确是我们要非常重视的一块,尤其是道具收费模式占据主导的网游市场,当然时间收费游戏也需要这样来做,我们的运营活动效果评估,玩家的充值购买习惯,游戏行为跟踪,精准推送都是和关联分析有很大的关系。其实游戏中道具的消费除了玩家自身与系统的高度融合和自主消费以外,其实还有一部分隐形的消费,或者说是延伸消费,打个比方,比如我们去一个超市目标很明确就是要去买一瓶可乐,然而往往我们结账时手里不是单纯就有一罐可乐,可能还有口香糖,可能还有其他的商品,为什么?人是视觉动物,纯粹理性消费存在,但是受到外界刺激和影响,往往刺激再生消费,也就是很多的冲动型消费,而在游戏中来看,就是打开这些消费,关联分析就是寻找这些刺激因素,进而延伸玩家的消费。

关联规则是什么?

规则这里就是一种衡量事物的标准,再说白了就是一个算法。关联规则主要有两种。今天就先说说简单规则的理论部分。

简单关联规则

简单关联规则属于无指导的学习方法,着重探索内部结构。简单关联规则也是我们使用最多的一类技术。算法有Apriori、GRI、Carma,其中Apriori和Carma主要是如何提高关联规则的分析效率,而GRI注重如何将单一概念层次的关联推广到更多概念层次的关联,进而揭示事物内在结构。

在网游方面的应用目前我想到了几个:

1、  基于玩家的购买行为进行玩家区分;

2、  付费用户流失分析,比如是否是因为某些道具的下架导致玩家付费流失;

3、  道具商城道具的位置摆放,玩家购买后的推荐购买,交叉销售。

简单关联规则的数据存储形式

数据存储形式主要有两种,一种是交易数据格式,另一种是表格数据格式,详见早期一篇文章所述内容。

判断标准

说到判断标准,其实就是对于简单关联规则有效性实用性的检验,因为不是所有关联规则都有效,某些规则适用范围有限,进而这些规则不具有有效性,所以我们要有一些判断的标准。

规则支持度(Support)

支持度,就是支持某一事件发生的概率,可以这么理解,所谓规则支持度就是表示商品A和商品B同时出现的概率(A和B同时出现这一事件的概率),即S A->B=N(A&B)/N ,N代表总的个数,N(A&B)代表同时出现A和B的次数,如果S值很低,那么规则普遍性一般,应用层次太低。

规则置信度(confidence)

 置信度,就是特定个体对待特定命题真实性相信的程度,也就是令人信服的水平,具体来说比如在商品A购买的顾客中,购买商品B的概率,或者说购买水平。这其实是一个条件概率的问题,即在A出现情况下B出现的可能性,即C A->B=N(A&B)/N(A),如果置信水平高,那么这种特定条件出现可能性就很高。

前项支持度 S A = N(A)/N

后项支持度 S B=N(B)/N

由此这里我们可以推断出 C和S是存在关系的,即:

 C A->B = S A->B/ S A

在关联分析,我们希望得到的规则是具有很高的C和S的。可是如果S高,但是C低,那么整个的这个规则令人信服的程度就会下降,如果反过来,那么意味着这个规则产生的普遍性不高,就是应用层有问题,但是置信水平还可以。

所以说我们虽然可以通过简单关联规则分析生成很多的关联规则,然而我们必须得有一个临界值(阈值),来控制C和S的水平,因为我们能生成很多的规则,通过阈值控制扫除一些我们不需要的或者无用的规则。

 当然了,通过我们设定的阈值的置信度和支持度就是一条有效的规则,但有效就一定意味着可以使用吗?事实上,还不行,因为有效的规则下不一定有实际的指导意义。因为揭示出的关系有可能只是一种随机关联的关系。说白了就是巧合。举一个例子,通过关联规则我们发现购买道具A的玩家40%为男性角色,S=40%,C=40%。此时阈值为20%,看来符合以上我们所说的情况,但是我们经过分析发现玩家中那行角色比例也是40%,而这就是一种随机关联,不具备实用性。

因此我们需要一些指标来辅助监测规则实用性。

规则提升度(lift)

L A->B=C A->B/ S B

实际就是置信度与后项的比值。提升度反映了商品A出现对于商品B的影响程度。大于1才有意义,也就是A对于B的促进作用,越大越好。

置信差(Confidence Difference)

置信度与后项支持度的绝对值差。

CD=|C A->B-S B|

置信差进一步提高关联规则结果的可用性,其差代表了获得关联规则所提供信息的多少。

置信率(Confidence Ratio)

CR=1-|min(lift,1/lift)|

置信率当然也是越高越好,有的时候我们置信差很低,那么也可以参考CR值,与刚才提到的lift相似,lift越大越好,进而这里来看,lift越大,那么CR也就越大。

当然了衡量的标准还有正态卡方、信息差,这里不再讲述,感兴趣自己可以看看。

下面我们说说序列关联规则

序列关联规则

核心在于怎么找到事物发展的前后关联性,比如用户访问web站点,具体的页面点击习惯,购买商品过程关联性,较为著名的比如超市商品货架的布局。研究序列关联性可以帮助我们推断后续发生的可能性,并调整好顺序,扩大份额。这在游戏中的道具推送,玩家与系统的交互,任务接取,道具购买有直接的关系。

如下图所示,为玩家的购买道具时序数据,每一行为一个事务序列数,代表一个玩家。

比如1号玩家首先购买A和B,之后购买C,再次购买D,这就是一个购买序列,而这个序列对于我们分析购买流失,具有很大的意义。1号顾客的购买序列可以表示出来,此外,购买序列还可以进行分解,分列出子序列。如下图。

定量分析序列指标

序列长度

表示序列拆分出来的子序列,以玩家1为例有3个子序列,因此序列长度为3。

序列大小

表示序列中拥有的项目数量,玩家1有四个项目,A、B、C、D。

序列支持度

序列普遍性的衡量标准,包含某个序列的序列的事事务序列数占总事务序列数的比例。比如C{D}>C{A}的支持度为2/4=0.5。

序列规则支持度

包含某序列的规则的事务占总事务的比例。

序列规则置信度

同时包含前项和后项事务数与仅包含前项事务数的比值,即支持度与前项支持度的比值。

好了,理论第一部分就到这里,以后说说两类关联分析的算法 Apriori、GRI、Carma、Sequence。

参考:

Clementine 数据挖掘方法及应用 薛薇著

Jiawei Han,Micheline Kamber.Data Mining:Concept and Techniques,Morgan Kaufmann Publishers,Inc.2001 

时间: 2024-11-05 19:27:54

小白学数据分析之关联分析理论篇的相关文章

小白学数据分析之关联分析算法篇Apriori

早些时候写过关于购物篮分析的文章,其中提到了C5.0和Apriori算法,没有仔细说说这算法的含义,昨天写了一下关联分析的理论部分,今天说说关联分析算法之一的Apriori算法,很多时候大家都说,数据分析师更多的是会用就可以了,不必纠结于那些长篇累牍的理论,其实我觉得还是有点必要的,你未必要去设计算法,但是如果你掌握和熟知一个算法,这对于你如何驾驭和使用这个算法是很有帮助的,此外每个算法都有使用的局限性,比如空间和时间复杂度,使用条件约束.最典型的就是我们难道一份原始数据,然后经过数据处理要进行

小白学数据分析------->充值记录分析

   充值记录分析的方法有很多种,维度很多,今天就说说一个比较初级的分析方法,希望对于各位有一定的帮助和指导. 首先来看一下充值记录的格式,一般而言我们取到的数据都是交易格式(什么事交易格式这里不说了,大家应该都了解) 账户 充值额 充值大区 充值时间 1 100 A 2012-4-9 1 25 A 2012-4-7 2 50 A 2012-4-9 3 4 4 100 200 50 A A B 2012-4-5 2012-4-2 2012-4-1                     以上为我

小白学数据分析----->SPSS探索分析实践操作[不同生命周期玩家的充值探索分析]

SPSS为我们提供了探索分析,所谓探索分析之所以是探索,是因为有时候我们对于变量的分布特点不是很清楚,探索的目的在于帮助我们完成以下的工作: 识别数据:例如数据的分布形式.异常值.缺失值: 正态性检验:服从正态分布的检验: 方差齐性检验:不同数据组的方差是否相等. 有关于方差齐性检验原理.正态分布这里不累述,这里主要介绍SPSS的探索分析使用. 数据文件 这里使用的文件是不同周期的充值用户的充值数据,这里主要是针对流失用户和活跃用户的充值数据. 具体操作 首先将源文件加载到SPSS中,选择菜单分

小白学数据分析------>日活跃人数分析

从今天开始,特开辟一个小专栏,题目暂定为小白学数据分析,鄙人不才,在数据分析的道路上走的崎岖坎坷,同时数据分析本身是一个多面和复杂的工作,要懂得理论(统计.概率.数据挖掘.算法.模型)更要懂得业务,懂得行业理论,还要有灵活多变的思维,想想还是很复杂和麻烦的,所讲内容不但是理论,不仅是数据,尽量把这些东西综合起来,立体的来看,鄙人水平有限,很多的内容是尝试和改进,参考了很多的材料,在木有高人指点和牛人帮助的情况下,我只能借助浩瀚的网络知识和自己的悟性,今天决心拿出来给各位主要是帮助大家和我一起进步

小白学数据分析----->付费用户的金字塔模型实践操作

免费游戏中付费用户模型分析 最近看了不少文章,对于付费用户的模型也有了很深刻的理解和认识,早先我做了不少关于大R,中间R,低端R用户的分析,想来还是觉得草草了事,近来有网友提出来,理论探讨的多了些,实践上手的东西少了点,毕竟还是叫做小白学数据分析啊,今天就把以前说过的付费用户的模型具体的实践一下. 感悟和理论 得到的灵感首先要感谢Nicholas Lovell 的这篇文章,是我得到了一些处理和分析这个模型的办法.连接如下: http://www.gamesbrief.com/2011/11/wh

小白学数据之NoSQL数据库 进阶篇

写在前面 这篇是小白学数据系列的NoSQL数据库的第二篇:进阶篇.数据分析方向的从业人员可以从中获取数据仓库软件市场的现状和分析,以增加自己的知识储备,为可能的技术转型打基础.而工程师可以找到关于NoSQL主流产品的分析介绍以及选择数据库的一些准则.NoSQL不是万能药,采用技术最好不要跟风,选择适合自己数据和应用的才是最好的哟~没有看过NoSQL基础篇的读者可以在文末的历史文章回顾中找到. ◆ ◆ ◆ 小白问:上次问了NoSQL,SQL的区别,好像有点忘了,我们可以温故而知新一下吗? 答:..

小白学数据分析----->数据指标 累计用户数的使用

小白学数据分析--à数据指标累计用户数的使用 累计用户数是指注册用户数的累计,即可以认为是新用户的累计.在一般的数据统计中,我们基本上都会涉及到这个指标,且这个指标是逐渐累加的,比如: 时间                   注册用户数[新登用户]           累计注册用户数 1日                    100                                                 100 2日                    120   

小白学数据分析----->流失分析设计

前段时间说过一些关于玩家生命周期的问题,其实那些有点大,有点虚,从宏观的角度了解我们此时此刻正在做的分析是属于那一部分,哪一个体系的,说实话,这是为了建立一种意识而要做的工作,玩家生命周期价值源于电信行业的客户生命周期管理和PLC(产品生命周期)的解读和应用,限于本人水平和能力因素,不够深刻,全面,在此请各位谅解,以后的内容会逐步深入到这个体系之下的很多细节的问题探讨,今天就和大家简单说说流失率. 说到流失率,我们可以考察,可以分析,可以利用的点实在是太多了,这里我也不可能把所有的东西都覆盖,仅

小白学数据分析----->聚类分析理论之TwoSteps理论篇+实践篇

昨天分享了以前学习的聚类分析算法K-Means的部分知识,其实这个主要是了解一下这个算法的原理和适用条件就行了,作为应用而不是作为深入研究,能够很好的将业务和算法模型紧密结合的又有几人呢?所以一些基本知识还是很必要的,这里就是简单把看过的一些知识点列举一下,梳理一下,快速了解和使用. 今天把TwoSteps的知识也梳理一下,顺便做个小的演示,使用SPSS 19,后续在使用SPSS Modeler或者叫做Clementine再演示一次使用方法.首先上图. TwoSteps支持数值型和分类型数据,这