错误的示例
TypeError: fit_transform() takes 2 positional arguments but 3 were given
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import LabelBinarizer
cat = ['序', '日', '新', '说']
pipeline = Pipeline([
('label_binarizer', LabelBinarizer())
])
one_hot = pipeline.fit_transform(cat)
one_hot
"""
TypeError: fit_transform() takes 2 positional arguments but 3 were given
"""

解决
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import LabelBinarizer
# 打个小补丁
LabelBinarizer.__fit_transform = LabelBinarizer.fit_transform
LabelBinarizer.fit_transform = lambda self, X, y=None, **fit_params: LabelBinarizer.__fit_transform(self, X)
cat = ['序', '日', '新', '说']
pipeline = Pipeline([
('label_binarizer', LabelBinarizer())
])
one_hot = pipeline.fit_transform(cat)
one_hot
"""
array([[1, 0, 0, 0],
[0, 0, 1, 0],
[0, 1, 0, 0],
[0, 0, 0, 1]])
"""

版权声明:本文为weixin_44221705原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。