数据挖掘,根据我的学习,包括数据预处理、数据模式分析、数据分类、数据聚类分析、离群值分析等。
前言
其实我们在中学阶段就已经学习过数据的频率、均值、方差、极差等等各种统计方法,并能够使用直方图、饼图、柱图等等方式进行数据可视化。这些手段其实就能够帮助我们实现初步的数据挖掘,我们能够因此发现数据中蕴藏的信息。然而,当数据的数量迅速膨胀时,我们则需要更为有力的手段。人类之所以能够成为地球的统治阶级,其最强大的能力莫过于“描述不可见”的能力,无论是我们的语言、经济还是科学,都是基于这种能力对人类本身,对自然规律的认识而被创造的。
数据的预处理
现实世界中的数据是很“脏”的,数据是由人类的行为产生,在记录的时候难免出现各种问题。关于数据的质量,我们可以使用“正确性、完整性、连贯性、时效性、可信性、可读性”来评价。而这些性质的任意一种或者多种都是可能出现问题的。所以我们要进行“数据清洗”。比如:对噪音数据(我认为是明显不符合实际的数据),我们可以使用人工以及机器的方式进行鉴别,然后将其删除或者使用中位数或者平均数进行平滑。对于缺失的数据,我们可以使用平滑或者根据前后数据进行推测。这一部分具体会遇到的问题之多在这里是难以罗列的,需要针对具体的问题具体解决。而且随着数据库的全面普及,传统手工式记录所带来的这些问题相信会越来越少。
当一份“干净”的数据到手后,我们可以采用PCA算法(主成分分析法)来对数据进行降维操作。将高维数据变成低维数据能够降低非常多的运算量,从源头保证高效。我们将数据看成一个N维矩阵M,根据线性代数的知识,使M*V=λV中的V称作特征向量,λ称为特征值。正如如其名,它们能代表一个矩阵的特征。一个矩阵在N维上可以分别由N个特征值以及特征向量表示。PCA算法最本质的原理就在于将N个特征值减少到X个实现N维降到X维。步骤如下:
1、将矩阵归一化,这样方便第二步的计算。2、计算协方差3、使用协方差矩阵计算特征值及特征向量4、将最小的那些特征值及其特征向量删除,实现降维,具体需要删除多少个可以自己决定5、最终结果=余下特征向量*归一化矩阵
实战分析:
数据仓库以及OLAP(在线分析过程)
此部分其实并没有涉及到详细的算法。但是从公司招聘要求中可看到这部分的实际应用很广。所谓数据仓库,在我的理解中是与原始操作数据库相隔离,使用立方体平台提供信息处理,它“面向项目”,排除不必要的数据。数据的更新不发生在仓库中,故只需加载和使用数据。其结构如图:
关于OLAP,它的体量很大,通常在100GB-100TB左右,其主要操作有上滚(drill up)、下滚(drill up)、切片(slice)、切块(dice)、转动(rotate)
毫无疑问,这是需要大量实践才能掌握的技术,很遗憾笔者暂时还没有实践的机会。