Archive

Archive for 2011年3月

从数据挖掘角度看算命

2011-03-10 1条评论

不知道从什么时候开始,血型啊、星座啊、生日啊、生肖啊都能和运程、工作、婚姻…什么的扯上关系。而且,好像现在的孩子们更加乐此不疲,还比较哪个准些。 网络上也充斥着类似的文章,每次总有若干人说准,若干人说不准。

我就从计算机科学的角度谈谈。计算机科学里有一个方向,叫数据挖掘(data mining),  简单地说,就是在海量的数据里面找出有用的知识。里面又分聚类(clustering), 分类(classification)等。 这个分类有点像我们平时看到的算命了。

什么是分类呢? 举个类别为2的例子来说: 有2组病人数据样本,一组为血压正常(negative), 一组有高血压(positive), 样本包含了病人的若干个特征(feature), 比如说,抽烟否、喝酒否、运动否、熬夜否、体重、血型、肤色、人种…. 通过建立数学模型,计算机运算,找出若干个和高血压最最相关的特征(比如前5个特征),这个过程叫feature selection。 再根据找出的这些特征和样本数据,通过一定算法,在计算机运算(training), 建立起一个模型标准(trained model)。 根据这个trained model , 可以对一个病人是否有高血压进行预测:好比说 喝酒、抽烟、少动、熬夜、超重的话,高血压可能性就大。 这个是不是有点像算命呢 ?

这里,每一步都是一个不小的课题。 比如,feature selection, 首先就是建立在人为选择的features上的。好比说, 你怎么知道一个人住地区的纬度和他的血压没有关系呢?然后,你怎么知道特征A和特征B是独立事件呢? (也就是P(A)P(B) = P(A, B) ) 会不会因为A根本就是B引起的,从而可以去掉A呢? … 有师兄对上千个基因特征进行过feature selection, 试图找出最有可能的致癌基因(群),就是这种研究。

回到我们平时看到的算命,里面有哪些问题呢? 最大的问题是,不经科学证明,人为认定血型、生日、星座或莫一个特定特征就是一个selected feature,  后面的所有预测基于这唯一的一个feature (或少数几个)。这个假设太强了,这样出来结果,如果人数足够大,必定是随机的,也即是正确与否的概率为0.5. 也无怪乎有人说准有人说不准了,谁都跑不出那0.5+0.5的全集。(即使通过科学建立的模型,正确率也往往不是很高。另外,正确率为50%的2分类器最差,还不如40%的,因为后者倒着用就有60%了。)想想也是,如果生日、星座就能决定你是否事业、性格,那么妈妈们还不把那些好日子挤满了? 而事实是,从统计上说,人出生的日期是平均分布的,如果偶尔有生育高峰月,那也往往是假期决定婚期,婚期决定预产期的原因。(不过对现在的小朋友来说,可能婚期已经不能决定预产期了,呵呵。)

反过来说,如果有人可以用分类的思路,通过海量数据的做training,建立起一个trained model, 倒不失为一个可能的算命好方法。

分类:工作学习