Rückkehr Koeffizienten von Pipeline-Objekt in sklearn
Habe ich Passform eine Pipeline
Objekt mit RandomizedSearchCV
pipe_sgd = Pipeline([('scl', StandardScaler()),
('clf', SGDClassifier(n_jobs=-1))])
param_dist_sgd = {'clf__loss': ['log'],
'clf__penalty': [None, 'l1', 'l2', 'elasticnet'],
'clf__alpha': np.linspace(0.15, 0.35),
'clf__n_iter': [3, 5, 7]}
sgd_randomized_pipe = RandomizedSearchCV(estimator = pipe_sgd,
param_distributions=param_dist_sgd,
cv=3, n_iter=30, n_jobs=-1)
sgd_randomized_pipe.fit(X_train, y_train)
Möchte ich den Zugriff auf die coef_
Attribut des best_estimator_
aber ich bin nicht in der Lage, das zu tun. Ich habe versucht, den Zugriff auf coef_
mit dem code unten.
sgd_randomized_pipe.best_estimator_.coef_
Jedoch bekomme ich die folgende AttributeError...
AttributeError: 'Pipeline' - Objekt hat kein Attribut 'coef_'
Die scikit-learn docs sagen, dass coef_
ist ein Attribut SGDClassifier
, der die Klasse meiner base_estimator_
.
Was mache ich falsch?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie immer die Namen, die Sie zugewiesen, um Sie während der Herstellung der Rohrleitung mithilfe der
named_steps
dict.und dann Zugriff auf alle Attribute wie
coef_
,intercept_
etc. die entsprechenden ausgestattet Schätzer.Dies ist das formale Attribut ausgesetzt, die von der Pipeline als in der Dokumentation angegebenen:
Habe ich gefunden ein Weg dies zu tun ist durch verkettet Indizierung mit
steps
Attribut...sgd_randomized_pipe.best_estimator_.steps[1][1].coef_
Ist dies beste Praxis, oder gibt es einen anderen Weg?
named_steps
Methode oben erläutert, wird bevorzugtIch denke, das sollte funktionieren: