多标签(multilabel)分类

【机器学习】对大规模的文本数据进行多标签的分类处理 本文全面探讨了多标签文本分类在自然语言处理中的应用。我们介绍了其背景、重要性、数据预处理、模型构建、训练和评估过程。通过多层感知器模型,结合ReLU和Sigmoid函数,我们实现了高效的多标签分类。模型在测试集上表现良好,展示了其泛化能力。展望未来,多标签文本分类将受益于模型优化、多任务学习和深度学习技术的发展,但同时需重视模型的可解释性和公平性。随着技术的创新,我们期待该技术将在更多领域展现其应用潜力。 阅读详情

场景

  • 一部电影可以同时属于爱情片和科幻片
  • 一篇文章可以同时包含娱乐和汽车
  • 一张图片可以同时出现猫和狗。
  • 参考网址:https://scikit-learn.org/stable/modules/multiclass.html

多标签二值化

from sklearn.preprocessing import MultiLabelBinarizer
Y = [[], [1], [2], [1, 2]]
print(MultiLabelBinarizer().fit_transform(Y))

打印结果

[[0 0]
 [1 0]
 [0 1]
 [1 1]]

分类器

from sklearn.preprocessing import MultiLabelBinarizer
from sklearn.multiclass import OneVsRestClassifier
from sklearn.tree import DecisionTreeClassifier

# 样本
X = [
    [1, 0, 1, 0], [0, 1, 0, 1], [0, 1, 1, 0], [1, 0, 0, 1],
    [1, 1, 0, 0], [2, 0, 0, 0], [0, 2, 0, 0],
    [0, 0, 1, 1], [0, 0, 2, 0], [0, 0, 0, 2],
    [1, 1, 1, 1], [2, 0, 2, 0], [0, 2, 0, 2],
]
Y = [
    [], [], [], [],
    [1], [1], [1],
    [2], [2], [2],
    [1, 2], [1, 2], [1, 2],
]
X_test = [[1, 0, 0, 0], [0, 0, 0, 1], [3, 0, 3, 3]]
Y_test = [[], [], [1, 2]]

# 标签处理
transformer = MultiLabelBinarizer()
Y = transformer.fit_transform(Y)
Y_test = transformer.transform(Y_test)

# 建模
model = OneVsRestClassifier(DecisionTreeClassifier())
model.fit(X, Y)
print('训练得分:%.2f' % model.score(X, Y), '测试得分:%.2f' % model.score(X_test, Y_test))
print(model.predict(X_test))

打印结果

训练得分:1.00 测试得分:1.00
[[0 0]
 [0 0]
 [1 1]]

各种分类器比较

import warnings
warnings.filterwarnings('ignore')
from sklearn.preprocessing import MultiLabelBinarizer
from sklearn.multiclass import OneVsRestClassifier
from sklearn.naive_bayes import MultinomialNB
from sklearn.tree import DecisionTreeClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.svm import SVC
from sklearn.neural_network import MLPClassifier

# 样本
X = [
    [0, 0, 0, 0], [1, 0, 1, 0], [0, 1, 0, 1], [0, 1, 1, 0], [1, 0, 0, 1],
    [1, 1, 0, 0], [2, 0, 0, 0], [0, 2, 0, 0], [0, 0, 1, 1], [0, 0, 2, 0], [0, 0, 0, 2],
    [1, 1, 1, 1], [2, 0, 2, 0], [0, 2, 0, 2], [2, 0, 0, 2], [0, 2, 2, 0]
]
Y = [
    [], [], [], [], [],
    [1], [1], [1], [2], [2], [2],
    [1, 2], [1, 2], [1, 2], [1, 2], [1, 2]
]
X_test = [[1, 0, 0, 0], [0, 0, 0, 1], [3, 0, 3, 3], [0, 3, 0, 0]]
Y_test = [[], [], [1, 2], [1]]

# 多标签二值化
transformer = MultiLabelBinarizer()
Y = transformer.fit_transform(Y)
Y_test = transformer.transform(Y_test)

# 建模
for clf in [MultinomialNB, DecisionTreeClassifier, LogisticRegression, SVC, MLPClassifier]:
    model = OneVsRestClassifier(clf())
    model.fit(X, Y)
    print(clf.__name__, model.score(X, Y), model.score(X_test, Y_test))
    # print(model.predict(X_test))

打印结果

MultinomialNB 0.75 0.25
DecisionTreeClassifier 1.0 1.0
LogisticRegression 0.75 0.5
SVC 1.0 1.0
MLPClassifier 1.0 1.0

文本分类

from jieba import cut
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.preprocessing import MultiLabelBinarizer
from sklearn.multiclass import OneVsRestClassifier
from sklearn.linear_model import LogisticRegression

# 样本
X = '''
某女星代言小米手机
小米手机预售价2000元
某女星片酬2000万
月入2000元
'''.strip().split()
Y = [
    ['娱乐', '手机'],
    ['手机'],
    ['娱乐'],
    [],
]
X_test = '''
2000元
某女星买2000元的小米手机
'''.strip().split()
Y_test = [[], ['娱乐', '手机']]

# 文本向量化
vectorizer = TfidfVectorizer(tokenizer=cut)
X = vectorizer.fit_transform(X)
X_test = vectorizer.transform(X_test)

# 多标签二值化
transformer = MultiLabelBinarizer()
Y = transformer.fit_transform(Y)
Y_test = transformer.transform(Y_test)

# 建模
model = OneVsRestClassifier(LogisticRegression())
model.fit(X, Y)
print('训练得分:%.2f' % model.score(X, Y), '测试得分:%.2f' % model.score(X_test, Y_test))
print(model.predict_proba(X_test))

打印结果

训练得分:1.00 测试得分:1.00
[[0.39389651 0.45297039]
 [0.51392277 0.54656221]]
多标签分类(multilabel classification ) 这几天看了几篇相关的文章, 写篇文章总结一下,就像个小综述一样, 文章会很乱    1、multilabel classification的用途          多标签分类问题很常见, 比如一部电影可以同时被分为动作片和犯罪片, 一则新闻可以同时属于政治和法律,还有生物学中的基因功能预测问题, 场景识别问题,疾病诊断等。   2. 单标签分类          在传统的单标签分类中,训练 阅读详情

相关推荐

使用KNN模型进行多标签分类实战(Multilabel Classification)

使用KNN模型进行多标签分类实战(Multilabel Classification) 在某些情况下,我们希望我们的分类器在每个实例中输出多个类(例如图像中的人脸识别)。 当它在一张图片中认出几个人时该怎么办? 或者、一个电影可能既是动作片片同时又是西部片,adios amigo 或者、一则热点新闻,可以同时属于体育和法律,例如,西方裁判明显不公平的判罚、或者随意的禁赛; 或者,一个人可能同时有高血压、高血糖、高血脂; 这种输出多个相加不一定等于1的二进制分数的系统称为多标签分类器。

data+scenario+science+insight 1511

Scikit-learn数据预处理分类变量编码之多标签二值化

Scikit-learn数据预处理分类变量编码之多标签二值化 1 声明 本文的数据来自网络,部分代码也有所参照,这里做了注释和延伸,旨在技术交流,如有冒犯之处请联系博主及时处理。 2 名义变量多标签二值化编码简介 名义变量(特征)是(nominal features)分类变量的一种,变量间没用次序和等级之分。比如性别的男、女;民族的汉族、回族、傣族等。 多标签二值编码(MultiLabelBinarizer)可以将该类型的变量(多标签)以二值的形式表示。...

数据科学汇集 1418

PaddleOCR PP-OCRv5实战:5分钟搞定身份证信息提取(附完整代码)

本文详细介绍了如何利用PaddleOCR的PP-OCRv5模型,在5分钟内快速搭建身份证信息提取流程。文章从环境搭建、核心代码实战出发,深入解析了PP-OCRv5针对证件识别的优化特性,并提供了从OCR结果到结构化数据的完整处理方案与避坑指南,帮助开发者高效实现AI驱动的自动化信息提取。

salt9的博客 784

MLP多标签分类实现-tensorflow

#!/usr/bin/env python # -*- coding: utf-8 -*- """ @Time : 2022/3/11 14:33 @Author : @File : tf_ml_label.py @ desc: """ import platform import math import tensorflow as tf import time import os import sys import numpy as np import pandas as pd from.

u011412768的博客 2229

工作中SVN的使用,保姆级教程!

SVN是一款集中式版本控制系统,采用客户端-服务器模式管理代码版本。与Git相比,SVN在目录权限控制、大型二进制文件处理等方面具有优势,适合特定场景使用。本文介绍了SVN的安装方法、基本操作(检出、提交、更新、回滚等)以及分支管理(创建、合并、切换)。同时讲解了文件冲突的解决方法,并演示了如何在IDEA中集成SVN工具。SVN虽然逐渐被Git取代,但在某些特定场景下仍是可靠选择,工具选择应基于团队和项目需求。

胜人者有力,自胜者强! 1856

告别黑窗口:XShell+X11转发图形化界面的5分钟保姆级教程(附Xming配置)

本文详细介绍了如何使用XShell和X11转发技术快速实现Linux图形化界面的远程访问。通过5分钟快速配置指南,包括服务端设置、客户端工具选择及XShell+Xming的完美配置,帮助用户高效运行GUI应用程序,提升远程工作效率。特别适合需要图形化操作的开发者和运维人员。

weixin_29223603的博客 328

MultiLabelBinarizer详解

多标签分类格式 对于多标签分类问题而言,一个样本可能同时属于多个类别。如一个新闻属于多个话题。这种情况下,因变量yy需要使用一个矩阵表达出来。 而多类别分类指的是y的可能取值大于2,但是y所属类别是唯一的。它与多标签分类问题是有严格区别的。所有的scikit-learn分类器都是默认支持多类别分类的。但是,当你需要自己修改算法的时候,也是可以使用scikit-learn实现多类别分类的前...

程序认生 1万+

Mimics 21.0软件学习笔记(一)基本操作

Materialise Mimics 21.0打开工程窗口化Thresholding 二值化Region growing区域增长创建一个3D表示,并显示股骨头从髋臼中区分出来,并单独为股骨头建立3D模型 打开工程 Opening the Project 窗口化 Windowing 二值化 Thresholding 区域增长 Region Growing 建立 3D 表示 Creating a 3D representation 显示 3D 表示 Displaying a 3D representation

qq_35495464的博客 4万+

【深度学习】分类问题探究(多标签分类转为多个二分类,等)

【深度学习】分类问题探究(多标签分类转为多个二分类,等)

Danger的博客 6415

Open3D——RANSAC 三维点云空间直线拟合【2025最新版】

使用RANSAC算法在点云数据中拟合三维空间直线的python代码实现。博客长期更新,本文最新更新时间为:2025年3月23日。

点云侠的博客 7354

PCB Layout工程师核心能力与实战进阶指南

PCB Layout是电子硬件从原理图到物理实现的关键环节,本质是将电路逻辑转化为受电磁场、热力学与制造工艺约束的三维空间结构。其设计质量直接决定信号完整性(SI)、电源完整性(PI)和电磁兼容性(EMC)等核心性能指标。随着高速接口(如PCIe Gen5、USB3.2)、高密度封装(BGA微间距、HDI)及车规/工业级可靠性要求提升,Layout已从‘连线’演进为多目标协同优化的系统工程。掌握Altium Designer等EDA工具、理解叠层设计与DFM规则、具备SI/PI仿真意识,并能贯通芯片Data

weixin_42589700的博客 87

Scikit learn Sample3—Multilabel classification(多标签分类)

此示例模拟多标签文档分类问题。 数据集是基于以下过程随机生成的: pick the number of labels: n ~ Poisson(n_labels) 选择标签数量:n~泊松(n_labels) n times, choose a class c: c ~ Multinomial(theta)  n次,选择一个类c:c~多项(theta) pick the document le...

by壮壮的小仙女呀! 1583

MOS五类漏电流与优化策略

分析了五种主要漏电流机制:1)反偏结泄漏,由PN结热激发和隧

硬核科技 445

sklearn学习:make_multilabel_classification——多标签数据集方法

Generate a random multilabel classification problem. For each sample, the generative process is: pick the number of labels: n ~ Poisson(n_labels):选取标签的数目 n times, choose a class c: c ~ Multinomia

n889092的博客 9053

【实战项目开发技术分享】机器人安全通过狭窄区域的方案

在机器人的应用领域中,有时会遇到需要机器人通过狭窄区域的情况。无论是室内还是室外,机器人需要具备适应性和灵活性,以便在狭窄的空间中进行安全、高效的导航。本文将提供一些如何让机器人通过狭窄区域的实现方案和思路,希望帮助读者可以根据实际的开发需要进行适当调整和扩展。

xiewf的博客 2万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

使用GitCode上的Vehicle-Car-detection-and-multilabel-classification项目进行车辆检测与多标签分类

在上,CaptainEven分享了一个名为"Vehicle-Car-detection-and-multilabel-classification"的开源项目。该项目利用深度学习技术,旨在实现对图像中的车辆进行精准的检测和多种属性(如品牌、颜色)的多标签分类。 ## 技术分析 ### 模型框架 项目基于主流的深度学习框架TensorFlow,采用了YOLOv3(You Only Look O

gitblog_00054的博客 586

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

多标签分类(multilabel classification ) 这几天看了几篇相关的文章, 写篇文章总结一下,就像个小综述一样, 文章会很乱    1、multilabel classifica

这几天看了几篇相关的文章, 写篇文章总结一下,就像个小综述一样, 文章会很乱 1、multilabel classification的用途 多标签分类问题很常见, 比如一部电影可以同时被分为动作片和犯罪片, 一则新闻可以同时属于政治和法律,还有生物学中的基因功能预测问题, 场景识别问题,疾病诊断等。 2. 单标签分类 在传统的单标签分类中,训...

Norstc的博客 906

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Multilabel classification(多标签分类 SVM) -- sklearn

这个例子模拟了多标签文档分类问题。基于以下过程随机生成数据集: pick the number of labels: n ~ Poisson(n_labels)    提取的标签的数量:n~泊松(n_labels) n times, choose a class c: c ~ Multinomial(theta)    n次,选择类c:c~多项式(theta) pick the docume...

平凡 1万+

multi-class(多分类),multi-label(多标签)问题的区别

转载,原文出处 最近做多分类问题,寻找对于多分类的评价方法,在看到label cardinality时偶然发现样本可以同时属于两个类别,才知道multi-calss classification 和nulti-label classification不不同,下面内容转载于某篇博文 一直很纠结Multi-class, Multi-label 以及 Multi-task 各自的区别和联系,

u012836354的博客 1万+

【sklearn】多标签数据集-精讲篇

摘要:工欲善其事,必先利其器。本文介绍了scikit-learn中常用的数据生成方法,包括make_blobs、make_classification等单标签数据集生成工具。这些方法可以创建不同复杂度的人工数据集,用于分类、聚类等任务测试。并通过可视化展示不同生成器产生的数据分布特点。实际上scikit-learn内置了很多可以用于机器学习的数据,用于 回归任务,这些数据集-线性回归,逻辑回归,SVM支持向量机,随机森林,决策树等大模型等分类,识别和预测,适用于 机器学习算法测试和特征工程研究。

精益求精 1084

多标签分类难题?PyCM的Multilabel-CM模块让评估从未如此简单

在机器学习模型评估领域,多标签分类任务一直是数据科学家面临的重大挑战。PyCM作为一款功能强大的Python多类混淆矩阵库,其Multilabel-CM模块为解决这一难题提供了全面而高效的解决方案。本文将深入介绍如何利用PyCM的Multilabel-CM模块轻松应对多标签分类评估的复杂场景,帮助你快速提升模型评估效率。 ## 多标签分类评估的核心痛点 多标签分类与传统单标签分类有着本质区别,

gitblog_00758的博客 385
上一篇: 大数据(8r)图解流计算window滑窗
下一篇: Keras【极简】ACGAN
小基基o_O
博客等级 码龄9年 4414粉丝 467原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小基基o_O

您的鼓励是我创作的巨大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值