基于半监督学习算法的文本分类(自训练)

lookfor404 lookfor404     2023-01-02     435

关键词:


半监督学习文本分类系列

用半监督算法做文本分类(sklearn)
sklearn半监督学习(sklearn)


摘要

之前调用sklearn库里的半监督算法——标签传播算法做文本分类,但是它无法支持大数据量的操作,所以就放弃了。小的数据量是可以跑的,详情大家可以看以上两篇文章。

本文主要讲述的是基于自训练的半监督学习算法做文本分类,自训练算法是半监督学习中比较常见的方法之一,但是自训练方法有一个很大的问题,在迭代过程中,如果初始训练样本集中已标注样本的数量过少,则可能会出现错误标注,并通过迭代使错误逐渐被放大,最终导致错误累积。所以我们采用对未标注样本重复标记策略来优化自训练算法。

目录

  • 数据预处理
  • 传统自训练方法
  • 重复标记策略
  • 总结与展望

1.数据预处理

把文本转为TFIDF向量的过程,这里的操作可以看以下文章:
中文文本的预处理(sklearn)
使用不同的方法计算TF-IDF值
分类算法
xgboost分类算法
也可调用sklearn库里的算法来操作,这里可自由发挥,拿各种算法包去试试

2. 传统自训练方法

(1).操作思路:

  • 样本集是由少量已标注的数据和大量未标注的数据组成

    • 首先用监督学习算法(比如SVM)训练已标注数据,然后再用训练所得的初始分类器对未经标注数据进行预测,预测得出的预测类别概率越大,代表分类取得的置信度越高,将置信度较高的文本连同其分类标注一起加入到已标记的数据中,重新训练分类器(每次都要从未标注样本扣除被选择的样本),迭代训练直到未标注样本为空集结束。

(2).传统自训练方法的问题

  • 很显然自训练算法的核心问题便是选择高置信度的未标记样本,完成训练集的扩充。这里面问题很明显,如果未标注的数据预测类别错误,那么每次迭代都会造成错误累积,长此以往分类器的性能势必下降,所以我们对未标记样本进行重复标记,减少分类错误在训练过程的积累,进而提高分类效果

3.改进的自训练方法

(1).什么是重复标记策略

  • 重复标记策略的具体思想是在第t次迭代中,先对未标记数据进行预测,然后选择数量大于第 t-1 次迭代的未标记数据来扩充样本集,并且这些被选择的未标记数据不再从原始的未标记数据集中删除,而是每次迭代过程都对其进行重复标记,以此来保证错误标记的样本能在后续迭代过程中被修正。

如果不是很理解的话大家可以看一下算法步骤

(2).算法步骤

输入:标注数据集X1 ,未标注数据集X2,参数:预测概率p,预测概率的减小速率c
输出:最终分类器
1)初始化预测概率>p的样本集U1为空,初始化样本集U2为空

注释:

  • U1的作用是添加每次迭代满足条件的未标注数据集
  • U2的作用是把符合要求的数据添加训练数据中,起的是中间过度作用
  • 这里划分U1和U2原因是U1每次迭代后要重置为空,而U2才是真正把符合要求的未标注数据加入到已标注数据中。U2就是个中间人

2)while(len(U2) < len(x2))

注释:
这里的意思是说只要满足条件的未标注数据量等于未标注数据的总量则跳出循环。

以下内容都是在while循环中完成
3)利用X1训练初始分类器clf0
4)利用clf0对X2进行标记
5)选择预测概率>p的数据放到U1中,准备对X1进行扩充
6) if: len(U2) != 0 and len(U1) <= len(U2),则p = p - c(预测概率降低)
else: U2 = U1

注释:
这里的意思是指如果本次预测概率>p的未标注样本集比上一次迭代的小而且上一次的不可以是空,那么让预测概率降低,否则把U1赋值给U2

7)重置U1为空集
8)把U2添加到X1中(更新样本集),再去训练分类器
如此循环往复,直到满足循环跳出条件,得到最终的分类器

(3).算法流程图

技术分享图片

理解要点:

  • 未标记数据从头到尾没有减少过
  • 每次迭代只是从中取出满足条件的数据,用来训练分类器,让分类器越来越好。知道最终产生的分类器可以让所有未标记数据满足条件。这里的条件是在变化的,预测概率在降低

4.总结与展望

基于自训练的半监督学习算法做出来的效果有点奇怪,模型效果先下降后上升,由于数据量很大,代码还在运行,效果目前未知,后面代码运行结果出来再更新在这里。希望本文会对大家有所帮助


















详解使用em算法的半监督学习方法应用于朴素贝叶斯文本分类

...这些是容易和廉价的。在下面的内容中,我们介绍使用半监督学习和EM算法,充分结合大量未标记的样本,以期获得文本分类更高的准确率。本文使用的是多项式朴素贝叶斯作为分类器,通过EM算法进行训练,使用有标记数据以... 查看详情

用半监督算法做文本分类(代码片段)

...,并且是非商业用途,谢谢!摘要:本文主要讲述了用半监督算法做文本分类(二分类),主要借鉴了sklearn的一个例子——用半监督算法做数字识别。先说结论,这是一个失败的例子,训练到第15000条就不行了,就报错了。如果你... 查看详情

关系抽取学习(代码片段)

...包含这对实体的句子,在一定程度上都反映了这种关系。基于这个假设,远程监督算法可以基于一个标注好的小型知识图谱,给外部文档库中的句子标注关系标签,相当于 查看详情

无监督弱监督半监督强化多示例学习是什么

什么是监督学习、无监督学习、强化学习、弱监督学习、半监督学习、多示例学习?随着机器学习问题不断深入人心,人们也将现实中遇到不同的问题分为不同的学习方式,其中,最基础的应属监督学习,无监督学习和强化学习... 查看详情

机器学习有监督无监督自监督半监督弱监督的区别

有监督:用有标签的数据训练;无监督:用无标签的数据训练;K-means等半监督:利用数据分布上的模型假设建立学习器对未标签样例进行标签。通常是两阶段的训练,先用(较小规模的)有标签数据训练一个Teacher模型,再用这... 查看详情

半监督深度学习

半监督学习在有标签数据+无标签数据混合成的训练数据中使用的机器学习算法。一般假设,无标签数据比有标签数据多,甚至多得多。要求:无标签数据一般是有标签数据中的某一个类别的(不要不属于的,也不要属于多个类... 查看详情

分类与监督学习,朴素贝叶斯分类算法

1.理解分类与监督学习、聚类与无监督学习1)、简述分类与聚类的联系与区别。分类——分类是根据文本的特征或属性,划分到已有的类别中。也就是说,这些类别是已知的,通过对已知分类的数据进行训练和学习,找到这些不... 查看详情

分类与监督学习,朴素贝叶斯分类算法

1.理解分类与监督学习、聚类与无监督学习1)、简述分类与聚类的联系与区别。分类——分类是根据文本的特征或属性,划分到已有的类别中。也就是说,这些类别是已知的,通过对已知分类的数据进行训练和学习,找到这些不... 查看详情

分类与监督学习,朴素贝叶斯分类算法

1.理解分类与监督学习、聚类与无监督学习1)、简述分类与聚类的联系与区别。分类——分类是根据文本的特征或属性,划分到已有的类别中。也就是说,这些类别是已知的,通过对已知分类的数据进行训练和学习,找到这些不... 查看详情

半监督聚类/分类

...测量作为k-means的初始中心。我可以对这些数据使用什么基于密度的算法?【问题讨论】:您的 查看详情

机器学习的种类

 一、监督学习supervisedlearning已有训练样本和分类器,通过训练样本来得到分类器的最佳模型,再利用这个模型来处理新样本。(1)分类(2)回归(3)结构学习structuredlearning (4)深度学习常见算法: 反向传播算法&n... 查看详情

11.分类与监督学习,朴素贝叶斯分类算法

1.理解分类与监督学习、聚类与无监督学习。简述分类与聚类的联系与区别。答:联系:聚类属于无监督学习,即模型训练过程中没有被目标标签监督。而分类属于监督学习,即其训练数据都标记了需要被预测的真实值。在很多... 查看详情

0机器学习算法分类

1、机器学习算法分类:监督学习监督学习的训练数据包含了类别信息,在监督学习中,典型的问题是分类(Classification)和回归(Regression),典型的算法有LogisticsRegression、BP神经网络算法和相性回归算法。 监督学习流程:&n... 查看详情

监督学习,无监督学习和半监督学习

概念:监督学习、无监督学习与半监督学习监督学习:supervisedlearning 无监督学习:unsupervisedlearning 半监督学习:semi-supervisedlearning2、概念监督学习:用一部分已知分类、有标记的样本来训练机器后,让它用学到的特征,... 查看详情

增强学习与马尔科夫决策过程

...的机器学习算法根据模型的学习过程大致可以分为四类:监督式学习,无监督式学习,半监督式学习和增强学习。①监督式学习:从标记好的训练数据中进行模型的训练,常用来做分类和回归,例如逻辑回归、反向神经网络;②... 查看详情

数据挖掘都有哪些模型?

请问,数据挖掘有哪些模型呢?参考技术A1、监督学习模型监督学习模型,就是人们经常说的分类,通过已经有的训练样本(即已知数据以及其对应的输出)去训练得到一个最优模型,然后再利用这个模型将所有的输入映射为相应... 查看详情

12月15日下午,多模态预训练半监督学习

...瓷杯,快扫码入群!分享内容及主讲者淘宝拍照基于分类的超大规模多模态技术主讲人:涩锋 |大淘宝技术算法专家【主题介绍】淘宝拍照以图搜图系统,经过多年技术和产品打磨,已成为淘宝每天数千万DAU... 查看详情

分类与监督学习,朴素贝叶斯分类算法

1、简述分类与聚类的联系与区别。简述什么是监督学习与无监督学习。分类与聚类:分类是一种有监督的算法,是在已经有目标分类的情况下对数据进行类别判断(朴素贝叶斯算法)。而聚类是一种无监督算法,是在建立模型... 查看详情