1 简介
1.0 问题提出
当训练样本部分信息缺失,特别是样本数据的类别标记缺失的情况下,如何获取具有良好性能和泛化能力的学习器,及利用大量未标记的样本来辅助标记样本建立一个更好的学习器.
1.2 数学描述
给定一个来自某未知分布的样本集
S
=
D
l
⋃
D
u
S=D_l\bigcup D_u
S=Dl⋃Du,其中,
D
l
D_l
Dl是已标注的样本集:
D
l
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
…
,
(
x
i
,
i
∈
D
l
,
y
i
,
i
∈
D
l
)
}
D_l=\begin{Bmatrix}(x_1, y_1), (x_2, y_2), …, (x_{i,i\in D_l}, y_{i,i\in D_l})\end{Bmatrix}
Dl={(x1,y1),(x2,y2),…,(xi,i∈Dl,yi,i∈Dl)}
D
u
D_u
Du是未标注的样本集:
D
u
=
{
x
1
’
,
x
2
’
,
…
,
x
i
,
i
∈
D
u
’
}
D_u=\begin{Bmatrix}x_1^{’},x_2^{’}, …, x_{i,i\in D_u}^{’}\end{Bmatrix}
Du={x1’,x2’,…,xi,i∈Du’}
1.3 目的
在样本集 S = D l ⋃ D u S=D_l\bigcup D_u S=Dl⋃Du上寻找最优的学习器,即寻找函数 f : X ↦ Y f:X\mapsto Y f:X↦Y,可以准确的对样本 x x x预测器标记 y y y.该函数可能是参数化的:如最大似然法,也可能是非参数化的:如最邻近法,神经网络法,支持向量机法等;也可能是非数值的,如决策树分类等.
2 方法假设
2.1 聚类假设
- 核心:数据存在簇结构,同一簇的样本属于同一类别;
- 处在相同聚类中的样本有较大的可能具有相同的标记;
- 根据聚类假设,决策边界就应该尽量通过数据较稀疏的地带,从而避免把稠密聚类中的数据分到决策边界两侧;
- 在聚类假设下,大量未标记的样本作用就是帮助探明样本空间中数据分布的稠密和稀疏区域,从而指导学习算法对已有标记样本的学习到的决策边界进行调整,使其尽量通过数据分布稀疏的区域;
2.2 流形假设
- 核心:数据分布在一个流形结构上,邻近样本具有相似的输出值;
- 流形假设:处于一个很小的局部区域内的示例具有相似的性质,因此标记也应相似;
- 和聚类假设着眼于整体特性不同,流形假设主要考虑模型的局部特性,反映了决策函数的局部平滑性;
- 流形假设下,大量未标记的数据作用是让数据空间变得更加稠密,从而有助于更加准确地刻画局部区域的特性,使决策函数更好进行数据拟合;
3 半监督算法
3.1 自学习方法
- 核心
分类器递归拟合时,每次递归仅仅将满足设定置信度阈值(置信度搞得样本)纳入已标记样本中,参与递归拟合. - 算法
用已标记的样本训练得到一个初始分类器;
用初始分类器对未标记样本进行分类,将标记置信度高的未标记样本进行标记;
对所有样本进行重新训练,直到将所有未标记样本都标记为止;
- 最近邻自学习算法
(1) 用已标记的样本
D
l
D_l
Dl生成分类器
f
f
f;
(2) 选择
x
=
m
i
n
d
(
x
,
x
0
)
,
x
∈
D
u
,
x
0
∈
D
l
x=min d(x,x_0),x\in D_u, x_0\in D_l
x=mind(x,x0),x∈Du,x0∈Dl,选择离已标注样本最近的无标记样本;
(3) 用
f
f
f给
x
x
x确定一个类别
f
(
x
)
f(x)
f(x),并将
(
x
,
f
(
x
)
)
(x, f(x))
(x,f(x))加入
D
l
D_l
Dl中;
(4) 重复上述步骤,直到
D
u
D_u
Du为空集,其中
d
(
x
1
,
x
2
)
d(x_1, x_2)
d(x1,x2)为两个样本的欧式距离;
3.2 生成式方法
- 核心
以生成式模型为分类器,将未标记样本标记,属于每个类别的概率视为一组缺失参数,采用EM算法来进行标记估计和模型参数估计. - 方法
直接基于生成式模型的一类方法 - 假设
所有数据,无论是否标记,都是由一个潜在的模型生成的参数化概率密度估计;
样本由高斯混合模型生成,且每个类别对应一个高斯混合成分,则样本的概率密度为:
(1)
p
(
x
)
=
∑
i
=
1
k
α
i
p
(
x
∣
μ
i
,
∑
i
)
p(x)=\sum_{i=1}^{k}\alpha_i p(x\mid \mu_i, \sum_i)\tag{1}
p(x)=i=1∑kαip(x∣μi,i∑)(1)
其中,
i
i
i为样本类别,
k
k
k为标记类别数,
j
j
j为样本量,及高斯混合成分系数:
(2)
α
i
≥
0
,
∑
i
=
1
k
α
i
=
1
\alpha_i\geq 0,\sum_{i=1}^{k}\alpha_i=1\tag{2}
αi≥0,i=1∑kαi=1(2)
(3)
p
(
x
∣
μ
i
,
∑
i
)
=
1
(
2
π
n
2
)
∣
∑
i
∣
1
2
e
−
1
2
(
x
−
μ
i
)
T
∑
i
−
1
(
x
−
μ
i
)
p(x\mid \mu_i, \sum_i)=\frac{1}{(2\pi^{\frac{n}{2}})\mid \sum_i \mid^{\frac{1}{2}}}e^{-\frac{1}{2}(x-\mu_i)^T\sum_i^{-1}(x-\mu_i)}\tag{3}
p(x∣μi,i∑)=(2π2n)∣∑i∣211e−21(x−μi)T∑i−1(x−μi)(3)
令
f
(
x
)
f(x)
f(x)表示模型
f
f
f对样本
x
x
x的预测标记,
Θ
\Theta
Θ表示样本
x
x
x隶属的高斯混合成分,由最大后验概率知:
(4)
f
(
x
)
=
m
a
x
j
∈
y
p
(
y
=
j
∣
x
)
=
m
a
x
j
∈
y
∑
i
=
1
k
p
(
y
=
j
,
Θ
=
i
∣
x
)
=
m
a
x
j
∈
y
∑
i
=
1
k
p
(
y
=
j
,
Θ
=
i
,
x
)
p
(
x
)
=
m
a
x
j
∈
y
∑
i
=
1
k
p
(
y
=
j
∣
Θ
=
i
,
x
)
p
(
Θ
=
i
,
x
)
p
(
x
)
=
m
a
x
j
∈
y
∑
i
=
1
k
p
(
y
=
j
∣
Θ
=
i
,
x
)
p
(
Θ
=
i
∣
x
)
p
(
x
)
p
(
x
)
=
m
a
x
j
∈
y
∑
i
=
1
k
p
(
y
=
j
∣
Θ
=
i
,
x
)
p
(
Θ
=
i
∣
x
)
f(x)=max_{j\in y}p(y=j\mid x)\\ =max_{j\in y}\sum_{i=1}^{k}p(y=j,\Theta=i\mid x)\\ =max_{j\in y}\frac{\sum_{i=1}^{k}p(y=j,\Theta=i,x)}{p(x)}\\ =max_{j\in y}\frac{\sum_{i=1}^{k}p(y=j\mid \Theta=i,x)p(\Theta=i,x)}{p(x)}\\ =max_{j\in y}\frac{\sum_{i=1}^{k}p(y=j\mid \Theta=i,x)p(\Theta=i\mid x)p(x)}{p(x)}\\ =max_{j\in y}\sum_{i=1}^{k}p(y=j\mid \Theta=i,x)p(\Theta=i\mid x)\tag{4}
f(x)=maxj∈yp(y=j∣x)=maxj∈yi=1∑kp(y=j,Θ=i∣x)=maxj∈yp(x)∑i=1kp(y=j,Θ=i,x)=maxj∈yp(x)∑i=1kp(y=j∣Θ=i,x)p(Θ=i,x)=maxj∈yp(x)∑i=1kp(y=j∣Θ=i,x)p(Θ=i∣x)p(x)=maxj∈yi=1∑kp(y=j∣Θ=i,x)p(Θ=i∣x)(4)
其中,
(5)
p
(
Θ
=
i
∣
x
)
=
p
(
x
,
Θ
=
i
)
p
(
x
)
=
α
i
p
(
x
∣
μ
i
,
∑
i
)
∑
i
=
1
k
α
i
p
(
x
∣
μ
i
,
∑
i
)
p(\Theta=i\mid x)=\frac{p(x,\Theta=i)}{p(x)}\\ =\frac{\alpha_ip(x\mid \mu_i,\sum_i)}{\sum_{i=1}^{k}\alpha_ip(x\mid \mu_i,\sum_i)}\tag{5}
p(Θ=i∣x)=p(x)p(x,Θ=i)=∑i=1kαip(x∣μi,∑i)αip(x∣μi,∑i)(5)
假设样本独立同分布且由一个高斯混合模型生成,可用极大似然法估计模型参数{
(
α
i
,
μ
i
,
∑
i
)
,
1
≤
i
≤
k
(\alpha_i,\mu_i,\sum_i),1\leq i\leq k
(αi,μi,∑i),1≤i≤k}
目标函数(标记)
f
(
x
)
f(x)
f(x)的对数似然函数:
(6)
ln
p
(
D
l
⋃
D
u
)
=
∑
(
x
j
,
y
j
)
∈
D
l
ln
(
∑
i
=
1
k
α
i
p
(
y
=
j
∣
Θ
=
i
,
x
)
p
(
Θ
=
i
∣
x
)
)
+
∑
i
=
1
k
α
i
p
(
y
=
j
∣
Θ
=
i
,
x
)
\ln p(D_l\bigcup D_u)=\sum_{(x_j,y_j)\in D_l}\ln (\sum_{i=1}^{k}\alpha_ip(y=j\mid \Theta=i,x)p(\Theta=i\mid x))+\sum_{i=1}^{k}\alpha_ip(y=j\mid \Theta=i,x)\tag{6}
lnp(Dl⋃Du)=(xj,yj)∈Dl∑ln(i=1∑kαip(y=j∣Θ=i,x)p(Θ=i∣x))+i=1∑kαip(y=j∣Θ=i,x)(6)
其中,
已标记样本集:
D
l
=
D_l=
Dl={
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
.
,
(
x
i
,
i
∈
D
l
,
y
i
,
i
∈
D
l
)
(x_1,y_1), (x_2, y_2),...,(x_{i,i\in D_l},y_{i,i\in D_l})
(x1,y1),(x2,y2),...,(xi,i∈Dl,yi,i∈Dl)};
未标记样本集:
D
u
=
D_u=
Du={
x
1
′
,
x
2
′
,
.
.
.
,
x
i
,
i
∈
D
u
′
x_1^{'}, x_2^{'},...,x_{i,i\in D_u}^{'}
x1′,x2′,...,xi,i∈Du′}
其中,
j
j
j为样本量
,
i
i
i为样本类别
.
- EM方法
E步:根据当前模型参数计算未标记样本
x
j
x_j
xj属于各高斯混合成分的概率
r
j
i
r_{ji}
rji
(7)
γ
j
i
=
α
i
p
(
x
∣
μ
i
,
∑
i
)
∑
i
=
1
k
α
i
p
(
x
∣
μ
i
,
∑
i
)
\gamma_{ji}=\frac{\alpha_ip(x\mid \mu_i,\sum_i)}{\sum_{i=1}^{k}\alpha_ip(x\mid \mu_i,\sum_i)}\tag{7}
γji=∑i=1kαip(x∣μi,∑i)αip(x∣μi,∑i)(7)
M步:基于
γ
j
i
\gamma_{ji}
γji更新模型参数:
(8)
μ
i
=
1
∑
x
j
∈
D
u
γ
j
i
+
l
i
(
∑
x
j
∈
D
u
γ
j
i
x
j
+
∑
(
x
i
,
y
i
)
∈
D
l
⋀
y
i
=
i
x
j
)
\mu_i=\frac{1}{\sum_{x_j\in D_u}\gamma_{ji}+l_i}(\sum_{x_j\in D_u}\gamma_{ji}x_j+\sum_{(x_i,y_i)\in D_l\bigwedge y_i=i}x_j)\tag{8}
μi=∑xj∈Duγji+li1(xj∈Du∑γjixj+(xi,yi)∈Dl⋀yi=i∑xj)(8)
(9)
∑
i
=
1
∑
x
j
∈
D
u
γ
j
i
+
l
i
(
∑
x
j
∈
D
u
γ
j
i
(
x
j
−
μ
i
)
(
x
j
−
μ
i
)
T
+
∑
(
x
i
,
y
i
)
∈
D
l
⋀
y
i
=
i
(
x
j
−
μ
i
)
(
x
j
−
μ
i
)
T
)
\sum_i=\frac{1}{\sum_{x_j\in D_u}\gamma_{ji}+l_i}(\sum_{x_j\in D_u}\gamma_{ji}(x_j-\mu_i)(x_j-\mu_i)^T+\sum_{(x_i,y_i)\in D_l\bigwedge y_i=i}(x_j-\mu_i)(x_j-\mu_i)^T)\tag{9}
i∑=∑xj∈Duγji+li1(xj∈Du∑γji(xj−μi)(xj−μi)T+(xi,yi)∈Dl⋀yi=i∑(xj−μi)(xj−μi)T)(9)
(10)
α
i
=
1
m
(
∑
x
j
∈
D
u
γ
j
i
+
l
i
)
\alpha_i=\frac{1}{m}(\sum_{x_j\in D_u}\gamma_{ji}+l_i)\tag{10}
αi=m1(xj∈Du∑γji+li)(10)
其中,
l
i
l_i
li表示第
i
i
i类的有标记样本数目.
E,M不断迭代直至收敛,即可获得模型参数{
(
α
i
,
μ
i
,
∑
i
)
,
1
≤
i
≤
k
(\alpha_i,\mu_i,\sum_i), 1\leq i \leq k
(αi,μi,∑i),1≤i≤k}
3.3 直推式支持向量机
半监督SVM(semi-supervised SVM,S3VM)是标准SVM算法在未标记样本上的一种推广,其中直推式支持向量机(Transductive SVM)是最典型的算法.
3.3.1 TSVM基本思想:
针对二分类问题,同时利用标记和未标记样本,通过尝试将每个未标记样本分别作为正例和反例来寻找最优分类边界,以期获取原始数据中两类样本的最大分类间隔.
3.3.2 TSVM条件(KKT)
(11)
{
m
i
n
w
,
b
,
y
^
,
ξ
1
2
∣
∣
w
∣
∣
2
2
+
C
l
∑
i
=
1
l
ξ
i
+
C
u
∑
i
=
l
+
1
m
ξ
i
s
.
t
.
:
y
i
(
w
T
x
i
+
b
)
≥
1
−
ξ
i
,
i
=
1
,
2
,
…
,
l
y
^
i
(
w
T
x
i
+
b
)
≥
1
−
ξ
i
,
i
=
l
+
1
,
l
+
2
,
…
,
m
ξ
i
≥
0
,
i
=
1
,
2
,
…
,
m
\begin{cases}min_{w,b,\hat{y},\xi}\frac{1}{2}\mid \mid w \mid \mid_{2}^{2}+C_l\sum_{i=1}^l\xi_i+C_u\sum_{i=l+1}^m\xi_i\\ s.t.:y_i(w^Tx_i+b)\geq 1-\xi_i,i=1,2,…,l\\ \hat y_i(w^Tx_i+b)\geq 1-\xi_i,i=l+1,l+2,…,m\\ \xi_i\geq 0,i=1,2, …, m\end{cases}\tag{11}
⎩⎪⎪⎪⎨⎪⎪⎪⎧minw,b,y^,ξ21∣∣w∣∣22+Cl∑i=1lξi+Cu∑i=l+1mξis.t.:yi(wTxi+b)≥1−ξi,i=1,2,…,ly^i(wTxi+b)≥1−ξi,i=l+1,l+2,…,mξi≥0,i=1,2,…,m(11)
其中,
C
l
C_l
Cl和
C
u
C_u
Cu分别表示已标记样本和未标记样本的惩罚因子,用于调整不同样本的权重,
ξ
\xi
ξ为松弛变量,用于调整对错分样本的容忍程度.
尝试未标记样本的各种标记指派是一个穷举遍历过程,未标记样本数太大时不能直接求解,TSVM采用局部搜索迭代求解近似,通过在局部搜索和调整指派为异类且可能错误的标记指派,使目标函数值不断下降:
- 局部搜索: x i x_i xi, x j x_j xj
- 异类: y i y j < 0 y_iy_j<0 yiyj<0
- 可能错误: ξ i + ξ j > 2 \xi_i+\xi_j>2 ξi+ξj>2
- 调整:互换标记
3.3.3 TSVM算法:
输入:有标记样本集:
D
l
=
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
…
,
(
x
l
,
y
l
)
D_l={(x_1,y_1),(x_2, y_2), …, (x_l, y_l)}
Dl=(x1,y1),(x2,y2),…,(xl,yl)
未标记样本集
D
u
=
x
l
+
1
,
x
l
+
2
,
…
,
x
l
+
u
D_u={x_{l+1}, x_{l+2}, …, x_{l+u}}
Du=xl+1,xl+2,…,xl+u
折中参数:
C
l
,
C
u
C_l,C_u
Cl,Cu
过程:
(1) 使用
D
l
D_l
Dl训练一个
S
V
M
l
SVM_l
SVMl;
(2) 使用
S
V
M
l
SVM_l
SVMl对
D
u
D_u
Du中的样本进行预测,得到
y
^
=
(
y
^
l
+
1
,
y
^
l
+
2
,
…
,
y
^
l
+
u
)
\hat y=(\hat y_{l+1},\hat y_{l+2},…,\hat y_{l+u})
y^=(y^l+1,y^l+2,…,y^l+u);
(3) 初始化
C
u
<
<
C
l
C_u<<C_l
Cu<<Cl;
(4) while
C
u
<
C
l
C_u<C_l
Cu<Cl do
(5) 基于
D
l
,
D
u
,
y
^
,
C
l
,
C
u
D_l,D_u,\hat y,C_l,C_u
Dl,Du,y^,Cl,Cu求解式()得到
w
,
b
,
ξ
w,b,\xi
w,b,ξ
(6) while
∃
{
i
,
j
∣
(
y
^
i
y
^
j
<
0
)
⋀
(
ξ
i
>
0
)
⋀
(
ξ
j
>
0
)
⋀
(
ξ
i
+
ξ
j
>
2
)
}
\exists \begin{Bmatrix}i,j\mid (\hat y_i \hat y_j <0)\bigwedge (\xi_i>0)\bigwedge (\xi_j>0)\bigwedge (\xi_i+\xi_j>2)\end{Bmatrix}
∃{i,j∣(y^iy^j<0)⋀(ξi>0)⋀(ξj>0)⋀(ξi+ξj>2)}do
(7)
y
^
i
=
−
y
^
i
\hat y_i=-\hat y_i
y^i=−y^i
(8)
y
^
i
=
−
y
^
i
\hat y_i=-\hat y_i
y^i=−y^i
(9) 基于
D
l
,
D
u
,
y
^
,
C
l
,
C
u
D_l,D_u,\hat y,C_l,C_u
Dl,Du,y^,Cl,Cu求解式(11)得到
w
,
b
,
ξ
w,b,\xi
w,b,ξ
(10)end while
(11)
C
u
=
m
i
n
C_u=min
Cu=min{
2
C
u
,
C
l
2C_u,C_l
2Cu,Cl}
(12) end while
输出:未标记样本的预测结果:
y
^
=
(
y
^
l
+
1
,
y
^
l
+
2
,
…
,
y
^
l
+
u
)
\hat y=(\hat y_{l+1},\hat y_{l+2},…,\hat y_{l+u})
y^=(y^l+1,y^l+2,…,y^l+u)
3.3.4 应用
搜寻标记指派出错的每一对未标记样本并进行调整,是一个复杂的大规模优化问题.
应用于:高效优化求解算法,如基于图和梯度下降的LDS算法;基于标记均值估计的MeanS3VM.
3.4 半监督聚类
3.4.1 基本思想
“物以类聚,人以群分”,将数据样本根据其属性聚集几类(如K-means),或给出一个样本属于每一类的概率(如高斯混合聚类);
- 同一个簇中的对象具有相似的属性,不同簇中的对象具有不同的属性;
- 无需事先根据已标注数据训练聚类器,因此半监督聚类是一种典型的无监督学习任务;
- K-means聚类
给定 D D D维空间上的数据集{ x 1 , x 2 , … , x N x_1, x_2, …, x_N x1,x2,…,xN},并不知道这些数据集对应的类型和标号,通过聚类方法将这些数据集分成K类;
对于K个聚类中的每一类,分别建立一个代表点 μ k \mu_k μk,将每个样本归到离该点最近的类中;
目标:最小化准则函数 J = ∑ n = 1 N ∑ k = 1 K r n k ∣ ∣ x n − μ k ∣ ∣ 2 J=\sum_{n=1}^N\sum_{k=1}^Kr_{nk}\mid \mid x_n-\mu_k\mid \mid^2 J=∑n=1N∑k=1Krnk∣∣xn−μk∣∣2
3.4.2 实际聚类任务
除大量未标记的样本数据外,可同时获取数据集的标记信息
3.4.2.1 第一类:必连和勿连约束
必连指样本必属于同一个簇,勿连指样本必不属于同一个簇.
- 约束K均值算法(Constrained K-means Algorithm)
该算法是K-means的扩展,在聚类过程中,确保"必连"关系集合和"勿连"关系集合中的约束得以满足,否则返回错误提示. - 过程
输入:样本数据
D = { c o r 1 , c o r 2 , . . . , c o r m , 其 中 c o r i = ( x i , y i ) } D=\begin{Bmatrix}cor_1, cor_2, ..., cor_m,其中cor_i=(x_i, y_i)\end{Bmatrix} D={cor1,cor2,...,corm,其中cori=(xi,yi)}
必连约束: M M M
勿连约束: C C C
聚类簇数: k k k
(1) 初始化:从
D
D
D中随机选取
k
k
k个样本作为初始均值向量
{
μ
1
,
μ
2
,
.
.
.
,
μ
k
}
\begin{Bmatrix}\mu_1, \mu_2, ..., \mu_k\end{Bmatrix}
{μ1,μ2,...,μk};
(2)迭代
(3)
C
j
=
∅
(
1
≤
j
≤
k
)
C_j=\emptyset (1\leq j \leq k)
Cj=∅(1≤j≤k);
(4) for i = 1,2,…, m do
(5)计算样本
c
o
r
i
cor_i
cori与各均值向量
μ
j
(
1
≤
j
≤
k
)
\mu_j(1\leq j\leq k)
μj(1≤j≤k)的距离
d
i
j
=
∣
∣
c
o
r
i
−
μ
j
∣
∣
2
=
(
x
i
−
x
j
)
2
+
(
y
i
−
y
j
)
2
d_{ij}=\mid\mid cor_i-\mu_j\mid\mid_2=\sqrt{(x_i-x_j)^2+(y_i-y_j)^2}
dij=∣∣cori−μj∣∣2=(xi−xj)2+(yi−yj)2;
(6)
K
=
{
1
,
2
,
.
.
.
,
k
}
K=\begin{Bmatrix}1, 2, ..., k\end{Bmatrix}
K={1,2,...,k};
(7)is_merged=False;
(8)while
d
a
t
a
data
data is_merged do
(9)基于
K
K
K找出与样本
c
o
r
i
cor_i
cori距离最近的簇:
r
=
m
i
n
j
∈
K
d
i
j
r=min_{j\in K}d_{ij}
r=minj∈Kdij;
(10)检测将
c
o
r
i
cor_i
cori划入聚类簇
C
r
C_r
Cr是否违背
M
M
M和
C
C
C中的约束;
(11)如果违反
(12)数据归为原始数据集
C
r
=
C
r
⋃
{
c
o
r
i
}
C_r=C_r\bigcup \begin{Bmatrix}cor_i\end{Bmatrix}
Cr=Cr⋃{cori}
(13)is_merged=True;
(14)如果不违背
(15)从
K
K
K中提取数据,划入到对应簇中,
K
=
K
\
{
r
}
K=K\backslash \begin{Bmatrix}r\end{Bmatrix}
K=K\{r};
(16)判断此时
K
K
K是否为空
(17)若为空,则退出循环,并返回错误提示
(18)结束if
(19)结束if
(20)结束while
(21)结束for
(22)更新均值:for j=1, 2, …, k do
(23)
μ
j
=
1
∣
C
j
∣
∑
c
o
r
∈
C
j
c
o
r
\mu_j=\frac{1}{\mid C_j\mid}\sum_{cor\in C_j}cor
μj=∣Cj∣1∑cor∈Cjcor
(24)结束for
(25)直到均值向量停止改变
输出:簇划分 { C 1 , C 2 , . . . , C k } \begin{Bmatrix}C1, C2, ..., Ck\end{Bmatrix} {C1,C2,...,Ck}
3.4.2.2 第二类:少量标记样本
- 半监督聚类:
利用少量有标记数据的监督信息获取更好的监督效果.
- 约束种子K均值
核心:将标记信息作为种子,即初始的K个聚类中心,并在聚类簇迭代更新过程中,不改变种子样本簇的簇隶属关系. - 过程
输入
D = { c o r 1 , c o r 2 , . . . , c o r m , 其 中 c o r i = ( x i , y i ) } D=\begin{Bmatrix}cor_1, cor_2, ..., cor_m,其中cor_i=(x_i, y_i)\end{Bmatrix} D={cor1,cor2,...,corm,其中cori=(xi,yi)}
少量有标记样本: S = ⋃ j = 1 k S j S=\bigcup_{j=1}^kS_j S=⋃j=1kSj
聚类簇数: k k k
(1)计算簇均值for j=1,2, …, k do
(2)
μ
j
=
1
∣
S
j
∣
∑
c
o
r
∈
S
j
c
o
r
\mu_j=\frac{1}{\mid S_j\mid}\sum_{cor\in S_j}cor
μj=∣Sj∣1∑cor∈Sjcor
(3)end for
(4)迭代
(5)KaTeX parse error: Expected 'EOF', got '\leg' at position 23: …ptyset (1\leq j\̲l̲e̲g̲ ̲k)
(6)for j=1, 2, …, k do
(7)标记簇划分到新建簇(取并集)for all
c
o
r
∈
S
j
cor\in S_j
cor∈Sjdo
(8)
C
j
=
C
j
⋃
{
c
o
r
}
C_j=C_j\bigcup \begin{Bmatrix}cor\end{Bmatrix}
Cj=Cj⋃{cor}
(9)end for
(10)end for
(11)未标记数据划分计算for all
c
o
r
i
∈
D
\
S
cor_i\in D\backslash S
cori∈D\S do
(12)计算样本
c
o
r
i
cor_i
cori与个均值向量
μ
j
(
1
≤
j
≤
k
)
\mu_j(1\leq j \leq k)
μj(1≤j≤k)的距离:
d
i
j
=
∣
∣
c
o
r
i
−
μ
j
∣
∣
2
d_{ij}=\mid\mid cor_i-\mu_j\mid\mid_2
dij=∣∣cori−μj∣∣2
(13)找出与样本
c
o
r
i
cor_i
cori距离最近的簇:
r
=
m
i
n
j
∈
{
1
,
2
,
…
,
k
}
d
i
j
r=min_{j\in \begin{Bmatrix}1,2, …, k\end{Bmatrix}}d_{ij}
r=minj∈{1,2,…,k}dij
(14)将样本
c
o
r
i
cor_i
cori划入相应的簇:
C
r
=
C
r
⋃
{
c
o
r
i
}
C_r=C_r\bigcup \begin{Bmatrix}cor_i\end{Bmatrix}
Cr=Cr⋃{cori}
(15)end for
(16)更新均值:for j=1,2, …,k do
(17)
μ
j
=
1
∣
C
j
∣
∑
c
o
r
∈
C
j
c
o
r
\mu_j=\frac{1}{\mid C_j\mid}\sum_{cor\in C_j}cor
μj=∣Cj∣1∑cor∈Cjcor
(18)end for
(19)直到均值向量停止跟新
输出:簇划分 { C 1 , C 2 , . . . , C k } \begin{Bmatrix}C1, C2, ..., Ck\end{Bmatrix} {C1,C2,...,Ck}
4 小结
(1) 自学习方法,即利用聚类思想,以欧式距离作为度量,将未标记数据聚集在分类点周围;
(2) 生成式模型,上述高斯混合模型换成混合专家模型,朴素贝叶斯模型等即可得出其他生成式半监督学习算法,此类方法简单,易于实现,在有标记数极少的情况下往往比其他方法性能更好但是,此类方法有一个关键点:模型假设必须正确,即假设的生成式模型必须与真实数据分布吻合,否则利用未标注数据反而会显著降低泛化性能.
(3) 直推式支持向量机,是支持向量机的软间隔应用版,通过设置松弛因子,及数据比重,实现对数据的分类;
(4) 半监督聚类,是基于K-means的应用,通过迭代距离,将数据归类,同时数据满足对应的约束即可.
【参考文献】
[1]https://wenku.baidu.com/view/ba63bc677dd184254b35eefdc8d376eeaeaa178f?pn=51
[2]机器学习,周志华版