python多标签分类_如何通过sklearn实现多标签分类?

sklearn支持多类别(Multiclass)分类和多标签(Multilabel)分类:多类别分类:超过两个类别的分类任务。多类别分类假设每个样本属于且仅属于一个标签,类如一个水果可以是苹果或者是桔子但是不能同时属于两者。

多标签分类:给每个样本分配一个或多个标签。例如一个新闻可以既属于体育类,也属于文娱类。

sklearn的官方文档给出了支持多标签分类的类,包括如下:

以决策树举例,给出如下实现过程

数据准备

from sklearn.datasets import 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 ~ Multinomial(theta)

# pick the document length: k ~ Poisson(length)

k times, choose a word: w ~ Multinomial(theta_c)

X, Y = datasets.make_multilabel_classification(n_samples=10, n_features=5, n_classes=3, n_labels=2)

生成的X和Y为如下形式的数据:

分类

from sklearn.model_selection import train_test_split

from sklearn.tree import DecisionTreeClassifier

# Split dataset to 8:2

X_train, X_test, Y_train ,Y_test = train_test_split(X, Y, test_size=0.2)

cls = DecisionTreeClassifier()

cls.fit(X_train, Y_train)

多标签分类评估

from sklearn import metrics

Y_pred = cls.predict(X_test)

Y_test和Y_pred值如下:

metrics.f1_score(Y_test, Y_pred, average="macro")

# 0.666

metrics.f1_score(Y_test, Y_pred, average="micro")

# 0.8

metrics.f1_score(Y_test, Y_pred, average="weighted")

# 1.0

metrics.f1_score(Y_test, Y_pred, average="samples")

# 0.4

概率预测

Y_prob = cls.predict_proba(X_test)

X_test和Y_prob值如下:predict_proba(X)

X:array-like or sparse matrix of shape = [n_samples, n_features]

RETURN:array of shape = [n_samples, n_classes], or a list of n_outputs

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/567569.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

练习ddt-file_data时,报错UnboundLocalError local variable ‘value‘ referenced before assignment

错误原因就是,在xx.yml中的内容无效 更改之前: 更改之后: 注意冒号后面要有空格 改完之后运行就能正确读取到了

python筛选数据求均值_Python Pandas实现数据分组求平均值并填充nan的示例

Python实现按某一列关键字分组,并计算各列的平均值,并用该值填充该分类该列的nan值。DataFrame数据格式fillna方式实现groupby方式实现DataFrame数据格式以下是数据存储形式:fillna方式实现1、按照industryName1列,筛选出业绩2、筛…

HTMLTestRunner.py内容

HTMLTesstRunner.py 修改后内容如下: """ A TestRunner for use with the Python unit testing framework. It generates a HTML report to show the result at a glance.The simplest way to use this is to invoke its main method. E.g.import u…

卷积神经网络原理_人脸识别背后,卷积神经网络的数学原理原来是这样的

在自动驾驶、医疗以及零售这些领域,计算机视觉让我们完成了一些直到最近都被认为是不可能的事情。卷积神经网络可能是这一巨大成功背后的关键组成模块。这次,我们将要使用卷积神经网络的思想来拓宽我们对神经网络工作原理的理解。简介过去我们接触到了密…

unittest读取ddt之-元组,嵌套元组,字典

注: (1)ddt数据驱动中,测试用例的执行次数是由data()传参的个数决定。传几个参数,就是执行几次测试用例。 (2)如果传的是多个元组(列表),那么可…

负载均衡策略_常见的负载均衡策略

轮询(Round Robin): 这种方法就会将收到的请求循环分配到服务器集群中的每台机器,即有效服务器。如果使用这种方式,所有的标记进入虚拟服务的服务器应该有相近的资源容量以及敷在相同的应用程序。如果所有的服务有相同或者相近的性能那么选择…

unittest-读取yaml文件

注: (1)yaml文件详解 yaml是一种数据格式,类似txt,excel,json 它只有两种数据类型: map对象(键值对,冒号后需要有空格) list列表对象,以-开头 读取之后是一个不定长…

白盒测试-修正条件判定覆盖

当程序中的判定语句包含多个条件时,运用多条件覆盖方法进行测试,其条件取值组合数目是非常大的。 修正条件判定覆盖要求在一个程序中每一种输入输出至少得出现一次,在程序中的每一个条件必须产生所有可能的输出结果至少一次,并且…

springboot整合shiro_Springboot整合Shiro:简洁的身份认证

简单的web应用进行身份认证的流程:1.对未认证的用户请求进行拦截,跳转到认证页面。2.用户通过用户名密码及其他凭证进行身份认证,认证成功跳转成功页面,认证失败提示相关失败信息。根据流程,采用shiro进行快速开发。1.…

python回车键绑定按钮_python tkinter 绑定回车键

# _*_ coding:utf-8_*_from Tkinter import *def submit(ev None):p.set(u.get())root Tk()root.title("测试")frame Frame(root)frame.pack(padx8, pady8, ipadx4)lab1 Label(frame, text"获取:")lab1.grid(row0, column0, padx5, pady5, stickyW)#绑…

2024年【安全生产监管人员】考试及安全生产监管人员模拟考试题库

题库来源:安全生产模拟考试一点通公众号小程序 2024年【安全生产监管人员】考试及安全生产监管人员模拟考试题库,包含安全生产监管人员考试答案和解析及安全生产监管人员模拟考试题库练习。安全生产模拟考试一点通结合国家安全生产监管人员考试最新大纲…

PICT工具安装使用

1、安装PICT 通过下载安装包pict33.msi, 链接:https://pan.baidu.com/s/1YWIA5XLNI0MMFkiQ-EqZ9w 提取码:ho7g 解压安装,安装成功后验证:打开cmd命令终端,输入pict显示如下即证明安装成功。 2、新建Mod…

茜在人名可以读xi吗_甘肃中专学校:初中毕业可以读大专吗?

初中毕业到兰州中专学校可以读大专吗?许多学生因为成绩的关系可能没能上普通高中,但是他们现在还不具备任何的专业知识和能力进入社会。很多孩子都想通过读大专具备进入社会的能力,那么初中毕业的学生是否能够读大专呢?成人高考初中毕业之后是可以读大…

测试用例设计思路

测试用例编写思路: 首先是明确测试范围: 接口测试 功能测试 界面测试(界面友好性、易用性、一致性) 兼容性测试(不同类型、型号手机、系统(手机系统、桌面系统)、分辨率、浏览器及其版本&a…

sql backup database备份d盘_SQL数据库备份概述

数据库备份方式概述为了防止意外删除,自然灾害等造成的损失,数据库备份是必须要的。数据库备份还可以用于mirror,replication等过程。了解数据库备份的原理对于处理数据库备份尤为重要。以下关于备份的概述只是前段时间兴起而写,由…

导入与上传

数据导入(Excel): 1、 下载模板(.xls)文件:将事先准备好的模板导入 2、 用户根据模板填写数据; 3、 用户上传数据->导入。 图片上传:图片(文件)上传:一般不会把图片…

python数字位数重排_Python面试题:给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数...

题目&#xff1a;方法&#xff1a;class Solution:def cmp(self,x,y):return (x > y) - (x < y)def comper(self,x,nums):temp 0for n in nums:n str(n)temp self.cmp(int(xn),int(nx))#print(self.cmp(int(x),n))return tempdef largestNumber(self, nums):"&qu…

选择嵌套_如何优雅地在JavaScript中访问嵌套对象

在JavaScript中访问嵌套对象以超酷的方式安全地访问JavaScript中的嵌套对象JavaScript是惊人的&#xff0c;我们都知道。但是JavaScript中的一些东西真的很奇怪&#xff0c;它们让我们大开眼界。其中一个问题是当您尝试访问嵌套对象时与此错误的对抗&#xff0c;无法读取未定义…

python各进制的表述与转换

目录 进制的表示 进制的转换 bin() 十进制转二进制 oct() 十进制转八进制 hex() 十进制转十六进制 int(a,R) R进制数a(必须为字符串类型)转换成十进制 十进制小数转R进制 R进制小数转十进制 进制的表示 二进制&#xff1a;0b 八进制&#xff1a;0o 十六进制&#x…

迭代器 java_百战程序员:Java设计模式之迭代器模式

迭代器是针对集合对象而生的&#xff0c;对于集合对象而言&#xff0c;必然涉及到集合元素的添加删除操作&#xff0c;同时也肯定支持遍历集合元素的操作&#xff0c;我们此时可以把遍历操作也放在集合对象中&#xff0c;但这样的话&#xff0c;集合对象就承担太多的责任了&…