拟合多标签文本分类模型时的错误

     2023-03-12     287

关键词:

【中文标题】拟合多标签文本分类模型时的错误【英文标题】:Bugs when fitting Multi label text classification models 【发布时间】:2019-12-17 23:09:57 【问题描述】:

我现在正在尝试为多标签文本分类问题拟合分类模型。

我有一个训练集 X_train,其中包含已清理文本的列表,例如

["I am constructing Markov chains with  to  states and inferring     
transition probabilities empirically by simply counting how many 
times I saw each transition in my raw data",
"I know the chips only of the  players of my table and mine obviously I 
also know the total number of chips the max and min amount chips the 
players have and the average stackIs it possible to make an 
approximation of my probability of winningI have,
...]

和一个训练多个标签集y对应X_train中的每个文本,比如

[['hypothesis-testing', 'statistical-significance', 'markov-process'],
['probability', 'normal-distribution', 'games'],
...]

现在我想拟合一个模型,该模型可以预测文本集 X_test 中的标签,其格式与 X_train 相同。

我已经使用MultiLabelBinarizer 转换标签并使用TfidfVectorizer 转换train set 中的清理文本。

multilabel_binarizer = MultiLabelBinarizer()
multilabel_binarizer.fit(y)
Y = multilabel_binarizer.transform(y)

vectorizer = TfidfVectorizer(stop_words = stopWordList)
vectorizer.fit(X_train)
x_train = vectorizer.transform(X_train)

但是当我尝试拟合模型时,我总是会遇到错误。我尝试过 OneVsRestClassifierLogisticRegression

当我安装 OneVsRestClassifier 模型时,我遇到了类似

的错误
Traceback (most recent call last):
  File "/opt/conda/envs/data3/lib/python3.6/socketserver.py", line 317, in _handle_request_noblock
    self.process_request(request, client_address)
  File "/opt/conda/envs/data3/lib/python3.6/socketserver.py", line 348, in process_request
    self.finish_request(request, client_address)
  File "/opt/conda/envs/data3/lib/python3.6/socketserver.py", line 361, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/opt/conda/envs/data3/lib/python3.6/socketserver.py", line 696, in __init__
    self.handle()
  File "/usr/local/spark/python/pyspark/accumulators.py", line 268, in handle
    poll(accum_updates)
  File "/usr/local/spark/python/pyspark/accumulators.py", line 241, in poll
    if func():
  File "/usr/local/spark/python/pyspark/accumulators.py", line 245, in accum_updates
    num_updates = read_int(self.rfile)
  File "/usr/local/spark/python/pyspark/serializers.py", line 714, in read_int
    raise EOFError
EOFError

当我安装 LogisticRegression 模型时,我遇到了类似

的错误
/opt/conda/envs/data3/lib/python3.6/site-packages/sklearn/linear_model/sag.py:326: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge
  "the coef_ did not converge", ConvergenceWarning)

有人知道问题出在哪里以及如何解决吗?非常感谢。

【问题讨论】:

【参考方案1】:

OneVsRestClassifier 适合每个类一个分类器。您需要告诉它您想要哪种类型的分类器(例如 Losgistic 回归)。

以下代码适用于我:

from sklearn.multiclass import OneVsRestClassifier
from sklearn.linear_model import LogisticRegression

classifier = OneVsRestClassifier(LogisticRegression())
classifier.fit(x_train, Y)

X_test= ["I play with Markov chains"]
x_test = vectorizer.transform(X_test)

classifier.predict(x_test)

输出:数组([[0, 1, 1, 0, 0, 1]])

【讨论】:

bert模型做多标签文本分类(代码片段)

...层LSTM提取文本序列特征,然后接一个dropout层防止过拟合,最后激活函数采用sigmoid,或者计算损失的时候使用sigmoid交叉熵损失函数。对于多元分类则激活函数采用softmax,其它没有差别多标签文本分类怎么从单标... 查看详情

如何解决基于 NLP 的 CNN 模型中的过度拟合问题,以使用词嵌入进行多类文本分类?

】如何解决基于NLP的CNN模型中的过度拟合问题,以使用词嵌入进行多类文本分类?【英文标题】:Howdoesonetackleover-fittinginNLPbasedCNNmodelsformulticlasstextclassificationwithwordembeddings?【发布时间】:2021-05-2816:40:44【问题描述】:(问题:... 查看详情

ValueError:未知标签类型:拟合数据时的“连续多输出”

】ValueError:未知标签类型:拟合数据时的“连续多输出”【英文标题】:ValueError:Unknownlabeltype:\'continuous-multioutput\'whenfittingdata【发布时间】:2019-11-0114:27:03【问题描述】:我想使用scikit-learn的MultiOutputClassifier根据一个输入参数... 查看详情

进行多标签分类时的准确率和 F1 分数相同

】进行多标签分类时的准确率和F1分数相同【英文标题】:SameaccuracyandF1scorewhiledoingmultilabelclassification【发布时间】:2019-01-1918:27:13【问题描述】:我根据这个site写了一段代码,做了不同的多标签分类器。我想根据每个班级的准... 查看详情

bert-多标签文本分类实战之一——实战项目总览

[1]总览  【BERT-多标签文本分类实战】系列共七篇文章:  【BERT-多标签文本分类实战】之一——实战项目总览  【BERT-多标签文本分类实战】之二——BERT的地位与名词术语解释  【BERT-多标签文本分类实战】之三—... 查看详情

多标签文本分类《基于标签语义注意力的多标签文本分类》

·阅读摘要:  为了建立标签的语义信息和文档的内容信息之间的联系并加以利用,文章提出了一种基于标签语义注意力的多标签文本分类(LAbelSemanticAttentionMulti-labelClassification,简称LASA)方法。·参考文献:  [1]基... 查看详情

CNN模型在多类分类上过拟合

】CNN模型在多类分类上过拟合【英文标题】:CNNmodeloverfittingonmulti-classclassification【发布时间】:2020-01-0622:29:17【问题描述】:我正在尝试使用GloVe嵌入来训练基于thisarticle的cnn模型(也是一个rnn,它具有thisissue)。数据集是一个... 查看详情

bert模型在多类别文本分类时的precision,recall,f1值的计算(代码片段)

...ERT预训练模型在诸多NLP任务中都取得最优的结果。在处理文本分类问题时,即可以直接用BERT模型作为文本分类的模型,也可以将BERT模型的最后层输出的结果作为wordembedding导入到我们定制的文本分类模型中(如text-CNN等)。总之... 查看详情

为多标签文本分类转换数据集

】为多标签文本分类转换数据集【英文标题】:TransformingaDatasetforMulti-LabelTextClassification【发布时间】:2021-11-0501:51:10【问题描述】:我正在通过深度学习模型进行一些关于多标签分类的实验。但是我遇到了数据集的问题。我使... 查看详情

小白学习pytorch教程十六在多标签分类任务上微调bert模型(代码片段)

...们日常的NLP任务来服务呢?首先介绍使用BERT做文本多标签分类任务。文本多标签分类是常见的NLP任务,文本介绍了如何使用Bert模型完成文本多标签分类,并给出了各自的步骤。参考官方教程:https://pyt 查看详情

bert-多标签文本分类实战之五——bert模型库的挑选与transformers(代码片段)

·请参考本系列目录:【BERT-多标签文本分类实战】之一——实战项目总览·下载本实战项目资源:>=点击此处=<[1]BERT模型库  从BERT模型一经Google出世,到tensorflow与pytorch版本的BERT相继发布,再到不同... 查看详情

bert-多标签文本分类实战之五——bert模型库的挑选与transformers(代码片段)

·请参考本系列目录:【BERT-多标签文本分类实战】之一——实战项目总览·下载本实战项目资源:>=点击此处=<[1]BERT模型库  从BERT模型一经Google出世,到tensorflow与pytorch版本的BERT相继发布,再到不同... 查看详情

bert-多标签文本分类实战之五——bert模型库的挑选与transformers(代码片段)

·请参考本系列目录:【BERT-多标签文本分类实战】之一——实战项目总览·下载本实战项目资源:>=点击此处=<[1]BERT模型库  从BERT模型一经Google出世,到tensorflow与pytorch版本的BERT相继发布,再到不同... 查看详情

多标签分类器中的拟合概率

】多标签分类器中的拟合概率【英文标题】:FitProbabilitiesinMulti-LabelClassifiers【发布时间】:2012-11-0823:26:47【问题描述】:我想使用scikit-learn将其分类为多个类别,如此处所述usescikit-learntoclassifyintomultiplecategories,但我不想返回分... 查看详情

bert-多标签文本分类实战之六——数据加载与模型代码(代码片段)

·请参考本系列目录:【BERT-多标签文本分类实战】之一——实战项目总览·下载本实战项目资源:>=点击此处=<  前5篇文章中,介绍了实战项目的前置知识,下面正式介绍项目的代码。本项目主要分为... 查看详情

bert-多标签文本分类实战之六——数据加载与模型代码(代码片段)

·请参考本系列目录:【BERT-多标签文本分类实战】之一——实战项目总览·下载本实战项目资源:>=点击此处=<  前5篇文章中,介绍了实战项目的前置知识,下面正式介绍项目的代码。本项目主要分为... 查看详情

bert-多标签文本分类实战之六——数据加载与模型代码(代码片段)

·请参考本系列目录:【BERT-多标签文本分类实战】之一——实战项目总览·下载本实战项目资源:>=点击此处=<  前5篇文章中,介绍了实战项目的前置知识,下面正式介绍项目的代码。本项目主要分为... 查看详情

多标签文本分类《融合注意力与cornet的多标签文本分类》

·阅读摘要:  本文主要提出标签与文本注意力+文本注意力、CorNet增强标签预测概率两个创新点,提升了实验精度。·参考文献:  [1]融合注意力与CorNet的多标签文本分类参考论文信息  论文名称:《融... 查看详情