微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 MultiLabelBinarizer 进行多标签分类?

如何解决如何使用 MultiLabelBinarizer 进行多标签分类?

我正在尝试进行多标签分类。但我真的坚持数据预处理。我的目标数据在一个单独的文件中。目标数据是这样的

   Id              Tag
0   1             data
1   4               c#
2   4         winforms
3   4  type-conversion
4   4          decimal

我正在尝试使用 MultiLabelBinarizer 来预处理数据。最后,我希望它看起来像这样 -

ID 数据 c# winforms 类型转换 十进制
1 1 0 0 0 0
4 0 1 1 1 1

这是我正在使用的代码

import pandas as pd
from sklearn.preprocessing import MultiLabelBinarizer

question_tags = pd.read_csv("./archive/question_tags.csv")
print(question_tags.head())
mlb = MultiLabelBinarizer()
print(mlb.fit_transform(question_tags))

这是我得到的输出

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

我做错了什么?

解决方法

你没有做错任何事。 MultiLabelBinarizer() 与大多数其他 sklearn 内容一样,返回 numpy 数组。在这种情况下,基础数据看起来与您的预期输出相同,没有 IDTag 名称。

改用pd.crosstab

pd.crosstab(df['Id'],df['Tag'])

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。