标签: 半监督学习,文本分类
做者:炼己者
---
本博客全部内容以学习、研究和分享为主,如需转载,请联系本人,标明做者和出处,而且是非商业用途,谢谢!
若是你们以为格式看着不舒服,也欢迎你们去看个人简书python
用半监督算法作文本分类(sklearn)
sklearn半监督学习(sklearn)
基于自训练的半监督文本分类算法算法
本文主要讲述基于协同训练的半监督算法作文本分类,用三个差别性比较大的分类器对未标注数据进行标注,它们能够进行交叉验证,大大提高了对未标注数据标记的置信度(简单理解就是三个分类器同时对一个未标注数据标记同样的标签,那么这个标签就可信了),从而提升分类器标注的准确率函数
这里就再也不赘述,参考这篇文章:中文文本预处理流程
这上面的流程很完整,并且有代码,你只须要按着那个操做来便可学习
接下来就是对剩下的全部未标注数据进行操做了,未标注数据一条一条过
操做思路:假设有10条未标注数据,第一条取出来了,三个分类器对它进行预测。有如下三种可能:测试
- 若是你们预测的都同样,那就把它连同预测的标签加入到总的训练集data里。
- 若是有两个预测的同样,另一个分类器预测的不同,好比SVM和贝叶斯预测的同样,xgboost的不同,就把它们俩的标注结果放到data3里,而后再让xgboost对更新的data3进行训练。
- 若是你们都预测的不同,就把它放回未标注数据中
这样操做的目的就是为了避免断地训练三个分类器,让它们最终对未标注数据预测的结果同样。这样一条一条未标注数据地过,直到未标注数据为空,最终过完。3d
我选了5000条数据进行预测。blog
SVM:0.62
bayes:0.67
xgboost:0.75get
从图中观察,咱们发现:svm先升后降,bayes先升后稳定,而xgboost很鬼畜。可是效果xgboost是最强的。这里面的缘由我知识有限,暂时没法解释,大伙要是有什么想法能够在底下评论,咱们能够交流交流博客