首页 > 解决方案 > 管道 - 类型错误:fit_transform() 接受 2 个位置参数,但给出了 3 个

问题描述

我有一个具有 2 个分类特征和大量二元特征的数据集。我想在一个步骤中作为管道执行标签编码和降维。

我的数据看起来像:

data.head()

ID  X0  X1  X10 X100    X101    X102    X103    X104    X105    ... X90 X91 X92 X93 X94 X95 X96 X97 X98 X99
0   0   k   v   0   0   0   0   0   0   0   ... 0   0   0   0   0   0   0   0   0   0
1   6   k   t   0   1   1   0   0   0   0   ... 0   0   0   0   0   0   1   0   1   0
2   7   az  w   0   0   1   0   0   0   0   ... 0   0   0   0   0   0   1   0   1   0
3   9   az  t   0   0   1   0   0   0   0   ... 0   0   0   0   0   0   1   0   1   0
4   13  az  v   0   0   1   0   0   0   0   ... 0   0   0   0   0   0   1   0   1   0
5 rows × 377 columns

我试过了:

from sklearn.pipeline import Pipeline
from sklearn.preprocessing import LabelEncoder
from sklearn.decomposition import PCA, FastICA

le = LabelEncoder()
pca = PCA(n_components=10, random_state=42)
ica = FastICA(n_components=10, random_state=42)

steps = [('LabelEncoder',le), ('PCA',pca), ('FastICA',ica)]

pipeline = Pipeline(steps)

data = pipeline.fit_transform(data)

...这引发了:

TypeError: fit_transform() 接受 2 个位置参数,但给出了 3 个

帮助将不胜感激。

标签: pythonpandasnumpyscikit-learn

解决方案


推荐阅读