数据
围绕4个方面展开数据的讨论:
- 数据类型:属性的类型,数据集的类型。
- 数据质量:必须解决的质量问题包括存在的噪声和离群点,数据遗漏、数据不一致或重复、数据有偏差等情况。
- 数据预处理:一方面提高数据的质量,另一方面让数据更好的适应特定的数据挖掘技术或工具。
- 根据数据联系分析数据:如找出数据对象之间的联系,然后使用这些联系而不是数据对象本身进行其余的分析。
数据类型
数据对象,数据集是数据对象的集合,数据对象也叫记录、点、向量、模式、事件、案例、样本、观测或实体。
属性也叫变量,特征,字段,特性,维(attribute,variable,feature,field, dimension,characteristics)。
属性类型
- 确定应对于属性基本性质的数值的性质,如相异性、序、加法、乘法,根据这些性质,定义四种类型:标称,nominal;序数,ordinal;区间,interval;比率,ratio。
- 用值的个数描述属性:离散,discrete;连续,continuous。
- 非对称属性:基于属性的不同取值的重要性来考虑。对称属性,取不同值意义相同。非对称属性,asymmetric attribute,出现非零属性值才是重要的,如医院关注positive值,而大部分检查结果出现negative表示正常,通常医生并不关注,仅对出现的positive才关注(出现症状)。
数据集类型
数据集的一般特性:维度,dimensionality,数据对象具有的属性数目;稀疏性,sparsity,通常具有非对称属性的数据集大多数数据对象的该属性都是0,非零项占比不到1%。分辨率,不同分辨率下得到的数据性质也不同,所谓分辨率就是数据的尺度基准,描述在时间上、空间上、采集量上对对象观测的程度。
数据集通常分为三类:记录数据、基于图形的数据和有序数据
- 记录数据,每个记录包含固定的数据字段集。数据矩阵,data matrix,或模式矩阵,pattern matrix,稀疏数据矩阵。
- 基于图形的数据:1)带有对象之间联系的属性,比如数据对象之间存在一种树结构。2)具有图形对象的数据,如化合物结构。
- 有序数据:时序数据,sequential data,或称时间数据,temporal data,记录数据的扩充,每个记录之间存在一个时间关联。序列数据,sequence data,一个数据集合是各个实体的序列,如文档是词或字母的序列。时间序列数据,time series data,特殊的序列数据,该序列数据的每一个数据实体又是一个时序数据。如一年十二个月的温度记录,宏观上是一个12条记录的序列数据,但是每一条记录又是这个月的连续时间上的时序数据。空间数据,特点是空间自相关性,spatial autocorrelation,物理上靠近的对象具有相似性。
数据质量
数据质量问题的检测和纠正,叫做数据清理,data cleaning。
测量和数据收集中的问题:
- 术语:测量误差,measurement error,记录值与实际值不同。数据收集错误,data collection error,遗漏数据或属性,或不当的包含其他数据对象等错误。
- 精度、偏倚和准确率:精度,precision,重复测量值之间的接近程度。偏倚,bias,测量值与被测量之间的系统变差。准确率,accuracy,被测量的测量值与实际值之间的接近度。
- 噪声和伪像:噪声是测量误差的随机部分。噪声通常用于包含时间或空间分量的数据。改善噪声的方法:鲁棒算法,robust algorithm。
- 离群点,outlier:或称异常,anomalous,相对于该属性的典型值来说不寻常的属性值。
- 遗漏值:分为数据对象遗漏和属性值的遗漏。考虑遗漏点的处理,比如插值,拟合,统计相似情况,或直接忽略遗漏点等。
- 不一致的值:包括数据与实际情况相离,数据不同属性矛盾,如月薪与年薪不一致。
- 重复数据:去重复,deduplication。
应用中的问题,及时数据采集测量是完美,在使用中也会存在一下问题:
- 时效性
- 相关性,如预测交通情况,若数据忽略驾驶员性别和年龄,那么模型的精度就很差。因为性别和年龄与交通意外的相关性很强,这是不能忽略的数据内容。
- 抽样偏倚问题,sampling bias,抽样集合中不同类型的对象与它们在总体中的出现情况不成比例。如高端小区抽查工资水平作为整体劳动人民的平均薪资显然是不合适的。高端小区中“富人”和“穷人”的占比显然和全国平均情况是不同的。
数据预处理
包括聚集,抽样,维归约,特征子集选择,特征创建,离散化和二元化,变量变换。
- 聚集,aggregation,将两个或多个对象合并成单个对象。定量属性通常用求和或平均数来聚集,定性属性可以忽略或汇总成为一个值为集合的属性。
- 抽样,选择数据对象子集进行分析的方法。需要样本具有代表性,即样本与原数据集具有相同性质。方法:无放回抽样、有放回抽样、分层抽样,渐进抽样(propressive sampling)。抽样需要考虑样本容量问题。
- 维归约:作用是可以删除不相关的特征并降低噪声,避免维灾难,同时可以使模型更容易理解,且更容易数据可视化。方法:通过创建新属性,将旧属性合并在一起以降低数据集的维度。通过选择旧属性的子集得到新属性。即特征子集选择或特征选择。常用的维归约技术是线性代数技术,将高维空间投影到低维空间,PCA,主成分分析,principal components analysis,用以找出新的属性(主成分),新属性是原属性的线性组合。另一种常用方法是SVD,奇异值分解,singular value decomposition。
- 特征子集选择:使用特征的一个子集。可能存在信息丢失,但是当数据集存在冗余或不相关的特性时,特征子集选择就很适合。常用三种方法:嵌入式方法,embedded approach,常用语决策树算法。过滤方法,filter approach,如使特征子集中的属性对之间的相关度尽可能低。包装方法,wrapper approach,又称为黑盒。总体而言需要合适的方法搜索最优的特征子集,同时需要验证这种最优性。
- 特征创建:由原来的属性创建新的属性集。方法:特征提取,feature extraction;映射数据到新空间,如傅里叶变换,Fourier transform,小波变换,wavelet transform;特征构造,原特征信息是必要的,但形式不适合挖掘算法,需要通过原特征对应构造符合挖掘算法的新特征。
-
离散化(discretization)和二元化(binarization):这种属性处理方法的根本原则是“对于用来分析数据的挖掘算法会产生最好的结果”
- 二元化。
- 连续属性离散化:通常在分类或关联分析中用到。分为两个子任务(觉得需要的分类值,确定连续属性到分类值的映射关系)。
- 变量变换:variable transformation,用于变量的所有值的变换。1)简单函数变换,用一个简单的数据函数分别作用于每一个值。2)规范化(standardization)或标准化(normalization)。
相似性和相异性度量
很多情况下,一旦出现相似性或相异性,就不再需要原始数据。这种方法可以看作将数据变换到相似性或相异性空间,然后进行分析。
邻近度,proximity,表示相近性或相异性。两个对象之间的邻近度时两个对象对应属性之间的邻近度函数。考虑具有多个属性的对象邻近度的度量。
基本定义
相似度,similarity,两个对象相似程度的数值度量,通常为非负值,且常在[0,1]间取值。
相异度,dissimilarity,两个对象差异程度的数值度量,也叫做距离。
-
变换:1)某一个区间内的邻近度值变换到一种标准化的区间(如[0,1])内,以适应特定算法或简化运算。2)将相似度与相异度相互转换,以满足不同的数据分析需求。
如相似度从[min_s,max_s]到[0,1]的变换可以用如下表达式:
$s' = (s-min_s)/(max_s-min_s)$,相异度同理。
通常,任何单调递减函数都可以用来将相异度转换到相似度(或相反)
简单属性间的邻近度
具有若干属性的对象之间的邻近度用单个属性的邻近度的组合来定义。故首先考虑单个属性间的邻近度(两个实体对于某单个属性来说他们的邻近距离,是相似还是相异)。
数据对象之间的相异度
-
欧几里得距离,Euclidean distance,描述两个具有n维属性的实体间的相异度(距离):
$d(x,y) = \sqrt{\sum\limits_{k=1}n(x_k-y_k)2}$
-
距离(如欧几里得距离)存在一些性质:
- 非负性。1)$d(x,y)\geq0$,2)仅当x=y时有,$d(x,y)=0$
- 对称性。$d(x,y)=d(y,x)$
- 三角不等式。$d(x,z)\leqd(x,y)+d(y,z)$
满足三点的叫度量,当然也存在不满足这三点的相异度。
数据对象之间的相似度
通常相似度,三角不等式不成立,但对称性和非负性通常成立。
邻近性度量实例
-
二元数据的相似性度量:两个对象,仅包含n维二元属性。它们之间的相似度(相似系数,similarity coefficient)可通过以下两种方法求得:
-
简单匹配系数,SMC,Simple Matching Coefficient:
$SMC = \frac{值匹配的属性个数}{属性个数}=\frac{f_{11}+f_{00}}{f_{10}+f_{01}+f_{11}+f_{00}} $
上式中,$f_{xy}$表示所有属性中a对象取x,且b对象取y的个数。
-
Jaccard系数,用来处理仅包含非对称的二元属性对象。因为SMC在处理非对称属性时,由于1出现的此处非常少,故判定为两个对象都是相似的。
$J = \frac{匹配的个数}{不涉及0-0匹配的属性个数}=\frac{f_{11}}{f_{10}+f_{01}+f_{11}} $
-
-
余弦相似度:Jacccard在非二元属性下的扩展。即对象的属性不仅是非对称的,而且是非二元的(多元、连续等),则用余弦相似度(consine similarity)来度量相似性:
$$\cos(x,y)=\frac{\vec{x}\cdot\vec{y}}{||x||\cdot||y||}$$
可化简为x的单位向量与y的单位向量的点积,故余弦相似度不考虑数据对象的量值
-
广义Jaccard系数:又称Tanimoto系数,EJ表示。
$$EJ(x,y)=\frac{\vec{x}\cdot\vec{y}}{||x||2+||y||2-\vec{x}\cdot\vec{y}}$$
相关性:两个具有二元变量或连续变量的数据对象之间的相关性就是对象属性之间的线性联系的度量,为$\pm1$表示正负相关,为0表示对象向量正交,不存在线性相关(任然可能为非线性相关)。
邻近度计算
考虑以下三个问题:
- 属性具有不同尺度(scale)或相关性如何处理。
- 对象包含不同类型的属性如何处理。
- 属性具有不同的权重(属性对邻近度的贡献值不同)。
- 距离度量的标准化和相关性:采用Mahalanobis距离
- 组合异种属性的相似度:属性的类型不同时,总相似度可以定义为所有属性的相似度的平均值(限对称属性)。当数据属性是非对称属性时,可直接忽略该属性对的值都为0的情况。
- 使用权值:为不同属性分配不同权值,通常可以固定权值综合为1。