0

我正在尝试进行多标签分类。但我真的被困在数据预处理上。我的目标数据在一个单独的文件中。目标数据如下所示

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

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

ID 数据 C# 表格 类型转换 十进制
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]]

我究竟做错了什么?

4

1 回答 1

1

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

改用pd.crosstab

pd.crosstab(df['Id'], df['Tag'])
于 2021-01-06T17:50:39.050 回答