Ich möchte PCA und SVM zu einer Pipeline kombinieren, um die beste Kombination von Hyperparametern in einer GridSearch zu finden.Kombinieren von Hauptkomponentenanalyse und Support Vector Machine in einer Pipeline
Der folgende Code
from sklearn.svm import SVC
from sklearn import decomposition, datasets
from sklearn.pipeline import Pipeline
from sklearn.model_selection import GridSearchCV
digits = datasets.load_digits()
X_train = digits.data
y_train = digits.target
#Use Principal Component Analysis to reduce dimensionality
# and improve generalization
pca = decomposition.PCA()
# Use a linear SVC
svm = SVC()
# Combine PCA and SVC to a pipeline
pipe = Pipeline(steps=[('pca', pca), ('svm', svm)])
# Check the training time for the SVC
n_components = [20, 40, 64]
svm_grid = [
{'C': [1, 10, 100, 1000], 'kernel': ['linear']},
{'C': [1, 10, 100, 1000], 'gamma': [0.001, 0.0001], 'kernel': ['rbf']},
]
estimator = GridSearchCV(pipe,
dict(pca__n_components=n_components,
svm=svm_grid))
estimator.fit(X_train, y_train)
Ergebnisse in einem
AttributeError: 'dict' object has no attribute 'get_params'
Es gibt wohl svm_grid
etwas falsch mit der Art, wie ich zu definieren und verwenden. Wie kann ich diese Parameterkombination korrekt an GridSearchCV übergeben?