世界是连续的,人们试图用离散的视角来解释它。 世界在时空上都有它的连续性,当我们抽出一个个时间点作参考分析,拿一个个事物分门别类,这是我们认识世界最便捷的方式,但就因为这样,世界是我们永远不可能穷举的。为什么做数据挖掘和医生看病一样,永远没有止境,那就是因为数据就是病症,这个世界上有无数接连不断的、变异的病症涌现,数据亦如此。 熊辉老师认为,数据挖掘有三层境界:“第一层,看山是山,看水是水;第二层,看山不是山,看水不是水;第三层,看山还是山,看水还是水。”这参考的是宋代禅宗大师青原行思提出参禅的三重境界:“参禅之初,看山是山,看水是水;禅有悟时,看山不是山,看水不是水;禅中彻悟,看山仍然山,看水仍然是水。” 初学之时,面对茫茫数据却不知如何看穿。行进有时,渐悟一二,能从数据中抽取其未间接表达的信息。而历经无数后,回归本原,飞花摘叶,只一二法,变能斩获至宝。此吾之理解数据挖掘三重进阶。 未来的金融是大数据技术的天下 北美发达的商业交易市场,已不再是传统股票经纪人每天看财报,分析股指,买卖两三支股票就能高枕无忧的年头了。T+0的交易模式允许交易方在同一天买入和卖出,于是就产生了自动交易机,每秒钟执行上百万次的买卖交易,而这些交易的决策,完全是由机器智能实现的。因为交易笔数的增多,每笔交易的利润并不需要很大,整体也能产生巨大的盈利。甚至有公司利用纽约证交所到太平洋对岸的结算中心2ms的信息传输延迟,赚取了大量收入,这些高频交易,跟传统的金融分析已经间隔渐远,大数据技术成为重中之重。当美国一大批商学院在向信息界寻求力量,而中国的商学院尚处于学习美国以往模式,学生只懂现象不懂技术,此番培养的金融人才,必将很难适应市场,这是熊老师提出对国内“金融热”的大大担忧。而计算机行业,若有数据挖掘背景,将会有巨大的发展空间,不仅仅在金融界。 选导师也是一次数据挖掘课题 首先,要会看这个导师以前的学生毕业后的发展情况,这些是训练集(Training data)。而后去老师主页看看他/她文章的署名,全是第一作者的,就不要报了,否则会很惨。第三要懂得触类旁通,多去问问现在在他门下的师兄师姐,了解实际情况。 数据挖掘四大分支:分类、聚类、关联、异常诊断 所谓人才过剩,说的是一致化的人才一大把。熊老师用自己学生为什么被名校录取做教职的例子,告诉我们,可以经常用“异常诊断”(Outliers detection)来评估自己,在哪些维度上,自己是独特又有价值的。注意一个定义,Outlier和Noise不一样,Outlier是真实存在的,但与一般实例有不一样的表现,而Noise是错误的数据,可能是采集、存储、运输中发生的问题,做数据清理的时候需要除去。 讲到数据清理,它主要包括两个方面,一是Feature Selection,这是机器学习经常要做的问题,除去无关或者影响甚微的性质Feature,不仅提高了算法的准确率,还减少了计算复杂度。二是Instance selection,这就是要消除那些跟我们研究目的无关的例子,比如我们要研究所有男性患高血压的概率问题,就不应混入女性的数据。采样是很危险的 那些没有做过大数据实践的统计学家经常鼓吹,他们通过采样,只需千分之一的数据,就能得出数据的模式(Pattern)。其实,这在很多情况下都是扯淡,采样有至少三个危险区。第一,采样可能导致异常消失,如果我们要做的就是异常诊断(Outliers detection),异常本来就稀少,如果用随机采样,绝对变白痴。第二,采样会导致关联减弱。第三,采样可能会忽略小型聚类,举个例子,要是社交网络中的小聚类正好是VIP客户群,这样的忽略麻烦就大了。 庄子“识人九征” 将数据投射到另一个空间或者维度,是数据挖掘中很高级的一中方法。熊老师举庄子“识人九征”作为例子:“远使之而观其忠,近使之而观其敬,烦使之而观其能,卒然问焉而观其知,急与之期而观其信,委之以财而观其仁,告之以危而观其节,醉之以酒而观其侧,杂之以处而观其色。”(【庄子·杂篇·列御寇】)以上九种情况,都是把要考察的人放在一个特定的场景下,观察其反应,此即Mapping Space. 数据挖掘做科研的切入点 数据挖掘跟机器学习不同,它是一个自底向上的技术。它关注数据的密度、维度、噪声、分布以及数据点之间的相似性,它的终极目的就是在一个大表(行为实例,列为性质)中填补那些缺失的、错误的数据。从数据的密度上,有稀疏性的算法可研究,如矩阵分解。在数据维度上,常常需要用到降维(dimension reduction)技术,如SVD, PCA等等。对噪声和Outlier的处理,与聚类算法息息相关。衡量数据点间的相似性,对应的也就是研究两点之间的距离,距离函数面对不同的数据类型又是不一样的选择,可有讲究了。 譬如欧几里德距离适合衡量低维的数据,因为理论可以证明,高维下,任意两点的欧式距离将十分相似!这时候角度是不会改变的,于是Cosine distance就有了好的表现,但它的弱点是不能衡量长度。有时候,统计相关性(correlation)也会作为距离的函数,不过它只能衡量线性关系,你拿Y=X^2的数据给它,得出来X,Y的相关性居然是0,为什么?因为他们是二次相关。 在做多Feature的数据挖掘任务时,标准化(Normalization)是必不可少的工作。可以很容易想象,如果不做标准化,值域大的因素容易统治预测结果,尤其是在相同的权值影响下。 作者:范深,电子科大,计算机科学与工程学院,硕士在读 |