Я новичок в sklearn Pipeline и следую примеру кода. Я видел в других примерах, что мы можем сделать pipeline.fit_transform(train_X)
, так что я попробовал то же самое на трубопроводе здесь pipeline.fit_transform(X)
, но он дал мне .transform ошибкуПочему в файле sklearn Pipeline не работает функция fit_transform?
"Возвращение self.fit (X, ** fit_params) (X)
TypeError: годный() занимает ровно 3 аргумента (2 дано)»
Если удалить SVM часть и определил, как трубопровод pipeline = Pipeline([("features", combined_features)])
, я до сих пор видел ошибку.
Кто знает, почему fit_transform
не работает здесь?
from sklearn.pipeline import Pipeline, FeatureUnion
from sklearn.grid_search import GridSearchCV
from sklearn.svm import SVC
from sklearn.datasets import load_iris
from sklearn.decomposition import PCA
from sklearn.feature_selection import SelectKBest
iris = load_iris()
X, y = iris.data, iris.target
# This dataset is way to high-dimensional. Better do PCA:
pca = PCA(n_components=2)
# Maybe some original features where good, too?
selection = SelectKBest(k=1)
# Build estimator from PCA and Univariate selection:
combined_features = FeatureUnion([("pca", pca), ("univ_select", selection)])
# Use combined features to transform dataset:
X_features = combined_features.fit(X, y).transform(X)
svm = SVC(kernel="linear")
# Do grid search over k, n_components and C:
pipeline = Pipeline([("features", combined_features), ("svm", svm)])
param_grid = dict(features__pca__n_components=[1, 2, 3],
features__univ_select__k=[1, 2],
svm__C=[0.1, 1, 10])
grid_search = GridSearchCV(pipeline, param_grid=param_grid, verbose=10)
grid_search.fit(X, y)
print(grid_search.best_estimator_)
В примерах, которые я вижу, они всегда предоставляют также некоторые параметры для 'GridSearchCV'. Может быть, это те, которых нет? – Bakuriu
В какой строке это исключение происходит? – miindlek
Это произошло, если я запустил 'конвейер.fit_transform (X)' после 'pipe = Pipeline ([(" features ", combination_features), (" svm ", svm)]) –