趣味数据挖掘 |“被打”和“北大” 的关联

  • A+

小时候喜欢读趣味数理化,所以久有一个小心愿,写一组趣味数据挖掘的科普博文。

要把数据挖掘的一些概念讲得通俗有趣,需要好的例子,正搜寻中,一个有趣的、适合解释关联规则的例子就冒出来了。

趣味数据挖掘 |“被打”和“北大” 的关联

科学网上三位博主周涛、吕喆、程智在博文中对“狼爸打子成才,把三个子女送进了北大”的事情做了定性分析。

本文借此例来说明数据挖掘中关联规则中支持度、置信度和兴趣度概念,顺便对此事做个定量分析, 同时也作为趣味数据挖掘系列博文的开篇。

这个关联规则可写成下列形式:

●R1: 被打 –> 北大, 支持度 s=?, 置信度 c=?

或反过来

●R2: 北大 –> 被打, 支持度 s=?, 置信度 c=? (观察因果的角度与R1有所不同)

下面将其计算支持度、置信度的上限,为简单,采用了一些略有放大的粗略假定和估计。

1 支持度 (support)

全国每年高考人数大约1000万人(2008 :1050万,2009:1020万,2010: 957万);把“狼爸”的三个孩子算成同一年进北大(支持度放大三倍),假定同年进北大、且都有“被打”的经历有3K名(支持度大约放大3K倍)。于是,全国考生中 “被打”且 “进北大” 的支持度s 为:支持度 s = 3K/107 =3K*10-7

狼爸的故事表明,这里k≥1, 据常识估计K<10 ( 如果轻率放大K,北大学生会提出抗议,幸好,这里只是反面的假定 ),于是:支持度 s < 3*10-6 (支持度没有因果方向, 对R1和R2都适用)

对这样的概率比较小的事件,成熟彩民也会只当做娱乐,实在不值得媒体大惊小怪。

2 计算“北大–>被打”的置信度 (confidence)

2.1 在北京大学内计算

规则R1“被打–> 北大” 的置信度计算稍有点难, 留到2.2小节解析。

我们先计算 R2:“北大–>被打”的置信度,它也同样能说明某种关联,北大本科生 14000人(大约),平均每年收学生3500人,设其中挨过家长打的有3K人(1≤k<10),没有挨打的不少于3470人,则:

●北大–>被打, 置信度为 3K/3500 < 0.86%

●北大–>不被打, 置信度为 3470/3500 > 99.14%

可见,“被打”和“北大”的关联 很小,不足为信,当不得真。

2.2 计算“被打–>北大”的置信度 (confidence)

如上面假设,假定 同年全国被打的N名,其中进入北大的3K名(如上估计,0≤k<10)则

R1: 被打–>北大, 置信度 = 3k/N ,

●如果N很大,k>0,置信度就比较小(不敢轻易估计N的具体数值,但不希望N大,那是教育的悲剧),

●如果N不太大,K>0,置信度就比较大。

●如果某年,k=0,不管N是多大,那一年“被打–>北大”的置信度 为0.

2.3 在该家庭范围内计算,兼议规则的兴趣度:

“狼爸”有四个孩子(不知为什么能够超生),估计四个都挨过打,三个上了北大

被打–> 北大, 支持度 0.75, 置信度 0.75。 (1)

这条规则一旦走出其家门, 就不成立了。所以,准确表达为:

(该家,被打) –> 北大, 支持度 0.75, 置信度 0.75。 (2)

为了说明其无意义,我们还可以挖掘出一条千真万确的关联规则:

(该家子女,每天吃饭) –> 北大, 支持度 0.75, 置信度 0.75。 (3)

如果把“每天吃饭”改为任意的保健品,关联规则也成立,比“打”更具有有诱惑力,说不定还有经济效益。这条无意义的关联规则,说明需引入关联规则的兴趣度,此概念稍复杂,只简介其大致思想。

当关联规则左边是多个项,如上面的(3)式,可以用减项法测试每个项的贡献,这类似过敏疾病患者判断过敏源,左边甚至可以减少到空集。在(3)式中,

(a)把“每天吃饭”去掉, 不减少支持度和置信度,说明此项冗余;

(b)如把“该家子女”去掉,则相当于在全国的大数据集上挖掘, 支持度和置信度立刻大减,说明这个项是至关重要的。

如果一个关联规则中,每一个项都是重要的,这个关联规则基本上是有意义的。

3 错误的挖掘结论

这里有几个估计,(1) 所谓的“打”,实际上是高高举起,轻轻放下,是严格的指代词,还不是那种打得皮开肉绽的打(那样会打掉尊严和信心,就悲剧了);(2)老大比较懂事;(3)老大对老二老三的影响远胜于老爸打的效果。“狼爸”在挖掘关联规则时候,忽略了这一因素,“父假长子(女)之威”,用数据挖掘的行话,犯了“No interesteness” 的错误(这是一个稍复杂的概念),得出了错误的挖掘结论。

4 一个支持度和置信度都很高的关联规则

在输入文本的纠错技术中,常关注词与词的发声关联,或谐音关联,“被打”和“北大”的普通话发音都是“beida”,用拼音输入法时候,二者容易混淆,又例如,本博文在输入最后一节小标题“辨才需待七年期”时,曾把 “辨才”输入为“辩才“(谢谢22楼的朋友的指正),纠错软件会把近音词按近似度排序列出。因为在语音近似的意义上:

被打–> 北大,支持度 100%, 置信度 100%

于是,在用拼音方法输入“被打”之后,作输入纠错检查时,软件列出候选词中的Top 1 就是“北大”,或许可以作为中学生被打后的一种安慰。

这一技术在处理网络文本,微博挖掘时也很有用,如规范 “悲剧 Vs 杯具”,“p2p Vs. P-to-P”,”U Vs. YOU“,以及许多网络同声缩略语等等。

5 曾经言必称啤酒尿布

过去讲关联规则时候,常常用啤酒尿布的故事,有三个要点:

(a)表象分析:说,沃尔玛通过抽象的销售数据挖掘,发现啤酒和尿布常被男性顾客们同时购买,在挖掘出来的若干条形如 ( Xi–>Yi ,s=? c=? ) 的规则中,这一条支持度和置信度都比较高;

(b)内在联系 (这不属于数据挖掘,而属于管理)调查发现,婴儿之父下班为孩子买尿布时顺手买回自己爱喝的啤酒;

(c )促销措施 (属于促销手段),把啤酒和尿布放在同一个货架 ,或进一步地,把啤酒降价,把尿布涨价,吸引婴儿之父的消费。

现在人们认为,这只是一个故事,或许,“狼爸”的例子更贴近,更容易消除对概念的误解。

6 猜自然之谜时,数据挖掘虽属无奈之举,却很有效

在人们没有掌握行星运动规律之前,人们从历史观测数据去找规律,找匹配。第谷是一位实验天文学家,历经40年观察,积累了关于行星运动的大量数据。

开普勒在第谷的四十年数据上,用手工作数据挖掘,挖掘了十年,发现了行星运动三大定律。 Candida Ferreira采用基因表达式编程(GEP)方法,用10个 个体, 进化50代,只需要少得多的数据,几秒钟就可完成(参见文献[1],P253-257 )。有了这个定律,如今计算某个行星的位置,就不再需要数据挖掘,而直接用公式了。所以数据挖掘是在不知道规律时,而要猜自然之谜时的无奈之举。

如今,未破解的自然之谜还很多,数据挖掘虽属无奈之举,却很有效,挖掘出正确的表达形式(公式,定律等)后,再设法用理论或模型 来作动力学的或构造性的解释。

上面的分析表明,数据挖掘能从能从一些平常熟视无睹的事实中,挖掘出令人惊奇的结果。所以,有些国家把数据挖掘专业看作是敏感专业,出国学数据挖掘的学生去办留学签证时,常常被Check ,复查,偶尔也听说过被拒签。

7 辨才需待七年期

“狼爸”的三个子女进了北大,还不能就说是成功了,今后还要作科研,找工作,也许还要读研,写论文…, 等待他们的竞争还多,要等将来工作上出成果了,才算成功。

有道是:试玉要烧三日满,辨才需待七年期。希望他们在七年或者十年之后能真正成才,那时的成才,与现在的“打”,实在是没有什么关联了。

参考文献

[1] Candida Ferreira,"Gene Expression Programming ,Mathematical Modeling by an Artificial Intelligence",Second, revised and extended edition,P253-257 ,Springer,2006 ,ISSN print

edition: 1860-949X,ISSN electronic edition: 1860-9503 ,Library of Congress Control

Number:  2006921791.


作者:唐常杰,四川大学,计算机学院,教授

原文链接:http://blog.sciencenet.cn/home.php?mod=space&uid=287179&do=blog&id=508584

R语言神经网络模型银行客户信用评估数据
MySQL必知必会
Excel数据可视化分析方法大全
R语言实战(中文完整版)

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: