对于多个属性数据对象之间的相异度,对于数值型数据,通过欧几里得距离来计算,度量尺度不同时应先标准化。欧氏距离本质上是闵可夫斯基距离的L2范数,后者的公式如下所示:
dist
=
(
∑
k
=
1
n
∣
p
k
−
q
k
∣
r
)
1
r
\operatorname{dist}=\left(\sum_{k=1}^{n}\left|p_{k}-q_{k}\right|^{\boldsymbol{r}}\right)^{\frac{1}{r}}
dist=(k=1∑n∣pk−qk∣r)r1另外,常见的距离度量方式还有汉明距离(处理分类变量)、切比雪夫距离。此处不做描述。
而相似度的度量,首先是对于二元数据(仅仅包括0/1),通常使用简单匹配系数
S
M
C
SMC
SMC和
J
a
c
c
a
r
d
Jaccard
Jaccard系数。简单匹配系数是度量二元数据相似性的一种方法。它计算两个二元向量中相同值(0和1)的数量,并将其除以向量的总长度。其中a d分别表示两个向量中同时为1 0的位置数。
S
M
C
=
a
+
d
a
+
b
+
c
+
d
SMC = \frac{a+d}{a+b+c+d}
SMC=a+b+c+da+dJaccard系数主要用于度量集合之间的相似性。对于二元数据,我们可以将每个向量看作是一个集合,其中1的位置表示集合中的元素。给定两个二元向量A和B,a表示两个向量中同时为1的位置数,b表示A中为1而B中为0的位置数,c表示A中为0而B中为1的位置数。
J
a
c
c
a
r
d
=
a
a
+
b
+
c
Jaccard = \frac{a}{a+b+c}
Jaccard=a+b+ca这两种相似度度量方法都可以用于度量二元数据之间的相似性,但具体选择哪种方法取决于应用场景。简单匹配系数考虑了两个向量中1和0的匹配情况,因此在需要考虑0值重要性的场景下更为合适。而Jaccard系数主要关注1值的匹配情况,在某些应用中,如文本挖掘,这可能更为合适。
而对于多属性数值型数据,常用的方法是余弦相似度(Cosine Similarity)。是一种常用的相似度度量方法,用于衡量两个向量之间的相似程度。它基于两个向量之间的夹角来计算相似性。
Cosine Similarity
=
A
⋅
B
∥
A
∥
∥
B
∥
=
∑
i
=
1
n
A
i
B
i
∑
i
=
1
n
A
i
2
∑
i
=
1
n
B
i
2
\text{Cosine Similarity} = \frac{\mathbf{A} \cdot \mathbf{B}}{\lVert\mathbf{A}\rVert \lVert\mathbf{B}\rVert} = \frac{\sum_{i=1}^{n} A_i B_i}{\sqrt{\sum_{i=1}^{n} A_i^2} \sqrt{\sum_{i=1}^{n} B_i^2}}
Cosine Similarity=∥A∥∥B∥A⋅B=∑i=1nAi2∑i=1nBi2∑i=1nAiBi其中,“A · B”表示A和B的点积(即两个向量对应元素相乘之和),
∣
∣
A
∣
∣
||A||
∣∣A∣∣和
∣
∣
B
∣
∣
||B||
∣∣B∣∣分别表示A和B的向量范数(即向量长度,用欧几里得范数计算)。余弦相似度的值范围在-1到1之间,其中1表示完全相似,0表示完全不相关,-1表示完全相反。在实际应用中,余弦相似度通常用于衡量文本相似性、协同过滤推荐系统和聚类等场景。
最小最大值标准化:已知属性的取值范围,将原取值区间
[
o
l
d
m
i
n
,
o
l
d
m
a
x
]
[old_ {min},old_ {max}]
[oldmin,oldmax]映射 到
[
n
e
w
m
i
n
,
n
e
w
m
a
x
]
[new_{min},new_{max}]
[newmin,newmax]。保留了原来数据中存在的关系。但若将来遇到超过目前属性
[
o
l
d
m
i
n
,
o
l
d
m
a
x
]
[old_{min},old_{max}]
[oldmin,oldmax]取值范围的数值,将会引起系统出错
v
′
=
v
−
min
A
max
A
−
min
A
(
n
e
w
m
a
x
−
A
−
n
e
w
m
i
n
−
A
)
+
n
e
w
m
i
n
−
A
v^{\prime}=\frac{v-\min _{A}}{\max _{A}-\min _{A}}\left(new_{max-A}-new_{min-A}\right)+new_{min-A}
v′=maxA−minAv−minA(newmax−A−newmin−A)+newmin−A
标准差标准化(z-score):根据属性A的均值和偏差来对A进行规格化,常用于属性最大值与最小值未知;或使用最大最小规格化方法时会出现异常数据的情况。
A
ˉ
\bar{A}
Aˉ为均值,
σ
A
\sigma_{A}
σA为标准差。
v
′
=
v
−
A
ˉ
σ
A
v^{\prime}=\frac{v-\bar{A}}{\sigma_{A}}
v′=σAv−Aˉ