【发布时间】:2017-02-27 01:46:51
【问题描述】:
我按照下面的方式做
import pandas as pd
from sklearn import preprocessing
import sklearn
from sklearn.pipeline import Pipeline
df = pd.DataFrame({'c':['a', 'b', 'c']*4, 'd': ['m', 'f']*6})
encoding_pipeline =Pipeline([
('LabelEncoder', preprocessing.LabelEncoder())
])
encoding_pipeline.fit_transform(df)
和完整的追溯
TypeError Traceback (most recent call last)
<ipython-input-7-0882633ccf59> in <module>()
----> 1 encoding_pipeline.fit_transform(df)
C:\Program Files\Anaconda3\lib\site-packages\sklearn\pipeline.py in fit_transform(self, X, y, **fit_params)
183 Xt, fit_params = self._pre_transform(X, y, **fit_params)
184 if hasattr(self.steps[-1][-1], 'fit_transform'):
--> 185 return self.steps[-1][-1].fit_transform(Xt, y, **fit_params)
186 else:
187 return self.steps[-1][-1].fit(Xt, y, **fit_params).transform(Xt)
TypeError: fit_transform() takes 2 positional arguments but 3 were given
怎么了?看来我必须在应用管道之前转换数据帧
【问题讨论】:
-
有人知道这个问题的答案吗?我想写一个管道LabelEncoder和SVM。
-
@KailashAhirwar 问你自己的问题,然后给我我尝试回答的链接
标签: python pipeline preprocessor