Taprint: Secure Text Input for Commodity Smart Wristbands
目录
摘要:
- 提出一个安全的文本密码输入系统,即Taprint。它在用户手背上扩展了虚拟编号,构建了基于指关节的“地标”,当用户敲击指关节时,具有独特的振动特性。
- Taprint使用敲击手背产生的振动作为生物识别来验证用户,同时也可区分敲击位置。Taprint在腕带中重新使用惯性测量单元,“超频”其采样率以推断细粒度的特征,并进一步refines the futures以提高唯一性和可靠性。
- 128名用户的广泛实验证明了Taprint实现了高精度(96%)的不同位置识别,也可以在极低的错误率(2.4%)下验证用户。
1 介绍
-
Taprint背后的主要前提是用户在关节上的敲击代表了一个一致的特征,可以由腕带的惯性测量单元(IMU)捕捉。我们通过一个模型调查此属性,这考虑了hand biometry和finger tapping behavior。我们进一步通过广泛的实验验证了the feature is unique and diverse across tapping positions。
-
要使Taprint可靠并且可用,我们需要解决几个关键挑战:
- 首先,IMU可能受到胳膊的运动和其他普通活动的影响,这些活动损坏了敲击行为产生的振动信号的特征。
- 其次,不像来自modulated acoustic signals的active vibrations,敲击信号是被动的和未调制的,由各种频率组成,这使得模式匹配更具有挑战性。
- 第三,hand biometry和tapping behavior对于相同用户在不同时间段也有可能不同。
-
为了应对这些挑战,有以下方法:
- 首先,去除用户活动引起的噪声。
- 其次,提出了一种细粒度的特征提取机制,以增强来自不同点击位置的振动特征的唯一性,并保持相同位置处振动特征的一致性。
- 再者,本文设计了一种density-based one-class classifier,叫做DenID,以区分different tapping vibration by different users。
- 最后,设计了一种校准方案,包括实时手动校准和多阈值自校准,从而适应敲击行为的变化和real time feature update when error occours。
2 ON-BODY TAPPING的振动模型
通常情况下,复杂振动系统(如人体)的数学模型是难以处理的。为了简单起见,我们首先构建如图2所示的a signle degree-of-freedom model(单自由度模型)来说明基本的机制。在该模型中,质量单元由质量为
m
m
m的等质量刚体表示,弹簧单元定义为质量可忽略且常数为
k
k
k的弹簧,阻尼单元由阻尼系数为
c
c
c的阻尼器表示。当外力作用于刚体时,会发生垂直位移。根据牛顿第二定律,我们有,
F
(
t
)
=
m
a
(
t
)
+
k
x
(
t
)
+
c
v
(
t
)
F(t)=m a(t)+k x(t)+c v(t)
F(t)=ma(t)+kx(t)+cv(t)
其中,
F
(
t
)
F(t)
F(t)是外力,
v
(
t
)
v(t)
v(t)是速度,
x
(
t
)
x(t)
x(t)是垂直位移,
c
c
c是阻尼系数,
k
k
k是弹簧常数,
m
m
m是质量。上述公式可进一步解释为,
F
(
t
)
=
m
d
2
x
(
t
)
d
t
2
+
k
x
(
t
)
+
c
d
x
(
t
)
d
t
F(t)=m \frac{d^{2} x(t)}{d t^{2}}+k x(t)+c \frac{d x(t)}{d t}
F(t)=mdt2d2x(t)+kx(t)+cdtdx(t)
手指敲击操作过程中的振动可以分为两个阶段。在第一阶段,手指在几秒钟内与刚体发生瞬时接触,这被认为是恒定力
F
(
0
)
F(0)
F(0)的a forced vibration。After the disturbance of the initial transience(在初始瞬态的扰动之后),在第二阶段,手指与刚体之间的接触消失,使系统自行振动,这称为自由振动。In the forced vibration phase,通过对上式应用傅里叶变换,我们有:
F
(
0
)
j
w
(
1
−
e
−
j
w
Δ
t
)
=
−
w
2
m
X
(
w
)
+
k
X
(
w
)
+
j
w
c
X
(
w
)
\frac{F(0)}{j w}\left(1-e^{-j w \Delta t}\right)=-w^{2} m X(w)+k X(w)+j w c X(w)
jwF(0)(1−e−jwΔt)=−w2mX(w)+kX(w)+jwcX(w)
那就是,
X
(
w
)
=
1
−
e
−
j
w
Δ
t
−
j
m
F
(
0
)
w
3
−
c
F
(
0
)
w
2
+
j
k
F
(
0
)
w
X(w)=\frac{1-e^{-j w \Delta t}}{-\frac{j m}{F(0)} w^{3}-\frac{c}{F(0)} w^{2}+\frac{j k}{F(0)} w}
X(w)=−F(0)jmw3−F(0)cw2+F(0)jkw1−e−jwΔt
其中,
X
(
w
)
X(w)
X(w)是垂直振动信号的频谱,
w
w
w是频率。然后,我们研究了在水平方向上的振动。在振动信号从敲击位置到传感器的水平传播的过程中,振动存在衰减的问题,相应的模型可以说明如下:
y
(
t
)
=
x
(
t
)
e
−
α
d
y(t)=x(t) e^{-\alpha d}
y(t)=x(t)e−αd
其中
y
(
t
)
y(t)
y(t)是传播到传感器那里后的垂直位移,
x
(
t
)
x(t)
x(t)是手指敲击时的垂直位移,
d
d
d是从手指敲击手背的那一点到加速度传感器这段传播的距离,
α
\alpha
α是衰减系数。通过对上式两边进行傅里叶变换,我们有,
Y
(
w
)
=
X
(
w
)
e
−
α
d
Y(w)=X(w) e^{-\alpha d}
Y(w)=X(w)e−αd
请注意,
α
\alpha
α与传播介质有关。波在体内的传播本质上是分散的,这意味着不同的频率在不同的速度下以不同的衰减系数传播。粗略地说,当振动信号在硬的刚性物体传播时,它的衰减很小,而通过软组织的衰减很大。因此,在手背不同位置产生的振动波导致不同的
α
\alpha
α和
d
d
d的值,因此使得振动信号在不同的位置上很独特。通过将
X
(
w
)
X(w)
X(w)的公式带入到
Y
(
w
)
Y(w)
Y(w)的公式,我们可以得到:
Y
(
w
)
=
(
1
−
e
−
j
w
Δ
t
)
e
−
α
d
−
j
m
F
(
0
)
w
3
−
c
F
(
0
)
w
2
+
j
k
F
(
0
)
w
Y(w)=\frac{\left(1-e^{-j w \Delta t}\right) e^{-\alpha d}}{-\frac{j m}{F(0)} w^{3}-\frac{c}{F(0)} w^{2}+\frac{j k}{F(0)} w}
Y(w)=−F(0)jmw3−F(0)cw2+F(0)jkw(1−e−jwΔt)e−αd
对于人体的相同位置,
m
m
m、
c
c
c和
k
k
k是稳定的,属于同一生物特征。此外,作为用户敲击的习惯,
F
(
0
)
F(0)
F(0)和
Δ
t
\Delta{t}
Δt具有一定稳定性,然而,我们知道攻击者可以任意调整
F
(
0
)
F(0)
F(0)和
Δ
t
\Delta{t}
Δt。在上述公式中,该分子是
α
\alpha
α和
d
d
d的指数函数,分母是
m
F
0
\frac{m}{F 0}
F0m,
c
F
0
\frac{c}{F 0}
F0c和
k
F
0
\frac{k}{F 0}
F0k。
请注意, w w w是一个向量值而不是一个标量值,对于 w w w的所有频率点,除非某一位置的敲击振动信号的四个参数( m F 0 \frac{m}{F 0} F0m, c F 0 \frac{c}{F 0} F0c、 k F 0 \frac{k}{F 0} F0k和 Δ t \Delta{t} Δt)同时等于另一位置的振动信号的参数,要不然两个位置的频谱 X ( w ) X(w) X(w)不能相同。其中, m m m、 c c c和 k k k在因人而异。因此,可以唯一地识别不同人员在固定位置上的敲击,从而用于身份验证。
3 可行性研究
在这一部分,我们进行实验来重点验证敲击特征的独特性及其在不同位置/用户之间的多样性。
3.1 振动信号的唯一性
在该实验中,我们通过使用一个电机在两个用户的左手的手背的相同位置振动两次来控制变量 F t F_{t} Ft、 Δ t \Delta t Δt和 d d d,以研究信号在时域中的分布。我们绘制了图3(a)中的振动信号读数,这些振动信号来自商品智能手表中加速度计的z轴。我们可以观察到,波形在同一人中是一致的,在不同人之间是不同的。
我们重复这个实验,但是这次用用户的手指代替马达。==从图3(b)中,我们可以观察到,对于同一用户(S1),两个tapping signals的轮廓在时域和频域上彼此匹配得很好,这表明同一人的 m m m、 c c c和 k k k的一致性。==相反,在两个用户之间有很大的不同(图3©),这验证了使用 m m m、 c c c和 k k k的值来区分合法用户和攻击者的可行性。
3.2 不同手指的振动
这里的一个自然的问题是:产生这样的区别是来自手背还是手指?为了回答这个问题,我们让8名参与者分别用食指、中指和无名指轻敲左手14个指节30次。在图4(A)中,‘F’表示我们取食指产生的20个样本的平均值作为基准点。类似地,‘M’和‘R’分别表示中指和无名指,我们计算每个基准点与其他样本之间的平均欧几里得距离。总体而言,我们有三个观察结果:(1)大多数授权样本的欧几里得距离小于未授权的欧几里得距离。(2)不同手指的欧几里得距离大致相同。(3)部分授权样本与未授权样本混合,这可能是由于敲击力度的变化造成的。总之,不同的信号主要由与 m m m, c c c和 k k k的值产生,而不是由敲击手指本身产生。
3.3 不同强度的振动
我们现在有意使用不同的攻击力研究信号的变化。我们让8名受试者分别用重力和轻力轻敲手的12指节30次。在图4(b)中,‘H’是指我们取重力产生的20个样本的平均值作为基准点。同样,‘G’表示柔和的力。我们观察到,不同攻击力量的授权样本可能会与未经授权的样本混合。因此,攻击力是需要解决的干扰因素,我们将设计一个校准方案来应对这一挑战(第7节)。
3.4 不同位置的振动
在本实验中,我们研究了攻击位置改变时的情况。具体地说,我们要求一名参与者轻拍手背上的14个指节,每个指节轻拍30次。然后,以20个采样点的平均值为基准点,计算每个基准点与其他样本之间的平均欧几里得距离。结果(图4©)表明,除了4个异常值外,同一位置样本的欧几里得距离一般都小于其他位置样本的欧几里得距离。我们推测,有些异常值是由于初始攻击力的不稳定性造成的。然而,很明显 y ( t ) y(t) y(t)的值受到从攻击位置到传感器的距离变化的影响。这样的多样性使得Taprint能够区分出攻击位置,从而创建了一个小的密码盘。
4 Taprint概述
4.1 系统概述
Taprint由三个主要组件组成,具有以下功能。
-
**敲击振动检测。**Taprint首先使用基于能量的阈值对信号进行分割,然后使用基于广义互相关(GCC)的算法来对齐分段。然后,Taprint消除身体运动引起的噪声。最后,采用Z-Score归一化方法减小攻击力的变化。
-
**细粒度振动识别。**Taprint使用细粒度特征来区分不同用户不同指节上的不同敲击振动。我们设计了两种加权特征,分别用于数字输入(文本输入和密码输入)和单键输入进行身份验证。考虑到这些features,我们进一步定制了the nearest neighbor method和a density-based on classifier来识别输入。
-
**更新和校准。**振动特征可能会因用户的敲击习惯和敲击位置的变化而改变。因此,Taprint集成了简单的实时手动校准和多阈值自校准机制来适应这些变化。
图5描述了Taprint的工作流程。在初始训练阶段,进行了一系列的预处理,包括分割、去噪、归一化和对齐。然后,提取细粒度特征以build the training vibration profile。当检测到新的敲击振动时,数字输入功能(文本输入和密码输入)提取按他们的相关性加权的特征,然后通过最近邻分类器对其进行分类。除了使用不同的特征处理算法外,单击身份验证的工作方式与此类似。
4.2 威胁模型
我们考虑以下可能威胁到提议的身份验证功能的攻击。
- **Zero-effort Attack。**攻击者在不知道PIN码或者单次敲击位置的情况下,通过随机敲击,试图找到一个潜在的敲击位置,该位置可以生成类似的振动信号来绕过身份验证。
- **Credential-aware Attack。**攻击者获得合法用户的凭据,包括PIN码和单次敲击的位置。然而,攻击者不知道合法用户的行为,如敲击力量、敲击角度、手势、接触时间。
- **Observer Attack。**攻击者事先知道合法用户的PIN码和单次敲击的位置,并试图通过基于合法用户肩部抖动或者摄像头的记录的秘密观察来模仿合法用户的行为。
- **Intimate Attack。**攻击者可能与合法用户关系密切,获取合法用户的PIN码和单击屏幕的位置的信息。攻击者试图在合法用户不知道的情况下(例如,在睡眠期间)轻拍合法用户的手来通过身份验证。
5 敲击振动信号的检测
5.1 分割和去噪
为了检测是否发生敲击,Taprint使用一种基于能量的方法,将原始振动信号分割成小窗口。对于每个段,计算信号能量并将其发送到敲击检测模块。就截止点而言,我们将其设置为起始点之后的0.1s,因为击键敲击信号的持续时间通常在该值的附近。
行走等人体活动经常会引起身体振动,需要对其进行去噪处理。基于短时傅里叶分析,我们观察到人体运动引起的振动大多小于10Hz,因此一个20Hz的Butterworth高通滤波器就足以去除捕获的振动信号中的噪声。通过该滤波器,还可去除重力等直流分量。
在登录认证过程中,用户需要先打开触摸屏。当用户在笔记本电脑键盘上打字或洗碗时,他/她可能无法打开智能手表的触摸屏。然而,在文本输入过程中,在手背上打字时的一些动作(例如,拿起物体或抓手)可能会触发误报。示例如图6所示,它绘制了在5中类型的用户活动期间检测到的振动信号。请注意,这些振动信号均由20Hz的Butterworth高通滤波器过滤。在这个图中,我们观察到手指敲击(即使是轻微敲击)的信噪比(SNR)明显高于其他动作。因此,当信号信噪比超过某一阈值(默认为20dB)时,我们可以简单地分割出a tapping-induced vibration signal。
5.2 标准化和对齐
Taprint使用Z-Score归一化技术对两个信号的大小进行归一化,该归一化技术基于原始数据的平均值和标准差进行标准化。处理后的数据符合标准正态分布,即平均值为0,标准差为1。
一旦检测到tapping事件,Taprint只能粗略地估计出敲击诱发振动信号的起点。因此,Taprint通过使用GCC算法找出时移来对准信号。请注意,Taprint不使用Dynamic Time Warping(DTW)算法,因为它删除了对信号的pitch至关重要的时间信息,并且需要更加集中的计算。
6 细粒度的振动识别
在本节中,我们将描述Taprint如何基于所提出的位置敏感点和位置相关点来提取细粒度特征。我们不采取更复杂的机器学习算法来自动提取特征的原因将在第6.2节讨论。
6.1 提取加权特征
由于振动信号的分散,不同位置的敲击引起的振动可能具有不同的频谱。因此,我们选择amplitude spectral density (ASD)振幅谱密度作为基本特征。对于给定的振动信号段,可以简单地通过FFT(快速傅里叶变换)得到ASD。然而,不同的频率箱可能对特征的唯一性有不同的贡献。==首先,如果某些频率点在不同的攻击位置的振动幅值存在显著差异,则这些频率点可以更好地区分振动位置。==我们把这些频率点称为position-sensitive frequency points。==另一方面,如果某一频率点在同一位置的幅值差异较小,这些频率点更能描述该位置的特征。==我们把这些频率称为与位置相关的频率点。通过在其他频率点上对位置敏感的频率点或位置相关的频率点进行加权,可以放大振动信号的特性。我们将得到的特征点称为加权特征weighted features。
**键盘输入。**在需要区分12个敲击位置的键盘输入场景中,位置敏感的频率点和位置相关的频率点共同提供特征信息。我们使用Fisher score technique来识别位置敏感频率点和位置相关频率点。The Fisher Score is designed as the weighted for features and is given by:
F
r
=
∑
i
=
1
l
n
i
(
u
i
−
u
)
2
∑
i
=
1
l
n
i
δ
i
2
F_{r}=\frac{\sum_{i=1}^{l} n_{i}\left(u_{i}-u\right)^{2}}{\sum_{i=1}^{l} n_{i} \delta_{i}^{2}}
Fr=∑i=1lniδi2∑i=1lni(ui−u)2
其中,
r
r
r为每个维度的特征数,
n
i
n_{i}
ni表示第i类的样本数,
u
i
u_{i}
ui和
δ
i
2
\delta_{i}^{2}
δi2表示第i类样本的均值和方差。此外,
u
u
u表示与维度相关的所有类的平均值,
l
l
l表示类的总数。
**单一利用身份验证。**在单点锁定认证场景下,系统只需要识别振动是否由某个固定位置产生。因此,位置相关的频率点表现出更好的特性。我们可以根据以下关系为每个频率点设置权重。
w
=
max
(
E
(
X
i
)
)
−
E
(
X
i
)
∑
max
(
E
(
X
i
)
)
−
E
(
X
i
)
w=\frac{\max \left(E\left(X_{i}\right)\right)-E\left(X_{i}\right)}{\sum \max \left(E\left(X_{i}\right)\right)-E\left(X_{i}\right)}
w=∑max(E(Xi))−E(Xi)max(E(Xi))−E(Xi)
其中
E
(
.
)
E(.)
E(.)是方差。在这种权重设计中,具有小方差的频率点表示位置相关性,因此赋予较大的权重。另一方面,高方差的频率点被认为是弱描述特征,并乘以较小的权值。
直观地说,原始振动信号表现出不同位置地敲击操作的时域特征。如图3所示,原始信号的敲击在两个位置之间是不同的。因此,在进行加权运算之前,我们利用原始振动数据的ASD融合特征。
6.2 识别敲击位置
**键盘输入。**在提取细粒度特征后,Taprint运行一种基于最近邻的模式匹配算法,将提取的特征与训练集的特征进行比较。将距离最小的训练数据声明为关键位置并显示在用户界面上。在最简单的形式中,我们使用曼哈顿距离作为比较的度量。
请注意,Taprint不能使用复杂的模式识别方法,如神经网络或支持向量机。因为这些算法需要大量的训练操作来构建分类模型,并经常产生巨大的计算成本,从而阻碍了实时的点击识别。此外,Taprint需要在用户点击时更新训练集。这种实时更新对于最近邻算法来说很简单,但对于计算密集型机器学习算法来说却不可行。
**单一敲击身份验证。**要实现一次性验证只需点击一次,最简单的形式是绘制样本分布的边界。如果测试样本超出了边缘,则视为未授权样品。不幸的是,我们对收集到的数据的检查表明,来自同一位置的数据大部分是不规则分布,而不是圆形分布,这导致了绘制样本分布的边缘的困难。有趣的是,我们观察到同一用户的同一位置的样本集的密度是稳定的,这意味着样本之间的两两距离是相似的。在此基础上,我们提出了基于密度的单类分类器DenID。未经授权的测试样本远离授权样本集。因此,如果一个未经授权的测试样本被添加到授权样本集中,样本集的密度就会降低。更具体地说,一个样本集的密度可以用下面的关系表示:
D
1
=
∑
i
=
1
N
−
1
∑
j
=
i
+
1
N
d
i
j
C
N
2
D_{1}=\frac{\sum_{i=1}^{N-1} \sum_{j=i+1}^{N} d_{i j}}{C_{N}^{2}}
D1=CN2∑i=1N−1∑j=i+1Ndij
其中
d
i
j
d_{ij}
dij是第
i
i
i和第
j
j
j个样本之间的距离。
N
N
N为训练集中的样本个数。当将一个测试样本添加到样本集时,新样本集的密度为,
D
2
=
∑
i
=
1
N
−
1
∑
j
=
i
+
1
N
d
i
j
+
∑
i
=
1
N
−
1
d
i
(
N
+
1
)
C
N
2
+
N
,
D_{2}=\frac{\sum_{i=1}^{N-1} \sum_{j=i+1}^{N} d_{i j}+\sum_{i=1}^{N-1} d_{i(N+1)}}{C_{N}^{2}+N},
D2=CN2+N∑i=1N−1∑j=i+1Ndij+∑i=1N−1di(N+1),
其中
N
+
1
N+1
N+1是测试样本的索引。最后,如果
D
1
>
D
2
+
t
h
D_1>D_2+th
D1>D2+th,测试样本被认为是未经授权的。注意,这里的
t
h
th
th是一个阈值。阈值越大,错误接受率越高;阈值越小,错误的拒绝率越高。
7 校准
我们设计了一个校准机制,以确保对敲击行为变化、位置偏差和特征随时间变化的健壮性。
7.1 实时手动校准
振动特征可能会因用户的敲击习惯和敲击位置的变化而改变。为了应对这一挑战,我们为键盘用例引入了一种实时手动校准机制。为了保持错误识别,Taprint在用户打字时在触摸屏上显示前2个候选键。用户可以触摸选择显示在触摸屏上的候选键,并在出现错误键时将该键更新到训练集。由于采用了简单的最近邻匹配算法,Taprint能够随着时间的推移更新训练集,而不需要更新训练模型。
值得注意的是,我们不更新初始训练集,而是更新存储器中的复制训练集。这意味着一旦使用该系统,存储器中复制的训练集就会被清除。这种设计背后的几个动机。首先,如果随着时间的推移不断更新初始训练集,用户可能会不小心将错误关键字更新到了初始训练集中,从而污染初始训练集。其次,攻击者可能会将未经授权的样本插入训练集中。基于这些观察,当用户感觉初始训练集随着时间的推移不再工作并且需要一次性验证时,我们还利用训练集的重置机制。这类似于智能手机上指纹传感器的重置机制。
7.2 多阈值自校准
在单次认证的情况下,Taprint不能采用实时更新机制,因为攻击者可能会更新未经授权的样本并将其插入训练集。因此,它引导用户以不同的攻击力和目标位置的微小偏差将各种样本输入到初始训练集中。这再次受到了智能手机上指纹传感器校准的启发,这需要用户多次触摸手指中心,然后多次触摸周围的手指,这样系统就可以获得不同变体的训练样本。然而,由于不同的训练样本被分成不同的簇,它们具有不同的密度,这给DenID带来了很大的复杂性。例如,攻击力较大的集群密度较小,而攻击力较小的集群密度较高,如图8所示。因此,我们无法确定阈值来绘制多个群集的样本分布的边缘。因此,我们进一步提出了一种多阈值校准机制来绘制不同簇的多个边界。图9比较了单阈值和多阈值机制之间的样本的结果。请注意,我们将多维缩放(MDS)技术用于可视化目的,并降低了图8和图9中的维度。现在我们继续描述多阈值校准。
**粗聚类:**首先,我们需要找出两个样本之间距离的突变。这种对距离的突然变化是区分不同簇的第一个基本想法。更具体地说,我们首先在训练集
U
U
U中找到距离最近的两个样本,然后将它们添加到访问集
R
R
R中。为了找到下一个样本
P
i
P_{i}
Pi,我们设计了
P
i
=
arg
min
P
i
∈
C
u
R
D
i
R
P_{i}=\underset{P_{i} \in \mathcal{C}_{u} R}{\arg \min } D_{i R}
Pi=Pi∈CuRargminDiR
其中
D
i
R
D_{iR}
DiR是在样本
P
i
P_{i}
Pi和访问集
R
R
R之间的距离。我们规定:
D
i
R
=
mind
i
j
D_{i R}=\operatorname{mind}_{i j}
DiR=mindij
其中
d
i
j
d_{ij}
dij是样本
P
i
P_{i}
Pi和样本
P
j
P_{j}
Pj之间的距离,
P
i
∈
R
P_{i} \in R
Pi∈R,
P
j
∈
C
u
R
P_{j} \in \mathbb{C}_{u} R
Pj∈CuR。我们将
D
i
R
D_{iR}
DiR存储在数组
θ
\theta
θ中。通过检查所有样本,我们设置阈值以找到突变距离的位置。我们设定阈值为
μ
+
σ
\mu+\sigma
μ+σ。
μ
\mu
μ和
σ
\sigma
σ分别是数组
θ
\theta
θ的均值和方差。当两个样本之间的距离小于此值时,我们认为相应的样本属于同一群集。此外,如果距离阵列
D
D
D中的距离值小于之前的值,我们认为对应的样本在同一群集中。
**精细群集:**为了确定两个簇是否相似,我们使用密度的概念。当两个簇被合并并且密度几乎不变时,我们认为所得到的两个簇是相似的。具体地,在合并操作之前,集群 C 1 C1 C1的密度为 D 1 D1 D1,合并 C 1 C1 C1和 C 2 C2 C2后的新集群的密度为 D 2 D2 D2。当 d 2 / d 1 d2/d1 d2/d1小于某个阈值时,这两个簇被认为足够相似,可以合并。根据我们的经验,我们将门槛设为1.05。在合并两个簇时,规定样本数较少的簇与样本数较大的数合并。在合并过程中,一个群集可能与其他两个群集相似。在这种情况下,该群集优先合并到与该集群最相似的集群。