本文转载自:https://blog.csdn.net/u013232035/article/details/48281659
本文主要是在学习《数据挖掘导论(完整版)》中的学习笔记,主要用来梳理思路,并没有多少思考。
1.1 什么是数据挖掘
KDD: K nowledge D iscovery in D atabase
过程如下:
Created with Raphaël 2.1.0输入数据数据预处理数据挖掘后处理信息
其中,数据预处理包括如下几部分:
后处理包括如下及部分:
1.2 数据挖掘要解决的问题
1.4 数据挖掘任务
数据挖掘主要有如下两大类任务:
描述任务:导入数据中的潜在的模式,如 相关、趋势、聚类和异常等。更详细的说,有如下几大任务:
预测建模(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');
2.1 数据类型
数据集通常可以看为数据对象的集合。数据对象有时也可以称为记录、点、向量、模式、事件、案例、样本、观测或实体。数据对象由一组刻画对象基本特性的属性描述。属性又可称为变量、特性、字段、特征或者维。
2.1.1 属性和度量
我们给出如下定义:
- 属性(attribute):是对象的性质或特征
- 测量标度(measurement scale):将数值或符号值与对象的属性相关联的规则(函数),如清点教室中的座位数等。
属性的值往往有如下几种性质:
1. 相异性
2. 序
3. 加法
4. 乘法
根据这些性质,可将属性分为四种类型:标称(nominal)、序数(ordinal)、区间(interval)和比率(ratio)
属性类型 | 描述 | 例子 | 操作 |
---|---|---|---|
标称 | 标称属性只是用来区别不同对象的 | 邮政编码、学号 | 众数、熵、列联相关、χ2χ2 检验 |
序数 | 序数属性可以确定对象的顺序 | 治疗效果、矿石硬度 | 中值、百分数、秩相关、游程检验、符号检验 |
区间 | 区间属性之间的差有意义,即有测量单位 | 日历日期、摄氏度等 | 均值、标准差、皮尔逊相关、tt 和FF 检验 |
比率 | 比率属性的差与比值都有意义 | 绝对温度、质量、长度 | 几何平均、调和平均、百分比变差 |
属性类型可以通过不改变属性的变换来描述,即允许的变换(permissible transformation)
属性类型 | 允许的变换 |
---|---|
标称 | 任何一对一的变换 |
序数 | 值的保序变换,NewValue = ff (OldValue),其中ff 为单调函数 |
区间 | NewValue = a∗a∗ OldValue+bb ,a,ba,b 为常数 |
比率 | NewValue = a∗a∗ OldValue |
另外根据属性的可能取值,可将属性分为离散的(discrete),连续的(continuous)
对于非对称的属性(asymmetric attribute),出现非零值才重要,考虑如下数据集:每个对象为一个学生,每个属性记录该学生是否选修了某项大学课程
2.1.2 数据集的类型
2.2 数据质量
数据挖掘所使用的数据往往是为其他用途收集的,或在收集时没有明确目的的。因而数据的质量往往不高。故数据处理着眼于两方面:(1)数据质量问题的检测与纠正,(2)使用可以容忍低质量数据的算法
2.2.1 测量和数据收集问题
2.2.2 关于应用的问题
2.3 数据预处理
数据预处理是为了改善数据挖掘的效果,减少分析时间,降低成本和提高质量。常用技术可以分为两类:(1)选择分析所需要的数据对象, (2)创建/改变属性
2.3.1 聚集
聚集(aggregation) 将两个或多个对象合并成单个对象。考虑如下数据集:一个记录一年中不同日期在不同地区的商店的日销售情况,可以用一个商店事务替换掉该商店的所有事务。
2.3.2 抽样
在数据挖掘中,抽样是因为处理所有数据的费用太高,借助抽样压缩样本量,优化数据挖掘算法的性能。
有效抽样的原理:如果样本是有代表性的,则使用样本与使用整个数据集的效果几乎一样。
常见抽样方法有简单随机抽样,包括有放回抽样、无放回抽样;分层抽样;渐进抽样3。
2.3.3 维度归约
当数据集中包含大量特征(属性)时,维归约就愈加显现其好处。其主要的作用是,如果维度较低,许多数据挖掘算法的效果会更好,可以避免维度灾难;并且使得模型更易理解。
维度归约的常用方法是使用线性代数技术,将数据从多维空间投影到低维空间,主要技术有 主成分分析(Principal Component Analysis, PCA) 和奇异值分解(Singual Value Decomposition, SVD)。
2.3.4 特征子集选择
通过选择属性集中的部分属性的方法,达到降低维度的目的。当存在冗余特征或不相关特征时,往往并不会损失太多信息,从而也是一种有效的降维方法。由集合论可知,nn 个属性有2n−12n−1 个非空子集,故而穷举属性子集的方法是计算不可行的,实际中往往采用如下方法:
特征子集选择由四部分组成:子集度量评估、控制新的特征子集产生的搜索策略、停止搜索判断和验证过程。过滤方法和包装方法不同在与 子集评估度量 。
另外,除了上述三种特征子集选择的方法,还可以通过 特征加权 来保留或删除特征。
2.3.5 特征创建
常常可以用原有的属性创建新的属性集,更有效地捕获数据集中的重要信息。与之相关的方法有:
- 特征提取(feature extraction):如由相片提取人脸的特征点
- 映射数据到新的空间:如将时间域的变量变换到频率域,参见 傅里叶变换
- 特征构造:由原始属性提取出易于数据挖掘的属性,如根据密度分辨木头金块
2.3.6 离散化和二元化
某些数据挖掘算法只适用于分类属性,此时就需要用到离散化(discretization)或二元化(binarization)
2.3.7 变量变换
变量变换(variable transformation) 是指用于变量的所有值的变换,包括:简单函数变换,标准化(standardization) 或 规范化(normalization)
2.4 相似性和相异性的度量
我们使用邻近度(proximity) 来表示相似度或相异度,对象的邻近度常常是其属性的邻近度的函数。
简单属性的相似度和相异度可以通过下表刻画:
属性类型 | 相异度 | 相似度 |
---|---|---|
标称 | d={1if(x=y)0if(x≠y)d={1if(x=y)0if(x≠y) |
s={1if(x=y)0if(x≠y)s={1if(x=y)0if(x≠y) |
序数 | d=|x−y|(n−1)d=|x−y|(n−1) |
s=1−ds=1−d |
区间或比率 | d=|x−y|d=|x−y| |
s=−d,s=11+d,etc.s=−d,s=11+d,etc. |
欧几里德距离:
d(x,y)=∑k=1n(xk−yk)2−−−−−−−−−−−√d(x,y)=∑k=1n(xk−yk)2
其中,nn 是维数,xkxk 和ykyk 分别是xx 和yy 的第kk 个分量
闵可夫斯基距离:
d(x,y)=(∑k=1n|xk−yk|r)1/rd(x,y)=(∑k=1n|xk−yk|r)1/r
其中,rr 为参数
满足(1)非负性 (2)对称性 (3)三角不等性 的测度称为度量(metric)
相似度往往不满足三角不等性,而满足前两条。
相异度相似度的具体实例:
- 二元属性的相似度度量
设xx 和yy 是两个对象,都有nn 个二元属性组成,这两个对象的比较可以有如下四个量:
f00=x取0且y取0的属性数f01=x取0且y取1的属性数f10=x取1且y取0的属性数f11=x取1且y取1的属性数f00=x取0且y取0的属性数f01=x取0且y取1的属性数f10=x取1且y取0的属性数f11=x取1且y取1的属性数
据此可以定义如下距离
cos(x,y)=x⋅y∥x∥∥y∥cos(x,y)=x⋅y‖x‖‖y‖
EJ=x⋅y∥x∥2+∥y∥2−x⋅yEJ=x⋅y‖x‖2+‖y‖2−x⋅y
corr(x,y)=sxysxsycorr(x,y)=sxysxsy
其中,sxy=1n−1∑k=1n(xk−x¯)(yk−y¯)sx=1n−1∑k=1nxk−x¯2−−−−−−−−−−−−−−√sy=1n−1∑k=1nyk−y¯2−−−−−−−−−−−−−−√sxy=1n−1∑k=1n(xk−x¯)(yk−y¯)sx=1n−1∑k=1nxk−x¯2sy=1n−1∑k=1nyk−y¯2
D(x,y)=ϕ(x)−ϕ(y)−〈∇ϕ(y),(x−y)〉D(x,y)=ϕ(x)−ϕ(y)−〈∇ϕ(y),(x−y)〉
其中,∇ϕ(y)∇ϕ(y) 是在yy 上计算ϕϕ 的梯度,〈∇ϕ(y),(x−y)〉〈∇ϕ(y),(x−y)〉 为计算两者点积当距离度量具有不同尺度时,需要进行标准化;若属性间有一定的相关度,则可以使用Mahalanobis距离:mahalanobis(x,y)=(x−y)∑−1(x−y)Tmahalanobis(x,y)=(x−y)∑−1(x−y)T ,∑−1∑−1 为数据协方差的逆;当各个属性的重要性不同时,可以使用权重调整;当属性的类型不同时,可以使用如下算法:
Created with Raphaël 2.1.0计算异种属性的相似度计算第k个属性的相似度判断条件*保留该相似度使用公式*计算总相似度忽略该相似度yesno
判断条件 为:某个对象在该属性上有遗漏值,或者该属性为非对称属性且两个对象在该属性上的取值为0
公式 为
similarity(x,y)=∑nk=1wkδksk(x,y)∑nk=1δksimilarity(x,y)=∑k=1nwkδksk(x,y)∑k=1nδk
其中,δ=0,1δ=0,1 ,wkwk 为权重