具有重复项的类的多标签编码

2024-04-25 07:59:20 发布

您现在位置:Python中文网/ 问答频道 /正文

如何对具有重复项的列表列进行n-hot编码?在

类似sklearn中的MultiLabelBinarizer的东西,它统计重复类的实例数,而不是二进制化。在

输入示例:

x = pd.Series([['a', 'b', 'a'], ['b', 'c'], ['c','c']])

预期产量:

^{pr2}$

Tags: 实例示例编码列表二进制sklearnseriespd
1条回答
网友
1楼 · 发布于 2024-04-25 07:59:20

我基于MultiLabelBinarizer代码编写了一个新的类MultiLabelCounter。在

import itertools
import numpy as np

class MultiLabelCounter():
    def __init__(self, classes=None):
        self.classes_ = classes

    def fit(self,y):
        self.classes_ = sorted(set(itertools.chain.from_iterable(y)))
        self.mapping = dict(zip(self.classes_,
                                         range(len(self.classes_))))
        return self

    def transform(self,y):
        yt = []
        for labels in y:
            data = [0]*len(self.classes_)
            for label in labels:
                data[self.mapping[label]] +=1
            yt.append(data)
        return yt

    def fit_transform(self,y):
        return self.fit(y).transform(y)
^{pr2}$

相关问题 更多 >