《数据挖掘》—— 第2章 认识数据
文章目录
第2章 认识数据
2.1 数据对象与属性类型
- 一个数据对象代表一个实体,例如,顾客、商品、患者、学生、教授等;
- 数据对象用属性描述;
- 数据对象又称样本、实例、数据点、对象或数据元组(数据库中)。
什么是属性
- 属性(attribute)是一个数据字段,表示数据对象的一个特征;在文献中,可以与维度(dimension)、特征(feature)和变量(variable)互换。
- 用来描述一个给定对象的一组属性称作属性向量(或特征向量);
- 一个属性的类型由该属性可能具有的值的集合来决定。属性可以是标称的、二元的、序数的或数值的。
标称属性(nominal attribute)
- “标称”意味着与“名称相关”。标称属性的值是一些符号或事物的名称。每个值代表某种类别、编码或状态,因此标称属性又被看做是分类的(categorical),也被看作是枚举的(enumeration);
- 在标称属性上的数学运算往往不具有意义;某个属性值的众数(mode)是有意义的。
二元属性(binary attribute)
- 二元属性是一种标称属性,只有两个类别或状态: 0 0 0 或 1 1 1,其中 0 0 0 通常代表该属性不出现,而 1 1 1 代表出现;
- 二元属性又称布尔(bool)属性,两种状态对应于 t r u e true true 和 f a l s e false false;
- 二元属性的对称:两种状态具有同等价值并且携带相同权重(无偏好),例如性别属性:男或女;
- 二元属性的非对称:两种状态的结果不是同等重要,例如HIV病毒化验结果,阳性 1 1 1 相较于阴性 0 0 0 更为重要。
序数属性(ordinal attribute)
- 序数属性,其可能的值之间具有有意义的序或秩评定(ranking),但相继值之间的差是未知的;例如{小、中、大};
- 序数属性可以通过把数值属性的值域划分成有限个类别,对数值属性离散化得到。这些类别组织成排位。即,数值属性的值域可以映射到具有 M f M_f Mf 个状态的序数属性 f f f。例如,区间标度的属性 —— (摄氏温度) t e m p e r a t u r e temperature temperature 可以组织成如下状态: − 30 ∼ − 10 -30\sim -10 −30∼−10, − 10 ∼ 10 -10\sim10 −10∼10, 10 ∼ 30 10\sim30 10∼30,分别代表 c o l d t e m p e r a t u r e cold\ temperature cold temperature, m o d e r a t e t e m p e r a t u r e moderate\ temperature moderate temperature 和 w a r m t e m p e r a t u r e warm\ temperature warm temperature。令序数属性可能的状态数为 M M M。这些有序的状态定义了一个排位 1 , … , M f 1,\ \dots,\ M_f 1, …, Mf。
- 标称、二元和序数属性都是定性的。它们描述对象的特征,而不给出实际大小或数量。定性属性的值通常是代表类别的词。
数值属性(numeric attribute)
数值属性是定量的,是可以度量的量,用整数或实数值表示。分为区间标度的或比率标度的。
区间标度属性(interval-scaled)
- 用相等的单位尺度度量。区间属性的值有序,可以为正、负或 0 0 0。允许比较和定量评估值之间的差;
- 没有真正的“零点”,因此不能用比率的方式来讨论这些值。
比率标度属性(ratio-scaled)
- 具有固有零点的数值属性,因此可以说一个值是另一个的倍数。
- 这些值是有序的,因此可以计算值之间的差、均值、中位数和众数。
离散属性与连续属性
2.2 数据的基本统计描述
中心趋势度量:均值、中位数、和众数
均值(mean)
令
x
1
,
x
2
,
…
,
x
N
x_1,\ x_2,\ \dots,\ x_N
x1, x2, …, xN 为某数值属性
X
X
X 的
N
N
N 个观测值或观测,该值集合的均值为:
x
ˉ
=
∑
i
=
1
N
x
i
N
=
x
1
+
x
2
+
⋯
+
x
N
N
(2.1)
\bar x=\frac{\sum_{i=1}^N x_i}{N}=\frac{x_1+x_2+\ \cdots \ +x_N}{N} \tag{2.1}
xˉ=N∑i=1Nxi=Nx1+x2+ ⋯ +xN(2.1)
有时,对于
i
=
1
,
⋯
,
N
i=1,\ \cdots,\ N
i=1, ⋯, N,每个值
x
i
x_i
xi 可以与一个权重
w
i
w_i
wi 相关联。权重反应它们所依附的对应值的意义、重要性或出现的频率。在这种情况下,该值集合的加权算术均值或加权平均(weighted arithmetic mean)为:
x
ˉ
=
∑
i
=
1
N
w
i
x
i
∑
i
=
1
N
w
i
=
w
1
x
1
+
w
2
x
2
+
⋯
+
w
N
x
N
w
1
+
w
2
+
⋯
+
w
N
(2.2)
\bar x = \frac{\sum_{i=1}^N w_i x_i}{\sum_{i=1}^N w_i} =\frac{w_1 x_1+w_2 x_2+\ \cdots \ +w_Nx_N}{w_1+w_2+\ \cdots \ +w_N} \tag{2.2}
xˉ=∑i=1Nwi∑i=1Nwixi=w1+w2+ ⋯ +wNw1x1+w2x2+ ⋯ +wNxN(2.2)
均值对极端值(例如,离群点)很敏感。我们可以使用截尾均值(trimmed mean),截尾均值是丢弃了高、低极端值后的均值。
中位数(median)
中位数是有序数据的中间值。
当观测的数量很大时,中位数的计算开销很大。然而,对于数值属性,我们可以很容易计算中位数的近似值。假定数据根据它们的
x
i
x_i
xi 值划分成区间,并且已知每个区间的频率(即数据值的个数)。令包含中位数频率的区间为中位数区间。我们利用如下公式,用插值计算整个数据集的中位数的近似值:
m
e
d
i
a
n
=
L
1
+
(
N
2
−
(
∑
f
r
e
q
)
l
f
r
e
q
m
e
d
i
a
n
)
w
i
d
t
h
(2.3)
median = L_1+\left(\frac{\frac{N}{2}-(\sum freq)_l}{freq_{median}}\right)width \tag{2.3}
median=L1+(freqmedian2N−(∑freq)l)width(2.3)
其中,
L
1
L_1
L1 是中位数区间的下界,
N
N
N 是整个数据集中值的个数,
(
∑
f
r
e
q
)
l
(\sum freq)_l
(∑freq)l 是低于中位数区间的所有区间的频率和,
f
r
e
q
m
e
d
i
a
n
freq_{median}
freqmedian 是中位数区间的频率,
w
i
d
t
h
width
width 是中位数区间的宽度。
举例如下:
m e d i a n = 21 + ( 200 + 450 + 300 + 1500 + 700 + 44 2 − ( 200 + 450 + 300 ) 1500 ) × 29 = 33.508 ≈ 34. \begin{align} median&=21+\left(\frac{\frac{200+450+300+1500+700+44}{2}-(200+450+300)}{1500}\right)\times29\\ &=33.508\\ &\approx 34. \end{align} median=21+(15002200+450+300+1500+700+44−(200+450+300))×29=33.508≈34.
众数(mode)
- 集合中出现最频繁的值;
- 具有一个、两个、三个众数的数据集合分别称为单峰的(unimodal)、双峰的(bimodal)和三峰的(trimodal)。一般地,具有两个或更多众数的数据集是多峰的(multimodal);
- 若每个数据值仅出现一次,则没有众数。
对于适度倾斜(非对称)的单峰数值数据,有如下经验关系:
m
e
a
n
−
m
o
d
e
≈
3
×
(
m
e
a
n
−
m
e
d
i
a
n
)
(2.4)
mean-mode\approx3\times (mean-median) \tag{2.4}
mean−mode≈3×(mean−median)(2.4)
在具有完全对称的数据分布的单峰频率曲线中,均值、中位数和众数都属相同的中心值。而往往数据都是不对称的。它们可能是正倾斜的
m
o
d
e
<
m
e
d
i
a
n
<
m
e
a
n
mode<median<mean
mode<median<mean 或负倾斜的
m
e
a
n
<
m
e
d
i
a
n
<
m
o
d
e
mean<median<mode
mean<median<mode。
中列数(midrange)
- 是数据集的最大和最小值的平均值。
度量数据散布:极差、四分位数、方差、标准差和四分位数极差
极差、四分位数和四分位数极差
极差(range)
- 是最大值与最小值之差。
分位数(quantile)
- 是取自数据分布的每隔一定间隔上的点,把数据划分成基本上大小相等的连贯集合;
- 2 − 2- 2−分位数对应于中位数,将数据划分成高低两半; 4 − 4- 4−分位数是 3 3 3 个数据点,它们将数据分布划分成 4 4 4 个相等的部分,使得每部分表示数据分布的四分之一,通常称它们为四分位数(quartile);
- 第一个四分位数记作 Q 1 Q_1 Q1,是第 25 25 25 个百分位数,第三个四分位数记作 Q 3 Q_3 Q3,是第75个百分位数; 100 − 100- 100−分位数通常称作百分位数(percentile),它们把数据分布划分成 100 100 100 个大小相等的连贯集。
四分位数极差(IQR)
是
Q
3
Q_3
Q3 和
Q
1
Q_1
Q1 的距离,定义为:
I
Q
R
=
Q
3
−
Q
1
(2.5)
IQR=Q_3-Q_1 \tag{2.5}
IQR=Q3−Q1(2.5)
五数概括、盒图与离群点
离群点(outlier)
- 识别可疑的离群点的通常规则是,挑选落在第 3 3 3 个四分位数之上或第 1 1 1 个四分位数之下至少 1.5 × I Q R 1.5\times IQR 1.5×IQR 之处。
五数概括(five-number summary)
- 因为 Q 1 , Q 2 , Q 3 Q_1,\ Q_2,\ Q_3 Q1, Q2, Q3 不包含数据的端点信息,分布形状的更完整的概括可以通过提供最大、小值获得,这称作五数概括;
- 分布的五数概括由中位数 Q 2 Q_2 Q2、四分位数 Q 1 , Q 3 Q_1,\ Q_3 Q1, Q3、最大 M a x i m u m Maximum Maximum 和最小 M i n i m u m Minimum Minimum 观测值组成,按次序 M i n i m u m , Q 1 , M e d i a n , Q 3 , M a x i m u m Minimum,\ Q_1,\ Median,\ Q_3,\ Maximum Minimum, Q1, Median, Q3, Maximum 写出。
盒图(boxplot)
盒图能够体现五数概括:
- 盒的端点一般在四分位数上,使得盒的长度是四分位数极差 I Q R IQR IQR;
- 中位数用盒内的线标记;
- 盒外的两条线(胡须,whisker)延伸到最小、最大观测值;
- 离群点单独画出。
方差和标准差
数值属性
X
X
X 的
N
N
N 个观测值
x
1
,
x
2
,
⋯
,
x
N
x_1,\ x_2,\ \cdots,\ x_N
x1, x2, ⋯, xN 的方差(variance)是:
σ
2
=
1
N
∑
i
=
1
N
(
x
i
−
x
ˉ
)
2
=
(
1
N
∑
i
=
1
n
x
i
2
)
2
−
x
ˉ
2
(2.6)
\sigma^2=\frac{1}{N}\sum_{i=1}^N(x_i-\bar x)^2=\left(\frac{1}{N}\sum_{i=1}^nx_i^2\right)^2-\bar x^2 \tag{2.6}
σ2=N1i=1∑N(xi−xˉ)2=(N1i=1∑nxi2)2−xˉ2(2.6)
其中,
x
ˉ
\bar x
xˉ 是观测的均值。观测值的标准差(standard deviation)
σ
\sigma
σ 是方差
σ
2
\sigma^2
σ2 的平方根。
作为发散性的度量,标准差 σ \sigma σ 的性质是:
- σ \sigma σ 度量关于均值的发散,仅当选择均值作为中心度量是使用;
- 仅当不存在发散时(所有观测值都相同), σ = 0 \sigma=0 σ=0;否则, σ > 0 \sigma>0 σ>0。
数据的基本统计描述的图形显示
分位数图(quantile plot)
- 分位数图显示给定属性的所有数据,还绘制了分位数信息;
- 每个观测值 x i ( i = 1 , ⋯ , N ) x_i\ (i=1,\cdots,\ N) xi (i=1,⋯, N) 与一个百分数 f i f_i fi 配对,指出大约 f i × 100 % f_i\times 100\% fi×100% 的数据小于 x i x_i xi。百分比 0.25 0.25 0.25 对应于四分位数 Q 1 Q_1 Q1,百分比 0.50 0.50 0.50 对应于中位数 Q 2 Q_2 Q2,百分比 0.75 0.75 0.75 对应于 Q 3 Q_3 Q3;
令
f
i
=
i
−
0.5
N
(2.7)
f_i=\frac{i-0.5}{N} \tag{2.7}
fi=Ni−0.5(2.7)
- f i f_i fi 从 1 2 N \frac{1}{2N} 2N1 (稍大于 0 0 0)到 1 − 1 2 N 1-\frac{1}{2N} 1−2N1(稍小于 1 1 1),以相同的步长 1 N \frac{1}{N} N1 递增;
- 在分位数图中,画出 x i x_i xi 对应的 f i f_i fi,这样我们可以基于分位数比较不同的分布。
分位数-分位数图(quantile-quantile plot,q-q图)
- 对照另一个相关的单变量( Y Y Y)分布的分位数,绘制一个单变量( X X X)分布的分位数,即绘制 ( x i , y i ) (x_i,\ y_i) (xi, yi);
- 从q-q图中,我们可以观察到从一个分布到另一个分布是否有漂移;
直方图(histogram)
- 对于 X X X 的每个已知值或范围,画一个柱或竖直条,条的高度表示该值出现的频率(即计数);
- 也叫做频率直方图(frequency histogram)或条形图(bar chart)。
散点图(scatter plot)与数据相关
- 每个值对视作一个代数坐标对,作为一个点画在平面上;
- 确定两个数值变量之间看上去是否存在联系,是观察双变量数据的有用的方法。
- 散点图可以用来发现属性之间的相关性:
2.3 数据可视化
基于像素的可视化技术(pixel-oriented technique)
- 对于一个 m m m 维的数据集,在屏幕上创建 m m m 个窗口,每个窗口代表一个维度。将观测值的 m m m 个维值映射到这些窗口对应位置上的 m m m 个像素;
- 像素的颜色反映相对应的值,值越小,颜色越淡;
- 缺点:不利于理解多维空间的数据分布。
几何投影可视化技术(geometric projection visualization techniques)
几何投影技术帮助用户发现多维数据集的有趣投影;集合投影技术的首要挑战是设法解决如何在二维平面上显示可视化的高维空间。
对于维数超过 4 4 4 的数据集,散点图一般不太有效。散点图矩阵是散点图的一种有用扩充。对于 n n n 维数据集,散点图矩阵是二维散点图的 n × n n\times n n×n 网格。如图显示鸢尾花数据集,有 450 450 450 个样本,取自三种鸢尾花,该数据集有 5 5 5 个维:萼片长度和宽度、花瓣长度和宽度、种属。
随着维数增加,散点图矩阵变得不太有效。平行坐标可以处理更高维的数据。为了可视化 n n n 维数据点,需要绘制 n n n 个等距离、相互平行的轴,每维对应一个。数据记录用折线表示,每个轴在对应于相关维值的点上相交。这一技术的主要局限是它不能有效地显示具有很多记录的数据集——即便是对于数千个记录的数据集,视觉上的簇和重叠也常常降低可视化的可读性,使得很难发现模式。
基于图符的可视化技术(icon-based visualization techniques)
- 切尔诺夫脸(Chernoff faces)
- 人物线条画(stick figure)
层次可视化技术(hierarchical visualization techniques)
前面所讨论的可视化技术都关注同时可视化多个维。然而,对于大型高维数据集,很难同时对所有维可视化。层次可视化技术把所有维划分成子集(即子空间),这些子空间按层次可视化。
- 世界中的世界(Worlds-within-Worlds, n-Vision)
- 树图(tree-map)
可视化复杂对象和关系
早期,可视化技术主要用于数值数据。最近,越来越多的非数值数据,如文本和社交网络。
- 标签云(tag cloud)
- 可视化复杂关系
2.4 度量数据的相似性和相异性
-
相似性(similarity)
两个对象相似程度的数量表示,数值越高表示相似度越大,通常取值范围 [ 0 , 1 ] [0,1] [0,1]。
-
相异性(dissimilarity)
两个对象不相似程度的数量表示,数值越低表明相似性越大,通常取值范围 [ 0 , 1 ] o r [ 0 , + ∞ ] [0,1]\ or\ [0,+\infty] [0,1] or [0,+∞]。
-
邻近性(proximity)
相似性和相异性都称作邻近性。
数据矩阵与相异性矩阵
假设我们有 n n n 个对象(如人、商品或课程),被 p p p 个属性(又称维或特征,如年龄、身高)刻画。这些对象是 𝑥 1 = ( 𝑥 11 , 𝑥 12 , ⋯ , 𝑥 1 𝑝 ) , 𝑥 2 = ( 𝑥 21 , 𝑥 22 , ⋯ , 𝑥 2 𝑝 ) 𝑥_1=(𝑥_{11},\ 𝑥_{12},\ \cdots,\ 𝑥_{1𝑝} ),\ 𝑥_2=(𝑥_{21},\ 𝑥_{22},\ \cdots,\ 𝑥_{2𝑝}) x1=(x11, x12, ⋯, x1p), x2=(x21, x22, ⋯, x2p) 等,其中 x i j x_{ij} xij 是对象 x i x_i xi 的第 j j j 个属性的值。
通常,主要的基于内存的聚类和最近邻算法都在如下两种数据结构上运行:
数据矩阵(data matrix)
又称对象-属性结构:这种数据结构用关系表的形式或
n
×
p
(
n
个对象
×
p
个属性
)
n\times p(n个对象\times p个属性)
n×p(n个对象×p个属性) 矩阵存放
n
n
n 个数据对象:
[
x
11
⋯
x
1
f
⋯
x
1
p
⋯
⋯
⋯
⋯
⋯
x
i
1
⋯
x
i
f
⋯
x
i
p
⋯
⋯
⋯
⋯
⋯
x
n
1
⋯
x
n
f
⋯
x
n
p
]
(2.8)
\begin{bmatrix} x_{11}&\cdots&x_{1f}&\cdots&x_{1p}\\ \cdots&\cdots&\cdots&\cdots&\cdots\\ x_{i1}&\cdots&x_{if}&\cdots&x_{ip}\\ \cdots&\cdots&\cdots&\cdots&\cdots\\ x_{n1}&\cdots&x_{nf}&\cdots&x_{np}\\ \end{bmatrix} \tag{2.8}
⎣
⎡x11⋯xi1⋯xn1⋯⋯⋯⋯⋯x1f⋯xif⋯xnf⋯⋯⋯⋯⋯x1p⋯xip⋯xnp⎦
⎤(2.8)
相异性矩阵(dissimilarity matrix)
又称对象-对象结构:存放
n
n
n 个对象两两之间的邻近度(proximity),通常用一个
n
×
n
n\times n
n×n 的矩阵表示:
[
0
d
(
2
,
1
)
0
d
(
3
,
1
)
d
(
3
,
2
)
0
⋮
⋮
⋮
d
(
n
,
1
)
d
(
n
,
2
)
⋯
⋯
0
]
(2.9)
\begin{bmatrix} 0\\ d(2,1)&0\\ d(3,1)&d(3,2)&0\\ \vdots&\vdots&\vdots\\ d(n,1)&d(n,2)&\cdots&\cdots&0 \end{bmatrix} \tag{2.9}
⎣
⎡0d(2,1)d(3,1)⋮d(n,1)0d(3,2)⋮d(n,2)0⋮⋯⋯0⎦
⎤(2.9)
- 其中, d ( i , j ) d(i,j) d(i,j) 是对象 i i i 和 对象 j j j 之间的相异性或“差别”的度量;
- 一般地, d ( i , j ) ≥ 0 d(i,j)\ge 0 d(i,j)≥0;对象 i i i 和 j j j 高度相似或“接近”时, d ( i , j ) → 0 d(i,j)\rightarrow 0 d(i,j)→0;而两者越不同,该值越大;
- d ( i , i ) = 0 d(i,i)=0 d(i,i)=0 表示一个对象与自己的差别是 0 0 0;
- d ( i , j ) = d ( j , i ) d(i,j)=d(j,i) d(i,j)=d(j,i);
相似性度量可以表示成相异性度量的函数。例如,对于标称数据:
s
i
m
(
i
,
j
)
=
1
−
d
(
i
,
j
)
(2.10)
sim(i,j)=1-d(i,j) \tag{2.10}
sim(i,j)=1−d(i,j)(2.10)
其中,
s
i
m
(
i
,
j
)
sim(i,j)
sim(i,j) 是对象
i
i
i 和 对象
j
j
j 之间的相似性。
- 数据矩阵有两种实体或“事物”组成,即行(代表对象)和列(代表属性)。因而,数据矩阵也叫二模(two-mode)矩阵;
- 相异性矩阵只包含一类实体,因此叫做单模(one-mode)矩阵。
标称属性的邻近性度量
设一个标称属性的状态数目是
M
M
M。两个对象
i
i
i 和
j
j
j 之间的相异性可以根据不匹配率来计算:
d
(
i
,
j
)
=
p
−
m
p
(2.11)
d(i,j)=\frac{p-m}{p} \tag{2.11}
d(i,j)=pp−m(2.11)
其中,
m
m
m 是匹配的数目(即
i
i
i 和
j
j
j 取值相同的状态的属性数),而
p
p
p 是刻画对象的属性总数。我们可以通过赋予
m
m
m 较大的权重,或者赋给有较多状态属性的匹配更大的权重来增加
m
m
m 的影响。
对象标识符 | t e s t − 1 test-1 test−1(标称的) | t e s t − 2 test-2 test−2(序数的) | t e s t − 3 test-3 test−3(数值的) |
---|---|---|---|
1 | A | 优秀 | 45 |
2 | B | 一般 | 22 |
3 | C | 好 | 64 |
4 | A | 优秀 | 28 |
因为只有一个标称属性 t e s t − 1 test-1 test−1,所以令 p = 1 p=1 p=1,使得当对象 i i i 和 j j j 匹配时, d ( i , j ) = 0 d(i,j)=0 d(i,j)=0;当对象不同时, d ( i , j ) = 1 d(i,j)=1 d(i,j)=1。于是我们得到相异性矩阵 [ 0 1 0 1 1 0 0 1 1 0 ] \begin{bmatrix}0\\1&0\\1&1&0\\0&1&1&0\end{bmatrix} ⎣ ⎡0110011010⎦ ⎤,由此我们可以看出除了对象 1 1 1 和 4 d ( 1 , 4 ) = d ( 4 , 1 ) = 0 4\ d(1,4)=d(4,1)=0 4 d(1,4)=d(4,1)=0,所有对象都互不相似。
或者,相似性可以用以下式计算:
s
i
m
(
i
,
j
)
=
1
−
d
(
i
,
j
)
=
m
p
(2.12)
sim(i,j)=1-d(i,j)=\frac{m}{p} \tag{2.12}
sim(i,j)=1−d(i,j)=pm(2.12)
二元属性的邻近性度量
一种方法涉及由给定的二元数据计算相异性矩阵。如果所有的二元都被看做具有相同的权重,则我们得到一个两行两列的列联表,其中 q q q 是对象 i i i 和 j j j 都取 1 1 1 的属性数, r r r 是在对象 i i i 中取 1 1 1、在对象 j j j 中取 0 0 0 的属性数, s s s 是在对象 i i i 中取 0 0 0、在对象 j j j 中取 1 1 1 的属性数, t t t 是对象 i i i 和 j j j 都取 0 0 0 的属性数。属性的总数是 p = q + r + s + t p=q+r+s+t p=q+r+s+t。
对于对称的二元属性,每个状态都同等重要。基于对称二元属性的相异性称作对称的二元相异性。如果对象
i
i
i 和
j
j
j 都用对称的二元属性刻画,则
i
i
i 和
j
j
j 的相异性为:
d
(
i
,
j
)
=
r
+
s
q
+
r
+
s
+
t
(2.13)
d(i,j)=\frac{r+s}{q+r+s+t} \tag{2.13}
d(i,j)=q+r+s+tr+s(2.13)
对于非对称的二元属性,每个状态不是同等重要(疾病的阳性
1
1
1 比阴性
0
0
0 要重要)。给定两个非对称的二元属性,两个都取
1
1
1 的情况(正匹配)比两个都取
0
0
0 的情况(负匹配)更有意义。基于非对称二元属性(也常认为是“一元的”,只有一种状态)的相异性称作非对称的二元相异性,其中负匹配数
t
t
t 是不重要的,在计算时忽略即可:
d
(
i
,
j
)
=
r
+
s
q
+
r
+
s
(2.14)
d(i,j)=\frac{r+s}{q+r+s} \tag{2.14}
d(i,j)=q+r+sr+s(2.14)
也可以用基于相似性来度量两个二元属性的差别。对象
i
i
i 和
j
j
j 之间的非对称二元相似性(对称二元相似性计算公式类似可得):
s
i
m
(
i
,
j
)
=
1
−
d
(
i
,
j
)
=
q
q
+
r
+
s
(2.15)
sim(i,j)=1-d(i,j)=\frac{q}{q+r+s} \tag{2.15}
sim(i,j)=1−d(i,j)=q+r+sq(2.15)
(
2.15
)
(2.15)
(2.15) 式的系数
s
i
m
(
i
,
j
)
sim(i,j)
sim(i,j) 称为 Jaccard 系数。
数值属性的相异性:闵可夫斯基距离
令
i
=
(
x
i
1
,
x
i
2
,
⋯
,
x
i
p
)
i=(x_{i1},\ x_{i2},\ \cdots,\ x_{ip})
i=(xi1, xi2, ⋯, xip) 和
j
=
(
x
j
1
,
x
j
2
,
⋯
,
x
j
p
)
j=(x_{j1},\ x_{j2},\ \cdots,\ x_{jp})
j=(xj1, xj2, ⋯, xjp) 是两个由
p
p
p 个属性值描述的对象,则对象
i
i
i 和
j
j
j 之间的欧几里得距离(Euclidean distance,欧氏距离、两点间距离、
L
2
L_2
L2 范数)定义如下:
d
(
i
,
j
)
=
(
x
i
1
−
x
j
1
)
2
+
(
x
i
2
−
x
j
2
)
2
+
⋯
+
(
x
i
p
−
x
j
p
)
2
(2.16)
d(i,j)=\sqrt{(x_{i1}-x_{j1})^2+(x_{i2}-x_{j2})^2+\cdots+(x_{ip}-x_{jp})^2} \tag{2.16}
d(i,j)=(xi1−xj1)2+(xi2−xj2)2+⋯+(xip−xjp)2(2.16)
曼哈顿距离(Manhattan distance,城市街区距离、
L
1
L_1
L1 范数)定义如下:
d
(
i
,
j
)
=
∣
x
i
1
−
x
j
1
∣
+
∣
x
i
2
−
x
j
2
∣
+
⋯
+
∣
x
i
p
−
x
j
p
∣
(2.17)
d(i,j)=|x_{i1}-x_{j1}|+|x_{i2}-x_{j2}|+\cdots+|x_{ip}-x_{jp}| \tag{2.17}
d(i,j)=∣xi1−xj1∣+∣xi2−xj2∣+⋯+∣xip−xjp∣(2.17)
欧氏距离和曼哈顿距离都满足如下数学性质:
- 非负性: d ( i , j ) ≥ 0 d(i,j)\ge 0 d(i,j)≥0,距离是一个非负的数值;
- 同一性: d ( i , i ) = 0 d(i,i)=0 d(i,i)=0,对象到自身的距离为 0 0 0;
- 对称性: d ( i , j ) = d ( j , i ) d(i,j)=d(j,i) d(i,j)=d(j,i),距离是一个对称函数;
- 三角不等式: d ( i , j ) ≤ d ( i , k ) + d ( k , j ) d(i,j)\le d(i,k)+d(k,j) d(i,j)≤d(i,k)+d(k,j),从对象 i i i 到对象 j j j 的直接距离不会大于途径任何其他对象 k k k 的距离。
满足上述条件的测度叫做度量(metric),非负性被其他三个性质所蕴含。
闵可夫斯基距离(Minkowski distance,
L
p
L_p
Lp 范数 norm)是欧氏距离和曼哈顿距离的推广,定义如下:
d
(
i
,
j
)
=
∣
x
i
1
−
x
j
1
∣
h
+
∣
x
i
2
−
x
j
2
∣
h
+
⋯
+
∣
x
i
p
−
x
j
p
∣
h
h
(2.18)
d(i,j)=\sqrt[h]{{|x_{i1}-x_{j1}|}^h+{|x_{i2}-x_{j2}|}^h+\cdots+{|x_{ip}-x_{jp}|}^h} \tag{2.18}
d(i,j)=h∣xi1−xj1∣h+∣xi2−xj2∣h+⋯+∣xip−xjp∣h(2.18)
其中,
h
h
h 是实数,
h
≥
1
h\ge 1
h≥1。当
h
=
1
h=1
h=1 时,表示曼哈顿距离(
L
1
L_1
L1 范数);当
h
=
2
h=2
h=2 时,表示欧氏距离(
L
2
L_2
L2 范数)
上确界距离(
L
m
a
x
L_{max}
Lmax、
L
∞
L_{\infty}
L∞ 范数(又称一致范数(uniform norm))、切比雪夫(Chebyshev)距离)是
h
→
∞
h\rightarrow \infty
h→∞ 时闵可夫斯基距离的推广。为了计算它,我们需要找出属性
f
f
f 使得两个对象的差值最大。这个差是上确界距离,更形式化的定义为:
d
(
i
,
j
)
=
lim
h
→
∞
(
∑
f
=
1
p
∣
x
i
f
−
x
j
f
∣
h
)
1
h
=
max
f
p
∣
x
i
f
−
x
j
f
∣
(2.19)
d(i,j)= \lim_{h\rightarrow\infty}\left(\sum_{f=1}^p {|x_{if}-x_{jf}|}^h\right)^{\frac{1}{h}} =\max_f^p{|x_{if}-x_{jf}|} \tag{2.19}
d(i,j)=h→∞lim⎝
⎛f=1∑p∣xif−xjf∣h⎠
⎞h1=fmaxp∣xif−xjf∣(2.19)
如果对每个变量根据其重要性赋予一个权重,则加权的欧几里得距离可以用下式计算:
d
(
i
,
j
)
=
w
1
(
x
i
1
−
x
j
1
)
2
+
w
2
(
x
i
2
−
x
j
2
)
2
+
⋯
+
w
p
(
x
i
p
−
x
j
p
)
2
(2.20)
d(i,j)=\sqrt{w_1(x_{i1}-x_{j1})^2+w_2(x_{i2}-x_{j2})^2+\cdots+w_p(x_{ip}-x_{jp})^2} \tag{2.20}
d(i,j)=w1(xi1−xj1)2+w2(xi2−xj2)2+⋯+wp(xip−xjp)2(2.20)
加权也可以用于其他距离的度量。
序数属性的邻近性度量
在计算序数属性的相异性时,序数属性的处理与数值属性的非常类似。假设 f f f 是用于描述 n n n 个对象的一组序数属性之一。关于 f f f 的相异性计算涉及如下步骤:
- 第 i i i 个对象的 f f f 值为 x i f x_{if} xif,属性 f f f 有 M f M_f Mf 个有序状态,表示排位 1 , ⋯ , M f 1,\ \cdots,\ M_f 1, ⋯, Mf。用对应的排位 r i f ∈ { 1 , ⋯ , M f } r_{if}\in\{1,\ \cdots,\ M_f\} rif∈{1, ⋯, Mf} 取代 x i f x_{if} xif;
- 由于每个序数属性都可以有不同的状态数,所以通常需要将每个属性的值域映射到 [ 0.0 , 1.0 ] [0.0,\ 1.0] [0.0, 1.0] 上,以便每个属性都有相同的权重。通过用 z i f z_{if} zif 代替第 i i i 个对象的 r i f r_{if} rif 来实现数据规格化,其中
z i f = r i f − 1 M f − 1 (2.21) z_{if}=\frac{r_{if}-1}{M_f-1} \tag{2.21} zif=Mf−1rif−1(2.21)
- 相异性可以用上一届介绍的任意一种数值属性的距离度量计算,使用 z i f z_{if} zif 作为第 i i i 个对象的 f f f 值。
对象标识符 | t e s t − 1 test-1 test−1(标称的) | t e s t − 2 test-2 test−2(序数的) | t e s t − 3 test-3 test−3(数值的) |
---|---|---|---|
1 | A | 优秀 | 45 |
2 | B | 一般 | 22 |
3 | C | 好 | 64 |
4 | A | 优秀 | 28 |
- t e s t − 2 test-2 test−2 共有 3 3 3 种状态,因此 M f = 3 M_f=3 Mf=3,四个对象分别被赋值为 3 , 1 , 2 , 3 3,\ 1,\ 2,\ 3 3, 1, 2, 3;
- 利用公式 ( 2.21 ) (2.21) (2.21) 规格化,得到 z 1 = 3 − 1 3 − 1 = 1 , z 2 = 1 − 1 3 − 1 = 0 , z 3 = 2 − 1 3 − 1 = 0.5 , z 4 = 3 − 1 3 − 1 = 1 z_1=\frac{3-1}{3-1}=1,\ z_2=\frac{1-1}{3-1}=0,\ z_3=\frac{2-1}{3-1}=0.5,\ z_4=\frac{3-1}{3-1}=1 z1=3−13−1=1, z2=3−11−1=0, z3=3−12−1=0.5, z4=3−13−1=1;
- 利用欧氏距离(公式 ( 2.16 ) (2.16) (2.16))得到相异性矩阵(式 ( 2.9 ) (2.9) (2.9)): [ 0 1 0 0.5 0.5 0 0 1 0.5 0 ] \begin{bmatrix}0\\1&0\\0.5&0.5&0\\0&1&0.5&0\end{bmatrix} ⎣ ⎡010.5000.5100.50⎦ ⎤;
- 可以看出,对象 1 1 1 与对象 2 2 2、对象 2 2 2 与对象 4 4 4 最不相似。
混合类型属性的相异性
上述几节讨论了由相同类型属性(标称的、对称二元的、非对称二元的、数值的或序数的)描述的对象之间的相异性。然而,在许多实际的数据库中,对象是用混合类型的属性描述的。
一种方法是将每种类型的属性分成一组,对每种类型分别进行数据挖掘分析(例如,聚类分析)。如果这些分析得到兼容的结果,则这种方法是可行的。然而,在实际的应用中,每种属性类型分别分析不大可能产生兼容的结果。
一种更可取的方法是将所有属性类型一起处理,只做一次分析。将不同的属性组合在单个相异性矩阵中,把所有有意义的属性转换到共同区间 [ 0.0 , 1.0 ] [0.0,\ 1.0] [0.0, 1.0] 上。
假设数据集包含
p
p
p 个混合类型的属性,对象
i
i
i 和
j
j
j 之间的相异性
d
(
i
,
j
)
d(i,j)
d(i,j) 定义为:
d
(
i
,
j
)
=
∑
f
=
1
p
δ
i
j
(
f
)
d
i
j
(
f
)
∑
f
=
1
p
δ
i
j
(
f
)
(2.22)
d(i,j)=\frac{\sum_{f=1}^p\delta_{ij}^{(f)}d_{ij}^{(f)}}{\sum_{f=1}^p\delta_{ij}^{(f)}} \tag{2.22}
d(i,j)=∑f=1pδij(f)∑f=1pδij(f)dij(f)(2.22)
其中,① 当
x
i
f
x_{if}
xif 或
x
j
f
x_{jf}
xjf 缺失(即对象
i
i
i 或
j
j
j 没有属性
f
f
f 的度量值)或者 ② 当
x
i
f
=
x
j
f
=
0
x_{if}=x_{jf}=0
xif=xjf=0 且
f
f
f 是非对称的二元属性时,指示符
δ
i
j
(
f
)
=
0
\delta_{ij}^{(f)}=0
δij(f)=0;否则,指示符
δ
i
j
(
f
)
=
1
\delta_{ij}^{(f)}=1
δij(f)=1。
属性 f f f 对 i i i 和 j j j 之间的相异性的贡献 d i j ( f ) d_{ij}^{(f)} dij(f) 根据它的类型计算:
- f f f 是数值的, d i j ( f ) = ∣ x i f − x j f ∣ max h x h f − min h x h f d_{ij}^{(f)}=\frac{|x_{if}-x_{jf}|}{\max_h x_{hf}-\min_h x_{hf}} dij(f)=maxhxhf−minhxhf∣xif−xjf∣,其中 h h h 取遍属性 f f f 的所有非缺失对象;
- f f f 是标称或二元的,若 x i f = x j f x_{if}=x_{jf} xif=xjf,则 d i j ( f ) = 0 d_{ij}^{(f)}=0 dij(f)=0;否则, d i j ( f ) = 1 d_{ij}^{(f)}=1 dij(f)=1;
- f f f 是序数的,计算排位 r i f r_{if} rif 和 z i f = r i f − 1 M f − 1 z_{if}=\frac{r_{if}-1}{M_f-1} zif=Mf−1rif−1,并将 z i f z_{if} zif 作为数值属性对待。
对象标识符 | t e s t − 1 test-1 test−1(标称的) | t e s t − 2 test-2 test−2(序数的) | t e s t − 3 test-3 test−3(数值的) |
---|---|---|---|
1 | A | 优秀 | 45 |
2 | B | 一般 | 22 |
3 | C | 好 | 64 |
4 | A | 优秀 | 28 |
首先计算第 3 3 3 个属性 t e s t − 3 test-3 test−3 的相异性矩阵,即 d i j ( 3 ) d_{ij}^{(3)} dij(3)。 max h x h = 64 , min h x h = 22 , d 2 , 1 = ∣ 22 − 45 ∣ 64 − 22 ≈ 0.55 , … \max_h x_h=64,\ \min_h x_h=22,\ d_{2,1}=\frac{|22-45|}{64-22}\approx0.55,\ \dots maxhxh=64, minhxh=22, d2,1=64−22∣22−45∣≈0.55, …,由此可得相异性矩阵: [ 0 0.55 0 0.45 1 0 0.40 0.14 0.86 0 ] \begin{bmatrix}0\\0.55&0\\0.45&1&0\\0.40&0.14&0.86&0\end{bmatrix} ⎣ ⎡00.550.450.40010.1400.860⎦ ⎤。
属性
t
e
s
t
−
1
,
t
e
s
t
−
2
,
t
e
s
t
−
3
test-1,\ test-2,\ test-3
test−1, test−2, test−3 的相异性矩阵分别是:
[
0
1
0
1
1
0
0
1
1
0
]
,
[
0
1
0
0.5
0.5
0
0
1
0.5
0
]
,
[
0
0.55
0
0.45
1
0
0.40
0.14
0.86
0
]
\begin{bmatrix}0\\1&0\\1&1&0\\0&1&1&0\end{bmatrix},\ \begin{bmatrix}0\\1&0\\0.5&0.5&0\\0&1&0.5&0\end{bmatrix},\ \begin{bmatrix}0\\0.55&0\\0.45&1&0\\0.40&0.14&0.86&0\end{bmatrix}
⎣
⎡0110011010⎦
⎤, ⎣
⎡010.5000.5100.50⎦
⎤, ⎣
⎡00.550.450.40010.1400.860⎦
⎤。对于每个属性
f
,
(
f
=
1
,
2
,
3
)
f,\ (f=1,2,3)
f, (f=1,2,3) ,指示符
δ
i
j
(
f
)
=
1
\delta_{ij}^{(f)}=1
δij(f)=1。接下来,由公式
(
2.22
)
(2.22)
(2.22) 计算混合属性的相异性矩阵:
d
(
1
,
1
)
=
1
×
0
+
1
×
0
+
1
×
0
3
=
0
,
d
(
2
,
1
)
=
1
×
1
+
1
×
1
+
1
×
0.55
3
=
0.85
,
d
(
2
,
2
)
=
0
,
d
(
3
,
3
)
=
0
,
d
(
4
,
4
)
=
0
,
d
(
3
,
1
)
=
1
×
1
+
1
×
0.5
+
1
×
0.45
3
=
0.65
,
⋯
;
[
0
0.85
0
0.65
0.83
0
0.13
0.71
0.79
0
]
.
\begin{align} &d(1,1)=\frac{1\times0+1\times0+1\times0}{3}=0,\\ &d(2,1)=\frac{1\times1+1\times1+1\times0.55}{3}=0.85,\\ &d(2,2)=0,\ d(3,3)=0,\ d(4,4)=0,\\ &d(3,1)=\frac{1\times1+1\times0.5+1\times0.45}{3}=0.65,\\ &\cdots \end{align};\ \begin{bmatrix} 0\\ 0.85&0\\ 0.65&0.83&0\\ 0.13&0.71&0.79&0 \end{bmatrix}.
d(1,1)=31×0+1×0+1×0=0,d(2,1)=31×1+1×1+1×0.55=0.85,d(2,2)=0, d(3,3)=0, d(4,4)=0,d(3,1)=31×1+1×0.5+1×0.45=0.65,⋯; ⎣
⎡00.850.650.1300.830.7100.790⎦
⎤.
可以看出
d
(
4
,
1
)
=
0.13
d(4,1)=0.13
d(4,1)=0.13,对象
1
1
1 和
4
4
4 最相似;
d
(
2
,
1
)
=
0.85
d(2,1)=0.85
d(2,1)=0.85,对象
2
2
2 和
1
1
1 最不相似。
余弦相似性
- 词频向量通常很长而且是稀疏的(由许多 0 0 0 值),用余弦相似性来比较文档;
- 余弦值 0 0 0 代表两个向量呈 90 ° 90\degree 90° 夹角(正交),没有匹配;余弦值越接近 1 1 1,夹角越小,向量之间的匹配越大;
- 余弦相似性度量不满足定义的度量测度性质,,因此它是非度量测度(nonmetric measure)。
令
x
⃗
\vec x
x 和
y
⃗
\vec y
y 是两个待比较的向量,使用余弦度量作为相似性函数,我们有
s
i
m
(
x
⃗
,
y
⃗
)
=
cos
(
x
⃗
,
y
⃗
)
=
x
⃗
⋅
y
⃗
∣
∣
x
⃗
∣
∣
×
∣
∣
y
⃗
∣
∣
(2.23)
sim(\vec x,\vec y)=\cos(\vec x,\vec y)=\frac{\vec x \cdot \vec y}{{||\vec x||}\times{||\vec y||}} \tag{2.23}
sim(x,y)=cos(x,y)=∣∣x∣∣×∣∣y∣∣x⋅y(2.23)
其中,
∣
∣
x
⃗
∣
∣
||\vec x||
∣∣x∣∣ 是
x
⃗
=
(
x
1
,
x
2
,
⋯
,
x
p
)
\vec x=(x_1,\ x_2,\ \cdots,\ x_p)
x=(x1, x2, ⋯, xp) 的欧几里得范数,定义为
x
1
2
+
x
2
2
+
⋯
+
x
p
2
\sqrt{x_1^2+x_2^2+\cdots+x_p^2}
x12+x22+⋯+xp2,也就是向量的长度(模)。
令 x ⃗ \vec x x 和 y ⃗ \vec y y 是上表的前两个词频向量,即 x ⃗ = ( 5 , 0 , 3 , 0 , 2 , 0 , 0 , 2 , 0 , 0 ) , y ⃗ = ( 3 , 0 , 2 , 0 , 1 , 1 , 0 , 1 , 0 , 1 ) \vec x=(5,0,3,0,2,0,0,2,0,0),\ \vec y=(3,0,2,0,1,1,0,1,0,1) x=(5,0,3,0,2,0,0,2,0,0), y=(3,0,2,0,1,1,0,1,0,1),则 x ⃗ ⋅ y ⃗ = ∑ i = 1 10 x i y i = 25 , ∣ ∣ x ⃗ ∣ ∣ = 6.48 , ∣ ∣ y ⃗ ∣ ∣ = 4.12 ; s i m ( x ⃗ , y ⃗ ) = 0.94 \vec x \cdot \vec y=\sum_{i=1}^{10}x_iy_i=25,\ ||\vec x||=6.48,\ ||\vec y||=4.12;\ sim(\vec x,\vec y)=0.94 x⋅y=∑i=110xiyi=25, ∣∣x∣∣=6.48, ∣∣y∣∣=4.12; sim(x,y)=0.94。因此,使用余弦相似性度量比较这两个文档,它们将是高度相似的。