使用多LabelBinarizer python进行解码

使用多LabelBinarizer python进行解码,python,scikit-learn,multilabel-classification,Python,Scikit Learn,Multilabel Classification,我的目标是一个如下所示的数据帧,使用MultiLabelBinarizer对我的数据帧(每行一次)进行编码效果良好,而解码总是以错误的顺序输出数据 下面是一个简单的数据帧(我的目标y): 来自sklearnwebiste的示例 from sklearn.preprocessing import MultiLabelBinarizer mlb = MultiLabelBinarizer() encoded = mlb.fit_transform([['sci-fi', 'thriller', 'c

我的目标是一个如下所示的数据帧,使用MultiLabelBinarizer对我的数据帧(每行一次)进行编码效果良好,而解码总是以错误的顺序输出数据

下面是一个简单的数据帧(我的目标y):

来自sklearnwebiste的示例

from sklearn.preprocessing import MultiLabelBinarizer
mlb = MultiLabelBinarizer()
encoded = mlb.fit_transform([['sci-fi', 'thriller', 'comedy']])
mlb.inverse_transform(encoded)

Ouput:
array(['comedy''sci-fi','thriller'])

The desired output should be:
['sci-fi', 'thriller', 'comedy']  ** NOT ** ['comedy''sci-fi','thriller']

尝试打印编码的变量。我相信您遇到的问题是,该函数正在将字符串“sci-fi”转换为一系列字符。函数“fit transform”将“iterable of iterables”作为输入

如果我是正确的,那么简单的解决方法是:

encoded = mlb.fit_transform([['sci-fi'], ['thriller'], ['comedy']])

谢谢,但这绝对不是正确的答案/理由。请试一下你的答案,例如Jupyter
encoded = mlb.fit_transform([['sci-fi'], ['thriller'], ['comedy']])