本文目的
最近在看《数据挖掘导论》,此书作为此领域的入门书籍,很有口碑。这几天抽业余时间,看了第二章,觉得该记点什么,否则对不起自己。人总在与遗忘作斗争,好记性不如烂笔头。
主要内容
本章节主要讨论了数据处理的4个主要方面:
- 数据类型
- 数据质量
- 数据预处理
- 相似度测量
数据类型(Type of Data)
定义数据的属性,记录,数据集。
属性的类型分为4种
- 名称(Noimal):仅仅只是名称,用来区分不同记录,一一对应,如ID
- 有序(Ordinal):可以理解为计算机语言中枚举类型,有序,有限
- 区间(Interval):数字区域,主要用于加减运算,如时间,日期
- 比例(Radio):计算比例,主要用于乘除运算。
数据集的类型
- 记录:类似表格,矩阵
- 图:节点和关联组成的数据,典型的例子是网页和网页中的连接。图论。
- 时序:按时间排列,带有时间属性的数据集。
数据资粮(Data Quality)
主要介绍了如何度量数据的质量,精度,如何处理错误的数据,异常的数据,不一致的数据等,说的比较笼统,主要还是介绍概念和一些简单的实践方法,如去掉一些不符合要求的数据等等。
数据预处理(Data Preprocess)
这一章介绍了集中常见的数据处理方法,涉及到数理统计与线性代数相关的知识,有些公式和方法需要查阅相关书籍,才能明白,本书也只是提到了使用场景,没有讨论推导过程。主要预处理的技术有如下:
- 聚合(Aggregation):将分散的数据聚合成一起,减少数据量,如统计商品的销售额,可以讲流水中每一笔的销售情况按照天,月的方式合并起来,这样可以大大介绍数据量。
- 采样(Sampling):统计学得方法,采样的最大好处是可以大大减少数据集大小,但是关键点是如何以最小的样本数来获得最具代表的样本集。一般方法有随机采样,或根据权重采样。
- 降维(Dimensionaity Reducetion):线性代数的方法--PCA(主成分分析)和SVD(奇异值分解)
- 选取子属性集(Feature Subset Selection):选取问题最相关的属性,去掉无用属性,如ID
- 创造属性:傅里叶分析
- 离散化和二进制化:运用熵,离散化连续的值
- 变量转换:函数,规范化,标准化
相似性测量
个人认为本节是本章中最实用的一章,因为后续的很多章节的分析都是基于数据间的相似度来进行的,比如聚类分析。
欧式距离:集合距离的n维向量空间的扩展
Minkowski Distance:距离的范式表示
Jaccrd 距离:用于计算稀疏的0-1向量之间的距离
余弦定理:用于计算稀疏的非0-1i向量的距离,如果向量的莫需要考虑,那么可以采用欧式距离。0元素对相似性不做贡献
相关系数(Pearson系数):计算两个向量的相关性,可以用非稀疏举证,0元素对相似性做出贡献
相似度可以放到一些单调递减的函数,用来度量相异性。
比如,上述方法用于统一余弦值和欧式距离。余弦值越大,越相似。但是欧式距离越大,越相异。所以可以任选一个,通过一个简单的单调递减函数来转换,使两者的值表述一致(要么越大越相似,要么越小越相似),这样就可以原封不动的运用的同一个算法中,比如作为hierarchical cluster中的距离公式。
一点思考
上面流水账式的记录了第二章的大概,现在对数据处理已经有了大概的认识。以前虽然灭有明确的这个步骤,但是在一些地方见过。比如weka中有一块专门的地方用于数据预处理。自己在工作中,实现的聚类时,数据初始化时,其实也是在数据与处理,所以实际上本章的内容并不陌生,只是跟全面更广的了解的相关知识。
同时,发现线性代数,数理统计在数据挖掘中的应用还是比较多的,后续要抽点时间捡起相关的知识。
吐槽:好不容易从老婆那里要过来的两个小时的上机时间,终于完成了这篇blog,看来是要买个pad了,一台机器是在hold不住。