想用趣味的方式给《趣味数据挖掘系列》做一个哲学的总结,哲学常较深奥,深则难得有趣。因为选题含原生态冲突,写起来就费思量。拟借用一个交通肇事频率分析的例子,又百语千言,颇难开头。硬着头皮Try,还是从故事讲起,很久很久以前,It was long long ago…
1 文本数据挖掘的老祖宗,实事求是的践行者 汉代的班固在描述汉武帝之二哥刘德时写到:“修学好古,实事求是。…留其真”,还称赞这位皇二兄(兼河间献王)“求真是”,“留其正本”。(《汉书河间献王传)。
用今天数据挖掘课堂上的语言来描述:汉初学者在研究汉以前的文化时,遇到了困难,包括文献不完整,数据冲突,数据有偏颇(与始皇焚书、战乱等诸多原因有关),等等。刘德在研究中,收集了尽可能多的先秦诸子文献做挖掘对象,再去粗存精、去伪存真,对不完整的文本数据进行了人工挖掘。
这是“实事求是”见诸于文字的最早记载。可见,“实事求是”不论是作为原则、方法,还是作为成语,从它诞生起,就与数据挖掘有深刻的联系。
很多学者追崇实事求是,如清代学者钱大昕提出“实事求是,护惜古人之苦心,可与海内共白”,戴震倡导“实事求是,不偏主一家”,等等,但应用领域都限于历史文献研究。
在《改造我们的学习》中,毛泽东的一段话普及且推广了这一思想:“‘实事’就是客观存在着的一切事物,‘是’就是客观事物的内部联系,即规律性,‘求’就是我们去研究”,把实事求是(即数据挖掘)的应用领域从历史性文本的挖掘推广到了广谱对象的分析与挖掘。
2 交通肇事频率分析中的“实事求是” 数据挖掘系统认定:真理蕴含在真实完整的数据中。表1给出了示意了一组交通肇事记录,是为说明方法的示意性数据,共10000行。
数据挖掘系统和传统专家系统在处理这一组数据的观点和方法有何不同呢?
编号 | 安全状况 | 车速 |
0000 | 安全 | 常速 |
0001 | 肇事 | 快 |
0002 | 肇事 | 常速 |
... | ... | ... |
9999 | 安全 | 快 |
表1 一组关于交通肇事的示意性数据
表1示意了数据的格式(结构),没有写全10000行(枯燥的)数据,需对数据的宏观性质的做些补充说明(或假定):
(1)数据已经做了核实和清理,是可信的数据,是较丰富的数据;
(2)10000次行车记录中,快车有2000次,常速8000次,共肇事140次,肇事记录中有70次是快车。
比较老旧的的专家系统的处理方法:设先已把若干交通管理专家的(历史)经验表达到知识库。专家系统在知识库中查到了一条权值很高的、很著名的历史经验:“十次肇事九次快”,专家系统得出下列规则:
R1:If 肇事 Then 开了快车, 置信度90%
遗憾的是,相对于这一组数据,这个比较老旧的专家系统犯了经验主义错误, 有点类似于刻舟求剑,舟已行矣,而剑不行,求剑若此,不亦惑乎?。(一些新的专家系统明白了这一点,向数据挖掘学习,已有改进)。
数据挖掘系统的处理步骤1:实事求是地挖掘车速和安全 之间的关联:
(1)10000个记录中快车出现2000次。所以,
该数据库对“快车”事件的支持度= 2000/10000 =20% ,
其中只有70次是“快车且肇事”,所以
数据库 对 “肇事且快车”事件的支持度=70/10000=0.7%,
(2)共肇事140次,肇事记录中有70次是快车,所以:
“肇事 è快车” 的置信度为70/140=50%。
综合(1)(2),得到下列关联规则:
R2:肇事 –> 快车, 支持度 0.7%,置信度50
于是,尊重数据的数据挖掘得到的初步结果(后面还要改进)与传统专家系统的结果不同。
数据挖掘系统的处理步骤2:– 实践是检验真理的标准。数据挖掘的工作还没有完成,还要用另一组测试数据来测试和修正。
设测试数据格式与训练数据类似,也是10000行。记录号从10000号──19999号。其中:
10000次行车记录中,快车有2000次,常速8000次,共肇事100次,肇事记录中有60次是快车
上面挖掘得到的初步结论,即规则R2,与这组数据不吻合。
解决方法之一是,用增量挖掘技术,把新的10000个记录追加到表1的数据上,组成新的含20000个记录的训练数据(需另找测试数据),演算之:
原来的: 10000次行车记录中,快车有2000次,常速8000次, 共肇事140次,肇事记录中有70次是快车
追加的: 10000次行车记录中,快车有2000次,常速8000次, 共肇事100次,肇事记录中有60次是快车
……
追加后: 20000次行车记录中,快车有4000次,常速16000次,共肇事240次,肇事记录中有130次是快车
其中,快车出现4000次,快车且肇事共计70+60=130次,所以快车且肇事支持度为130/20000=0.65%,240次肇事记录中共130次是快车的,于是得出下列规则:
R3:肇事–> 快车,支持度为0.65%,置信度为 130/240=54.1%
粗看R3,这条修正后的规则比较中庸,细与R1,R2相比,发现R3在较大范围,较准确地符合了数据。
为什么与老旧专家系统的“十次肇事九次快”结论不同呢?,可能是与多年前相比,酒驾和疲劳驾驶的肇事有所增加;挖掘的结论为制定惩戒酒驾和疲驾的法规提供了决策依据。
3数据挖掘系统坚持真理在数据中 上面的交通肇事频率分析中,数据挖掘相信规律就(隐藏)在事实中,数据挖掘的思想和挖掘过程都贯彻了“实事求是”。
音乐会上,不同的歌手对同一首歌曲作出不同的理解和演唱技术处理;人们对“实事”的词性和语义也有两种理解和处理。
其一,理解为名词,“实事”即事实、即数据,毛泽东的那段通俗的解释采用了这一种处理,优点是利于普及和推广。
其二,理解“实”为动词,把“实事”视为动宾结构。理由:后面的“求是”是动宾结构,四个字,两个动宾结构,可能更符合古人讲究对仗的文风。
“实”作为动词,即“实证化”,相当于数据挖掘中的数据核实与清理步骤,旨在建立可靠的数据库;而“是”则是潜藏于数据中的规律,即知识,“求”,就是发挥主观能动性,挖掘、求证、思考和解释。
合起来,用六个字更清楚,“实其事”而“求其是”,就是先做数据收集和数据清理,再作数据挖掘和知识解释。数据挖掘人当然更喜欢第二种解释,“实事求是”,囊括了数据挖掘的全过程,忍不住叹服,汉语成语的语义密度真大!
4 数据挖掘坚持实践是检验真理的标准,善于改正错误、与时俱进。数据挖掘还要用测试数据来测试初步的结果。测试数据是经过清理核实、“实”化了的数据。当测试数据与系统自己挖掘出的规则冲突时,数据挖掘系统先天性地“宁信数据,不信自己”,会重新挖掘或增量挖掘、改正错误、与时俱进。数据挖掘软件在事实面前,竟能如此客观和谦虚,殊为难能可贵。
如果我们的国家公务员(如统计部门、信访部门、执法部门,…的公务员)都像数据挖掘系统对事实这样地尊重,国家的事情就好办得多,老百姓心情就舒畅得多。
5 数据挖掘 PK 专家系统早期的专家系统假定真理在专家脑中(近来有所改进)。专家系统从人类专家获取知识,传统的三大步骤是:知识获取、知识表达、知识解释,由于在知识获取和知识表达方面的困难,用拟人化的语言描述,近年来专家系统混得似乎不如数据挖掘那样风生水起。
专家系统有一点“唯专家”,如果“唯”过了头,易涉嫌唯心;数据挖掘有一点“唯数据”,如果“唯”过了头,容易走向“机械”或呆板;二者各有长短,最近似乎有取长补短,走向融合的意向。
从哲学角度看, 数据挖掘作为软件系统,先天性地“实事求是”,坚持实践是检验真理的标准,尊重事实,善于修正错误和与时俱进,具有很好的先天哲学素养。可能这也是近年来数据挖掘比较成功,而专家系统不太成功的哲学原因吧。
( 《趣味数据挖掘系列》暂时在此告一段落)
作者:唐常杰,四川大学,计算机学院,教授
本文采用「CC BY-SA 4.0 CN」协议转载自互联网、仅供学习交流,内容版权归原作者所有,如涉作品、版权和其他问题请给「我们」留言处理。