2024-04-25 07:59:20 发布
网友
如何对具有重复项的列表列进行n-hot编码?在
类似sklearn中的MultiLabelBinarizer的东西,它统计重复类的实例数,而不是二进制化。在
MultiLabelBinarizer
输入示例:
x = pd.Series([['a', 'b', 'a'], ['b', 'c'], ['c','c']])
预期产量:
我基于MultiLabelBinarizer代码编写了一个新的类MultiLabelCounter。在
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)
我基于MultiLabelBinarizer代码编写了一个新的类
^{pr2}$MultiLabelCounter
。在相关问题 更多 >
编程相关推荐