Sie können GridSearchCV verwenden, nicht nur den besten Schätzer zu wählen, sondern auch den Hyper abzustimmen, zum Beispiel, ich bin mit diesem dem besten Text-Klassifikator für die Suche:
pipeline = Pipeline([
('vect', CountVectorizer(ngram_range=(2,2))),
('tfidf', TfidfTransformer(use_idf=True)),
('clf', SVC())
])
parameters = {'clf': [
SVC(),
MultinomialNB(),
BernoulliNB(),
MLPClassifier(max_iter=1000),
KNeighborsClassifier(),
SGDClassifier(max_iter=1000),
RandomForestClassifier()
]}
gs_clf = GridSearchCV(pipeline, parameters, n_jobs=-1)
gs_clf = gs_clf.fit(X, y)
print("Best score", gs_clf.best_score_)
for param_name in sorted(parameters.keys()):
print("%s: %r" % (param_name, gs_clf.best_params_[param_name]))
Beispiel von den offiziellen Dokumenten : http://scikit-learn.org/stable/auto_examples/plot_compare_reduction.html#sphx-glr-auto-examples-plot-compare-reduction-py
Sie können Ihre eigene Scoring-Funktion selbst definieren, was „beste“ bedeutet für Sie zu definieren: http://scikit-learn.org/stable/modules/model_evaluation.html#scoring-parameter
ich denke du meinst ein Ensemble Methode http://scikit-learn.org/stable/modules/de semble.html? Aber ich bin durch deine Frage verwirrt. Cross_validation wird durch aggregierte Beispiele abgeleitet, sodass die Auswahl des besten basierend auf dem cross_validation-Fehler etwas wäre, was Sie bei der Vorverarbeitung und beim Testen tun würden, wenn Sie letztendlich einen besten Klassifikator auswählen. Wenn Sie nicht danach sind, können Sie die Frage klären? – gbtimmon
Normalerweise würde ich die Leistung verschiedener Schätzer mit Kreuzvalidierung testen. Dann würde ich manuell die besten Ergebnisse für die endgültigen Vorhersagen auswählen. Jetzt möchte ich meinen gesamten Workflow mit sklearn-Pipelines implementieren, also muss dieser letzte Schritt von einer Klasse durchgeführt werden, die auch die Schätzer-Schnittstelle implementiert, glaube ich. Ich glaube nicht, dass "Ensemble-Methoden" die richtige Antwort sind - Vorhersagen sollten nicht kombiniert werden. – clstaudt
IMO, Scikit enthält nichts, was Sie wollen. Aber Sie können Hinweise von hier nehmen: http://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html#sphx-glr-auto-examples-classification-plot-classifier-comparison-py –