伪标签半监督学习

作者: slade_sal | 来源:发表于2018-07-24 10:37 被阅读4次

    之前在训练YoutubeNet和DCN的时候,我都发现平台用户中基础用户的信息数据缺失率特别高,比如性别一栏准确填写的不足60%,所以我一直想调研一下有没有什么更好的填充方法,要保证既不能太复杂太耗时,也要有足够好的效果。

    其实这个问题就是一个缺失值填充,之前的文章中也写过很多办法,常规的也总结过:

    • 均值、众数填充
      最简单的填充,效果也惨不忍睹
    • 根据没有缺失的数据线性回归填充
      填充的好会造成共线性错误,填充的不好就没价值,很矛盾
    • 剔除
      丢失信息量
    • 设置哑变量
      会造成数据分布有偏
    • smote
      连续值有效,离散值就无法实施了

    我在Google上看imbalance问题的时候,偶然看到了这个视频教程,上面讲了图像的缺失处理,提到了伪标签处理的半监督学习方式。我就在国内的论坛上找了下,阿里云技术论坛也同样注意到了这个问题,但是只给出了如下的粗糙的构思图:

    有一份整理了的流程图,具体执行步骤总结,和大家一起看一下:


    • 将有标签部分数据分为两份:train_set&validation_set,并训练出最优的model1
    • 用model1对未知标签数据(test_set)进行预测,给出伪标签结果pseudo-labeled
    • 将train_set中抽取一部分做新的validation_set,把剩余部分与pseudo-labeled部分融合作为新的train_set,训练出最优的model2
    • 再用model2对未知标签数据(test_set)进行预测,得到最终的final result label

    我利用了已知标签的数据对这个方法进行测试,用了最简单的mixed logistic regression模型作为Basic Model,得到结果如下:



    利用伪标签半监督的方式,同样的mixed logistic regression模型AUC值会提高0.1pp左右,效果还不错,而且实施并不复杂,大家可以在缺失值处理或者分类问题中应用尝试一下。


    欢迎大家关注我的个人bolg,更多代码内容欢迎follow我的个人Github,如果有任何算法、代码疑问都欢迎通过公众号发消息给我。

    相关文章

      网友评论

        本文标题:伪标签半监督学习

        本文链接:https://www.haomeiwen.com/subject/leremftx.html