是否要抽样

  作者:姜玲
2007/5/25 14:12:27
本文关键字: ttnn 2006年11期

Qing 20061108

有一天,跟搞挖掘的人开会,谈起抽样。我们目前大多数模型都没有抽样,对外的口径,是相信机器、相信数据库的处理能力,对上亿的数据处理不费力气。对内的,很让人惭愧地,是抽样这门技术不太好掌握。
 
我是倾向抽样的,但不断提出为什么不抽样的质疑,似乎有些不可理喻,因为毕竟我不是专门干挖掘的,虽然我能够区别得出SAS的方法论中有专门抽样这个步骤,而CRISP-DM中没有。但挖掘专业人士回答我的质疑是,"抽样是门非常专业的学问"。我站在门外面,不敢否认这点。在挖掘建模人员看来,抽样会损失一些信息,造成模型不够精准,要不就是LIFT不高,要不就是模型不稳定(是这样的吗?内心是不大相信这点的)。可在我看来,抽样的好处多多。全体数据几千万、上亿,抽取出几万的样本,颠来倒去地,就可以用excel来查看了,想怎么着就怎么着,不用陷入无尽的等候当中。
 
数据分析是"玩"数据的过程,不记得哪个人用了这个词,比较好。既然要玩,就得翻来覆去,要灵巧。在玩的过程中逐步熟悉这些数据的。而现在基于全量数据做分析。数据探索阶段,大多是一些总体的统计,如此多的数据,也不好从多角度了解。设计了一些变量,训练模型,这一趟的代价(时间、机器资源)不小。训练完了,发现效果不好,重新筛选变量,还得付出差不多的代价。
 
这个轮回的代价导致的结果就是减少训练模型次数,而每次筛选变量、训练模型都是对业务问题更深入理解的机会。
 
我想这里就不光光是一个抽样技术的问题了吧。方法论是一回事,还是偏重技术。从项目管理角度看,挖掘建模人员的职责是什么,是不是就管建立模型,让模型的lift达到一个值?如果是那样,确实利用全量数据达到一个不错的lift可能更容易一些,具体为什么达到,不必了解。对于某些非常专注于挖掘技术的哥们来说,这样的职责定义挺好,有业务方面的人来辅助一起建模。他不用考虑哪些变量,如何解释最后的模型结果,只需要用某种数学方法解决已经抽象成数学问题的业务问题。但怎么着,你不能指望哪些输入的变量就是完全定下来的了,当模型训练完毕,观察结果,可能又会兴起新的念头,找到新的变量。那时候,总不能因为机器资源不足、时间不够,拒绝重新训练吧。
 
其实如果说模型的精准度,用全量比抽样好,假定这个说法成立吧。但其实,目前模型根本不精准,很多因素导致的了。目标可能是模糊的、变量选择还不严谨、日常市场活动对数据的干扰等等。好似大家抱着精益求精的态度,但其实应该求精的地方暂时还不在那里。
 
我想在目前这个阶段,挖掘模型建的好坏,量化的指标是一个方面,更重要的,还是要从模型中得出可以理解的业务规则,最好是原来没有想到的业务规则。是的,后者更重要。复杂的模型要变成简单的规则。
 
任何反动势力都是纸老虎,任何看起来,听起来复杂的模型也是。如果我是客户,我会这么看。但我不是客户,所以经常要假扮成纸老虎。
 
frankwansunny 20061109

计算机硬件成本本来就不高的情况是没有必要抽样的,如果把数据挖掘比喻成从矿石中找黄金的话,没有抽样到的部分中可能就含有大大的黄黄的东西。很多东西我们挖不出来,是目前技术不够,自己的本事不到家,就像小日本会买中国的矿渣一样,我们没办法利用的资源他们能有办法利用起来。
 

何德琳 20061109

对于绝大多数驻内存算法,在以G为单位的数据上挖掘抽样是个很好的办法啊。我现在搞贝叶斯推理和分类也用到gibbs抽样。

qing兄的这句话: 挖掘模型建的好坏,量化的指标是一个方面,更重要的,还是要从模型中得出可以理解的业务规则,最好是原来没有想到的业务规则。是的,后者更重要   我最欣赏。我现在还呆在实验室,每天折腾各种算法,改进改进再改进,将老美的算法原型改进,比它的复杂度低,就能发文章。现在搞贝叶斯网络学习算法,老美90年代初整出几个非常绝妙的网络结构学习算法,现在搞贝叶斯的人就是一个劲改进算法。来TTNN久了,老觉得改进这些学习算法有意义吗,搞出一个改进算法,用20年前的 alarm数据集一验证,比前人能多学习一条正确的边,少一条错误的边,就是一个好算法,能发文章,但从来没去真正研究alarm数据集中各个变量的含义,变量之间的因果关系,这完全背离了DM的真正含义。 所以啊,挖掘模型的好坏还是能从数据中挖出什么,DMer必须要随时理解数据,不能脱离数据来mining,

否则就算算法再优,结果是没什么意义的。

frankwansunny20061112

>hunter说到“应该抽样,快速得到结果,然后分析用户所选择的结果(引入lift之外的指标),用结果反推参数,然后用这些参数对全库进行挖掘”。

hunter 你能说得再具体点吗,你是说的用户流失预测一类的分类预测吗?针对流失预测是要抽样的,因为处理的是非平衡数据,两个类别的数量相差很悬殊,不抽样得不出规则。
 
但是感觉Qing所说的抽样不应该是处理非平衡数据的抽样。我的理解是指的从全体数据中通过某种抽样方法得到部分数据,这部分数据由于抽样方法的先进,它们所反映的特征也就是全体数据集的特征。这样是可以更容易的“玩”数据了,但是这种数据分析方式的合理性是要建立在抽样方法的正确或者适合具体某个业务的分析上的。抽样方法其实也是一种数学理论,既然大家对建模算法都那么愤愤不平,觉得虚有其表,不实用。那么为什么这么对抽样算法这么“宽容”呢?
 
我到是觉得,我们可以回过头来想想,为什么要讨论抽样的问题。无外乎是想把大问题化小,把不好处理的大数据量处理转化为好处理的,方便试验的小数据量分析问题。要降低分析的数据量方法很多,如果分析的问题和用户相关(10有89是相关的吧),ttnn里以前经常讨论的客户分群就是很好的解决方案之一,当然怎么分以前的文章已经讨论很多了,不管怎么说根据具体的业务和分析专题来进行相关的数据处理和建模是实际应用中应该坚持的信条,即使只用sql语句来做分析。
 
个人观点:在清理完数据之后,尽量利用所有数据分析,能不抽样就不抽样,个人不是很相信抽样方法,觉得要做好抽样比要做好客户细分更难。特别是要针对具体问题进行抽样的时候就更有专业性了。
 
个人期望:如果有一天做数据分析的人也能像建筑工程师一样在盖楼前能先有个模型,这个模型的合理性有一套系统的评估方法(建筑模型的这套理论应该是经典物力学吧,猜的),对模型的误差也有个度量的方法。自己对抽样和统计学一类的东西没有太深的基础,这样的评估方法可能已经很成熟完善了,可能目前的抽样技术也是很先进的,了解这方面技术或理论的朋友不妨上来和大家聊聊。

rasu 20061116

我很推崇抽样得.原因是:

1.我个人觉得抽样一定得比例(特别对现在得电信行业得海量数据)是可以和全量具有相同得分布得,可以代表全量所具有得个性或隐含在数据中得特征.

2.另外QING兄说的lift值的问题,我觉的是这样的.我们一般在建训练模型时才使用抽样样本.而在验证时可以使用全量(当然要去掉已经抽样的样本了,也可以用不是一个月份的全量样本),这样就没有lift问题.其实我觉得你说的lift值不高的问题,应该是对训练样本进行平衡後出现的.举例来说:比如为了建立流失模型,使用决策树建模.但为了能建立理想的模型,我们常对训练模型进行平衡.象比较常用的流失比非流失为1:1或1:3等.这样,如果看这些训练样本得出的模型,lift值最高才能达到:2或4.所以我觉得lift是和你样本中事件的百分比有关的.不同的百分比,去比较lift值应该是没有意义的.

3.frankwansunny说的"没有抽样到的部分中可能就含有大大的黄黄的东西".这样的观点我也是不赞同的.举例来说:如果你有100万客户,你不抽样可以得到一个有100左右的分群,平且这个分群有显著的特征.那么我想问,你能对这100个客户做些什么呢?他们到底是不是金子呢?(当然我觉得欺诈应该排除我的这个想法).我们对这100个客户去发展一项新业务?这样效率太低了些吧.另外最重要的是如果这100个是小概率事件,是随机的(象数学中的随机参差).这些小概率事件下次还会发生吗?

4.另外抽样可以大大减少分析数据和训练模型的时间.是我们能很快的对变量进行探索性变量分析,有可能求一些衍生变量.特别是对变量个说比较多的,我们要挑选一些重要的变量.这样在一定的样本下,我们也可以调整模型的不同参数,甚至使用不同的建模型的方法,直到得到理想的模型.

所以我比较赞同使用抽样方法.

责编:姜玲
vsharing微信扫一扫实时了解行业动态
portalart微信扫一扫分享本文给好友

著作权声明:畅享网文章著作权分属畅享网、网友和合作伙伴,部分非原创文章作者信息可能有所缺失,如需补充或修改请与我们联系,工作人员会在1个工作日内配合处理。
畅享
首页
返回
顶部
×
    信息化规划
    IT总包
    供应商选型
    IT监理
    开发维护外包
    评估维权
客服电话
400-698-9918