原文见 Zhang, M.-L., & Wu, L. (2015). LIFT: Multi-label learning with label-specific features. IEEE Transactions on Pattern Analysis and Machine Intelligence, 37, 107–120.在线地址
特点
把多标签问题转换成了多个二分类问题。
关键步骤
- label-specific features construction
- classification models induction
符号系统
符号 | 含义 | 说明 |
---|---|---|
X = R d \mathcal{X}=\mathbb{R}^d X=Rd | d d d维特征向量 | |
Y = { l 1 , l 2 , ⋯ , l q } \mathcal{Y}=\{l_1,l_2,\cdots,l_q\} Y={l1,l2,⋯,lq} | 标签空间 | l k l_k lk表示标签,其中 k ∈ [ 1 , q ] k\in[1,q] k∈[1,q] |
ϕ k ( x ) \phi_k(\mathbf{x}) ϕk(x) | ϕ k ( x ) = [ d ( x , P 1 k ) , ⋯ , d ( x , P m k k ) , d ( x , N 1 k ) , ⋯ , d ( x , N m k k ) ] \phi_k(\mathbf{x})=[\mathbf{d}(\mathbf{x},\mathbf{P}_1^k),\cdots,\mathbf{d}(\mathbf{x},\mathbf{P}_{m^k}^k),\mathbf{d}(\mathbf{x},\mathbf{N}_1^k),\cdots,\mathbf{d}(\mathbf{x},\mathbf{N}_{m^k}^k)] ϕk(x)=[d(x,P1k),⋯,d(x,Pmkk),d(x,N1k),⋯,d(x,Nmkk)] | 将原特征空间映射到新的特征空间,其中 k ∈ [ 1 , q ] k\in[1,q] k∈[1,q] |
B k \mathcal{B}_k Bk | 由新的特征空间构成的二分类训练数据集 | 其中 k ∈ [ 1 , q ] k\in[1,q] k∈[1,q] |
f : X → Y \mathcal{f}:\mathcal{X}\rightarrow \mathcal{Y} f:X→Y | 分类器 |
主要过程:
Step1: 将数据集分为标签含有
l
k
(
k
∈
[
0
,
q
]
)
l_k(k\in[0,q])
lk(k∈[0,q])标签:
P
k
=
{
x
i
∣
(
x
i
,
Y
i
)
∈
D
,
l
k
∈
Y
i
}
\mathcal{P}_k=\{\mathbf{x}_i|(\mathbf{x}_i,\mathbf{Y}_i)\in D,l_k\in \mathbf{Y}_i\}
Pk={xi∣(xi,Yi)∈D,lk∈Yi}和不含
l
k
l_k
lk标签:
N
k
=
{
x
i
∣
(
x
i
,
Y
i
)
∈
D
,
l
k
∉
Y
i
}
\mathcal{N}_k=\{\mathbf{x}_i|(\mathbf{x}_i,\mathbf{Y}_i)\in D,l_k\notin \mathbf{Y}_i\}
Nk={xi∣(xi,Yi)∈D,lk∈/Yi}的两个数据集,针对这两个数据集进行k-means聚类成
m
k
m_k
mk个簇,其中
m
k
m_k
mk的取值为:
m
k
=
⌈
r
⋅
m
i
n
(
∣
P
k
∣
,
∣
N
k
∣
)
⌉
m_k=\lceil r\cdot \mathop {min(|P_k|,|N_k|)}\rceil
mk=⌈r⋅min(∣Pk∣,∣Nk∣)⌉
(其中
r
∈
[
0
,
1
]
r\in[0,1]
r∈[0,1],
m
k
m_k
mk取最小值可以避免
∣
P
k
∣
≪
∣
N
k
∣
\mathcal{|P_k|\ll |N_k|}
∣Pk∣≪∣Nk∣导致的类失衡,训练出的模型不准确)。
完成聚类后的簇的中心表示为:
针对正样本数据集:
{
p
1
k
,
p
2
k
,
⋯
,
p
m
k
k
}
\{\mathbf{p_1^k,p_2^k,\cdots,p_{m^k}^k}\}
{p1k,p2k,⋯,pmkk}
针对负样本数据集:
{
n
1
k
,
n
2
k
,
⋯
,
n
m
k
k
}
\{\mathbf{n_1^k,n_2^k,\cdots,n_{m^k}^k}\}
{n1k,n2k,⋯,nmkk}
于是,每个训练数据到每个中心点的距离组成了新的特征空间:
ϕ
k
(
x
)
=
[
d
(
x
,
P
1
k
)
,
⋯
,
d
(
x
,
P
m
k
k
)
,
d
(
x
,
N
1
k
)
,
⋯
,
d
(
x
,
N
m
k
k
)
]
\phi_k(\mathbf{x})=[\mathbf{d}(\mathbf{x},\mathbf{P}_1^k),\cdots,\mathbf{d}(\mathbf{x},\mathbf{P}_{m^k}^k),\mathbf{d}(\mathbf{x},\mathbf{N}_1^k),\cdots,\mathbf{d}(\mathbf{x},\mathbf{N}_{m^k}^k)]
ϕk(x)=[d(x,P1k),⋯,d(x,Pmkk),d(x,N1k),⋯,d(x,Nmkk)]
Step2: 由新的特征空间构成的二分类训练数据集进行训练,得到分类器
f
k
f_k
fk。
如果对所有标签都完成上述操作,那么会得到
q
q
q个分类器,当预测时,同样需要对数据的原特征空间进行映射操作,然后经过
q
q
q个分类器进行分类,得到预测结果。
论文中的伪代码:
LIFT算法的缺点:由于是对各个标签进行独立学习,没有考虑标签的相关性。
总结:作者将一个多标签问题转换成了多个二分类问题来解决,通过聚类中心构建了新的特征集合(我们是不是也可以通过这种方式进行数据处理呀),然后根据新的特征空间生成多个分类器,最后结合多个分类器进行总体分类。