本文主要是在学习《数据挖掘导论(完整版)》中的学习笔记,主要用来梳理思路,并没有多少思考,我尽量会在后期多弥补这方面的不足。
KDD: K nowledge D iscovery in D atabase
过程如下:
其中,数据预处理包括如下几部分:
后处理包括如下及部分:
数据挖掘主要有如下两大类任务:
描述任务:导入数据中的潜在的模式,如 相关、趋势、聚类和异常等。更详细的说,有如下几大任务:
预测建模(predictive modeling):以自变量为因变量建立模型,从而使得因变量的预测值与实际值误差越小越好。其中,针对离散性变量的称为分类(classification),针对连续性变量的称为回归(regression)
下例为鸢尾花分类,数据集见 Iris_dataset,以下为matlab代码:
%% 鸢尾花分类
clear all; close all; clc;
%% 载入数据
% data各列分别为 花萼长度,花萼宽度,花瓣长度,花瓣宽度,种类
load iris_dataset;
%% 画图
% 花瓣长度 花瓣宽度 与 种类
type1 = data(data(:, 5) == 1, 3:4);
type2 = data(data(:, 5) == 2, 3:4);
type3 = data(data(:, 5) == 3, 3:4);
plot(type1(:, 1), type1(:, 2), 'o', type2(:, 1), type2(:, 2), 'o', type3(:, 1), type3(:, 2), 'o');
xlabel('花瓣长度(cm)');
ylabel('花瓣宽度(cm)');
legend(unique(classes), 'Location', 'NorthWest');
数据集通常可以看为数据对象的集合。数据对象有时也可以称为记录、点、向量、模式、事件、案例、样本、观测或实体。数据对象由一组刻画对象基本特性的属性描述。属性又可称为变量、特性、字段、特征或者维。
我们给出如下定义:
- 属性(attribute):是对象的性质或特征
- 测量标度(measurement scale):将数值或符号值与对象的属性相关联的规则(函数),如清点教室中的座位数等。
属性的值往往有如下几种性质:
1. 相异性
2. 序
3. 加法
4. 乘法
根据这些性质,可将属性分为四种类型:标称(nominal)、序数(ordinal)、区间(interval)和比率(ratio)
属性类型 | 描述 | 例子 | 操作 |
---|---|---|---|
标称 | 标称属性只是用来区别不同对象的 | 邮政编码、学号 | 众数、熵、列联相关、 χ2 检验 |
序数 | 序数属性可以确定对象的顺序 | 治疗效果、矿石硬度 | 中值、百分数、秩相关、游程检验、符号检验 |
区间 | 区间属性之间的差有意义,即有测量单位 | 日历日期、摄氏度等 | 均值、标准差、皮尔逊相关、 t 和 F 检验 |
比率 | 比率属性的差与比值都有意义 | 绝对温度、质量、长度 | 几何平均、调和平均、百分比变差 |
属性类型可以通过不改变属性的变换来描述,即允许的变换(permissible transformation)
属性类型 | 允许的变换 |
---|---|
标称 | 任何一对一的变换 |
序数 | 值的保序变换,NewValue = f (OldValue),其中 f 为单调函数 |
区间 | NewValue = a∗ OldValue+ b , a,b 为常数 |
比率 | NewValue = a∗ OldValue |
另外根据属性的可能取值,可将属性分为离散的(discrete),连续的(continuous)
对于非对称的属性(asymmetric attribute),出现非零值才重要,考虑如下数据集:每个对象为一个学生,每个属性记录该学生是否选修了某项大学课程
数据挖掘所使用的数据往往是为其他用途收集的,或在收集时没有明确目的的。因而数据的质量往往不高。故数据处理着眼于两方面:(1)数据质量问题的检测与纠正,(2)使用可以容忍低质量数据的算法
数据预处理是为了改善数据挖掘的效果,减少分析时间,降低成本和提高质量。常用技术可以分为两类:(1)选择分析所需要的数据对象, (2)创建/改变属性
聚集(aggregation) 将两个或多个对象合并成单个对象。考虑如下数据集:一个记录一年中不同日期在不同地区的商店的日销售情况,可以用一个商店事务替换掉该商店的所有事务。
在数据挖掘中,抽样是因为处理所有数据的费用太高,借助抽样压缩样本量,优化数据挖掘算法的性能。
有效抽样的原理:如果样本是有代表性的,则使用样本与使用整个数据集的效果几乎一样。
常见抽样方法有简单随机抽样,包括有放回抽样、无放回抽样;分层抽样;渐进抽样3。
当数据集中包含大量特征(属性)时,维归约就愈加显现其好处。其主要的作用是,如果维度较低,许多数据挖掘算法的效果会更好,可以避免维灾难4;并且使得模型更易理解。
维归约的常用方法是使用线性代数技术,将数据从多维空间投影到低维空间,主要技术有 主成分分析(Principal Component Analysis, PCA) 和奇异值分解(Singual Value Decomposition, SVD)。
通过选择属性集中的部分属性的方法,达到降低维度的目的。当存在冗余特征或不相关特征时,往往并不会损失太多信息,从而也是一种有效的降维方法。由集合论可知, n 个属性有 2n−1 个非空子集,故而穷举属性子集的方法是计算不可行的,实际中往往采用如下方法:
特征子集选择由四部分组成:子集度量评估、控制新的特征子集产生的搜索策略、停止搜索判断和验证过程。过滤方法和包装方法不同在与 子集评估度量 。
另外,除了上述三种特征子集选择的方法,还可以通过 特征加权 来保留或删除特征。
常常可以用原有的属性创建新的属性集,更有效地捕获数据集中的重要信息。与之相关的方法有:
- 特征提取(feature extraction):如由相片提取人脸的特征点
- 映射数据到新的空间:如将时间域的变量变换到频率域,参见 傅里叶变换
- 特征构造:由原始属性提取出易于数据挖掘的属性,如根据密度分辨木头金块
某些数据挖掘算法只适用于分类属性,此时就需要用到离散化(discretization)或二元化(binarization)
变量变换(variable transformation) 是指用于变量的所有值的变换,包括:简单函数变换,标准化(standardization) 或 规范化(normalization)
我们使用邻近度(proximity) 来表示相似度或相异度,对象的邻近度常常是其属性的邻近度的函数。
简单属性的相似度和相异度可以通过下表刻画:
属性类型 | 相异度 | 相似度 |
---|---|---|
标称 |
d={1if(x=y)0if(x≠y)
|
s={1if(x=y)0if(x≠y)
|
序数 |
d=|x−y|(n−1)
|
s=1−d
|
区间或比率 |
d=|x−y|
|
s=−d,s=11+d,etc.
|
欧几里德距离:
满足(1)非负性 (2)对称性 (3)三角不等性 的测度称为度量(metric)
相似度往往不满足三角不等性,而满足前两条。
相异度相似度的具体实例:
- 二元属性的相似度度量
设 x 和 y 是两个对象,都有 n 个二元属性组成,这两个对象的比较可以有如下四个量:
当距离度量具有不同尺度时,需要进行标准化;若属性间有一定的相关度,则可以使用Mahalanobis距离: mahalanobis(x,y)=(x−y)∑−1(x−y)T , ∑−1 为数据协方差的逆;当各个属性的重要性不同时,可以使用权重调整;当属性的类型不同时,可以使用如下算法:
判断条件 为:某个对象在该属性上有遗漏值,或者该属性为非对称属性且两个对象在该属性上的取值为0
公式 为