最近遇到了一个问题,一堆数据集,但是只有正例标签(Positive),没有负例标签(Negative),这样的话,如果想要直接训练学习是很难的,因为这相当于训练集各个class分布极不均匀,根本无法训练,这时就需要用到机器学习中的PU learning了,也就是positive-unlabeled learning。
PU learning有1种常见的解决思路——two stage approch
两阶段法
第一步,先识别出一些可靠的负例;
第二步,利用第一步的负例和原有的正例,去训练一个分类器,便可以实现分类了。
两阶段法有多种实现手段,这里介绍的S-EM算法,也就是spy-EM算法。
S-EM
step1:
step1的思路是利用间谍样本对Unlabled中的正例有一个大致的了解,然后去取一个阈值下界,进而将Negetive的样本得到。
step1的目标是得到P(正例样本),N(负例样本),U(未标记样本)
step2:
step2的思路就是利用第一步的P,U,N三个样本使用EM算法来得到一个分类器,利用最终得到的这个分类器来将样本进行分类。
以上就是所有的S-EM算法了,只看这个算法还是有点迷糊的,因为其中的I-EM和EM算法没有进行很好地讲解,目前我还未完全搞懂这个,容我再看看论文,再来补充把
——————————————————————————————————
下面就来补充一下I-EM和EM算法
EM
EM算法是一个通过不断迭代来求解出隐变量的算法。
- E步:(Z为隐变量集,X是特征变量集)
以当前参数mt推断隐变量分布P(Z|X,mt),并计算对数似然LL(mt|x,z)关于Z的期望(加粗意为向量)
Q(m|mt)=E (z|x , mt) = LL(m|x,z) - M步:
寻找参数最大化似然,即
mt+1 = arg max Q(m | mt)
通过这两部不断地迭代,收敛后就可以得到对应地隐变量集了
I-EM
I-EM算法中地第5步也就是利用EM算法迭代出一个新地贝叶斯分类器,具体如下:
————————————————————————————————————
上面就是S-EM的理论部分了,本次我遇到的实际问题如下,有一些车辆已经知道是C1类型的车辆了(P),还有更多的车辆我不知道是什么类型的车辆(U),现在希望通过两个feature:x1,x2来识别出U中的C1车辆。
Algorithm
note:这个S-EM已经是我修改后的,和上面的S-EM并不完全一样,一方面是为了简化,更容易编程实现,另一方面也是因为该问题和上述的论文中遇到的例子并不完全一样。此算法主要是适用于离散型的数据的,也就是属性是离散的,因为离散型的数据训练朴素贝叶斯会有类别不均衡的问题,而连续型的一般用高斯朴素贝叶斯,受类别不均衡影响较小(详见我的另一篇博文:https://blog.csdn.net/qq_39805362/article/details/91129684
),所以不需要使用再缩放,其他的话应该都是一样的
stage1
- N=U=None;
- S = sample(P,s%) , s = 15%;
- MS = M U S;
- P = P - S;
- 将P中的样本的标签都标记为‘1’;
- 将MS中的样本的标签都标记为’0’;
- LOOP IF 样本标签有所改变 or 迭代次数达到上限m(m = 10):
利用P和MS来训练朴素贝叶斯分类器(若正负例数量差异大,则需进行欠/过采样或再缩放的策略,并对MS中的样本进行分类。
END LOOP - 利用最终得到的贝叶斯分类器对所有MS中的样本归属于1的概率Pri进行计算;
- 将所有的spy样本的Pri从小到大进行排序,取阈值t为10%的pri;
- 将Pr < t的样本标记为‘0’,形成N集合;
- 除了P,N外的样本组合成了U集合,U集合中的样本没有给予标记;
stage2
- 将SPY样本放回到P中,形成新的P , N , U ;
- 置P中的样本的标签为1,N中的样本的标签为0,训练朴素贝叶斯分类器;
- 对所有的样本进行分类,P样本的标签不改变,U,N样本的标签根据训练结果进行修改;
- LOOP IF 样本的标签改变 or 达到最大的循环次数m , m=10:
利用正负例训练朴素贝叶斯分类器,并对样本进行分类;
END LOOP - 最后收敛时的贝叶斯分类器就是最佳贝叶斯分类器,利用该分类器对样本进行分类。
——————————————————————————————————————————
我的这个问题属性都是连续的,因此我使用的高斯贝叶斯来做分类器,与上面的算法略有不同,我没有使用类别不均衡学习,最后得到的结果还算可以,一方面较符合实际,另一方面,得到的错误率即将原本标签为正例识别为负例的比率为5.58%。
参考文献
Bing Liu et.al Partially Supervised Classification of Text Documents
Bing Liu et.al Building Text Classifiers Using Positive and Unlabeled Examples
周志华.西瓜书