|
概貌分析之实践上月底的时候,曾经写过一篇关于"概貌分析"的文,大致是将如何对一群客户进行全面地分析,其中提到用OLAP来做这样的分析,挺好。 这不,上周五的时候,基础数据已经准备好,要作一次这样的"概貌分析"。现在看起来,其实管它作"分析"还是有些勉强,其实产出的还是一个中间结果,并非分析报¬告。客户在这个中间结果上,还需要进行进一步的分析。(其实提交一份分析报告,显得更专业一些,但客户有时候也会倾向于自己去判断的嘛) 拿到数据大致一看,遇到问题了——数据量不小。要知道,excel是存在6万多条记录的限制的。虽然早先想到这个限制,想着可以将数据选取出来,生成文本文件,¬然后在excel中连接外部数据源,用odbc连接这个文本数据源,不就OK。但发现最终的数据量还是太大,性能是个问题。关键的是,交付给客户以后,他们需要¬重新配置odbc。 是的,最后想到的就是形成几个维度集合,例如消费方面的维度、行为方面的维度等等,每个集合大致也就三四个维度,用它们汇总出来的记录数,大多不会超过6w。看¬吧,这跟建一个cube遇到同样的问题了。不能让cube太大,要选取合适数目的维度,并且让分析有意义。如此,也就可以理解,之前的数据准备工作相当于数据集¬市的工作。 如果从业务经验上来离散化,例如将5次以下定义成低频,20次以下定义成中频,20以上定义成高频。这只需要人为定义一下即可。然而,面对这组数据,我不能确定¬一个连续值的取值范围是多少,于是采用一种偷懒的方法,用quantile来离散化。有的数据库可能叫做tile吧,反正都是差不多的意思。根据一个连续型字段¬的取值范围,你可以规定分成几个档次,然后系统自动根据记录条数,将这个连续字段切成几截。例如0-14对应到1,15-38对应到2,...。不过后来发现,¬这种方法有问题,它完全根据数据来,是根据记录条数来划分层次的,每个层次记录数差不多。举个例子,如果这个字段,有超过一大半的0值,当你分成3档的时候,很¬有可能,大于0的全部归到一个档里面。这当然不符合业务上的习惯。业务上,这是要看这些大于0的值是如何分布的。 有位同事告知另一种分档方法,叫BIN的分箱方法,这在数据挖掘的变量分析中经常是用到的。大意是针对连续字段的取值范围,等份成几个档次。例如连续字段最大值¬是100,最小值0,分成10档,也就是0-10一档、11-20一档......数据库本身似乎没有这样的函数,挖掘工具里面是支持这个离散化方法的,其实它¬也是生成一条sql语句而已。只是看起来非常复杂,让我望而却步。最终还是选择用quantile的方法。 也是时间的关系,没有多尝试其他方法。因为,只有上周五一天的时间来作这些工作。但现在想想,其实采用业务经验来分档恐怕是效果最好的一种了,只需要先观察以下¬这些连续变量的最小、最大取值,认为划定分档界限,就OK,看起来还很整齐。 最后,分成了五组维度,每组两张sheet,一张是详细汇总数据,一张是交叉分析表。这也就相当于是5个cube。 责编:Qing 微信扫一扫实时了解行业动态 微信扫一扫分享本文给好友 著作权声明:畅享网文章著作权分属畅享网、网友和合作伙伴,部分非原创文章作者信息可能有所缺失,如需补充或修改请与我们联系,工作人员会在1个工作日内配合处理。 |
热门博文 |
|