HalvingGridSearchCV#

class sklearn.model_selection.HalvingGridSearchCV(estimator, param_grid, *, factor=3, resource='n_samples', max_resources='auto', min_resources='exhaust', aggressive_elimination=False, cv=5, scoring=None, refit=True, error_score=nan, return_train_score=True, random_state=None, n_jobs=None, verbose=0)[Quelle]#

Suche nach angegebenen Parameterwerten mit sukzessiver Halbierung.

Die Suchstrategie beginnt mit der Evaluierung aller Kandidaten mit einer geringen Menge an Ressourcen und wählt iterativ die besten Kandidaten aus, wobei mehr und mehr Ressourcen verwendet werden.

Lesen Sie mehr im Benutzerhandbuch.

Hinweis

Dieser Estimator ist derzeit noch experimentell: die Vorhersagen und die API können sich ohne einen Deprecation Cycle ändern. Um ihn zu verwenden, müssen Sie explizit enable_halving_search_cv importieren

>>> # explicitly require this experimental feature
>>> from sklearn.experimental import enable_halving_search_cv # noqa
>>> # now you can import normally from model_selection
>>> from sklearn.model_selection import HalvingGridSearchCV
Parameter:
estimatorEstimator-Objekt

Es wird angenommen, dass dies die scikit-learn-Estimator-Schnittstelle implementiert. Entweder muss der Estimator eine score Funktion bereitstellen, oder scoring muss übergeben werden.

param_griddict oder Liste von Dictionaries

Dictionary mit Parameternamen (String) als Schlüssel und Listen von Parameter-Einstellungen zum Ausprobieren als Werte, oder eine Liste solcher Dictionaries, in welchem Fall die von jedem Dictionary in der Liste aufgespannten Gitter durchsucht werden. Dies ermöglicht die Suche über jede Sequenz von Parameter-Einstellungen.

factorint oder float, Standardwert=3

Der Parameter „Halving“, der den Anteil der Kandidaten bestimmt, die für jede nachfolgende Iteration ausgewählt werden. Zum Beispiel bedeutet factor=3, dass nur ein Drittel der Kandidaten ausgewählt wird.

resource'n_samples' oder str, Standardwert=’n_samples’

Definiert die Ressource, die mit jeder Iteration zunimmt. Standardmäßig ist die Ressource die Anzahl der Samples. Sie kann auch auf jeden Parameter des Basis-Estimators gesetzt werden, der positive ganzzahlige Werte akzeptiert, z. B. „n_iterations“ oder „n_estimators“ für einen Gradient Boosting Estimator. In diesem Fall kann max_resources nicht „auto“ sein und muss explizit gesetzt werden.

max_resourcesint, Standardwert=’auto’

Die maximale Ressource, die jeder Kandidat für eine gegebene Iteration verwenden darf. Standardmäßig ist dies auf n_samples gesetzt, wenn resource='n_samples' (Standard), andernfalls wird ein Fehler ausgelöst.

min_resources{‘exhaust’, ‘smallest’} oder int, Standardwert=’exhaust’

Die minimale Ressource, die jeder Kandidat für eine gegebene Iteration verwenden darf. Äquivalent dazu definiert dies die Ressourcengröße r0, die jedem Kandidaten in der ersten Iteration zugewiesen wird.

  • ‘smallest’ ist eine Heuristik, die r0 auf einen kleinen Wert setzt

    • n_splits * 2 wenn resource='n_samples' für ein Regressionsproblem

    • n_classes * n_splits * 2 wenn resource='n_samples' für ein Klassifizierungsproblem

    • 1 wenn resource != 'n_samples'

  • ‘exhaust’ setzt r0 so, dass die letzte Iteration so viele Ressourcen wie möglich verwendet. Insbesondere verwendet die letzte Iteration den höchsten Wert, der kleiner als max_resources ist und sowohl ein Vielfaches von min_resources als auch von factor ist. Im Allgemeinen führt die Verwendung von 'exhaust' zu einem genaueren Estimator, ist aber etwas zeitaufwändiger.

Beachten Sie, dass die in jeder Iteration verwendete Ressourcengröße immer ein Vielfaches von min_resources ist.

aggressive_eliminationbool, Standardwert=False

Dies ist nur relevant, wenn nicht genügend Ressourcen vorhanden sind, um die verbleibenden Kandidaten nach der letzten Iteration auf maximal factor zu reduzieren. Wenn True, dann wird der Suchprozess die erste Iteration so lange „wiederholen“, bis die Anzahl der Kandidaten klein genug ist. Dies ist standardmäßig False, was bedeutet, dass die letzte Iteration mehr als factor Kandidaten auswerten kann. Weitere Details finden Sie unter Aggressive Eliminierung von Kandidaten.

cvint, Kreuzvalidierungsgenerator oder Iterable, Standardwert=5

Bestimmt die Strategie der Kreuzvalidierungsaufteilung. Mögliche Eingaben für cv sind

  • Ganzzahl, um die Anzahl der Folds in einem (Stratified)KFold anzugeben,

  • CV-Splitter,

  • Eine iterierbare Liste, die (Trainings-, Test-) Splits als Indizes-Arrays liefert.

Für Ganzzahl-/None-Eingaben, wenn der Schätzer ein Klassifikator ist und y entweder binär oder multiklassig ist, wird StratifiedKFold verwendet. In allen anderen Fällen wird KFold verwendet. Diese Splitter werden mit shuffle=False instanziiert, sodass die Splits bei jedem Aufruf gleich sind.

Siehe Benutzerhandbuch für die verschiedenen Kreuzvalidierungsstrategien, die hier verwendet werden können.

Hinweis

Aus Implementierungsgründen müssen die von cv erzeugten Folds über mehrere Aufrufe von cv.split() hinweg gleich sein. Für eingebaute scikit-learn Iteratoren kann dies durch Deaktivieren des Shufflings (shuffle=False) oder durch Setzen des random_state Parameters von cv auf einen Integer erreicht werden.

scoringstr oder callable, Standardwert=None

Scoring-Methode, die zur Auswertung der Vorhersagen auf dem Testset verwendet wird.

refitbool oder callable, Standardwert=True

Refitt einen Estimator mit den besten gefundenen Parametern auf dem gesamten Datensatz.

Wenn bei der Auswahl eines besten Estimators andere Überlegungen als die maximale Punktzahl eine Rolle spielen, kann refit auf eine Funktion gesetzt werden, die den ausgewählten best_index_ basierend auf cv_results_ zurückgibt. In diesem Fall werden best_estimator_ und best_params_ entsprechend dem zurückgegebenen best_index_ gesetzt, während das Attribut best_score_ nicht verfügbar ist.

Der neu angepasste Estimator ist unter dem Attribut best_estimator_ verfügbar und ermöglicht die direkte Verwendung von predict auf dieser HalvingGridSearchCV Instanz.

Siehe dieses Beispiel für ein Beispiel, wie refit=callable verwendet wird, um Modellkomplexität und kreuzvalidierte Scores auszubalancieren.

error_score‘raise’ oder numeric

Wert, der dem Score zugewiesen wird, wenn ein Fehler bei der Anpassung des Estimators auftritt. Wenn auf 'raise' gesetzt, wird der Fehler ausgelöst. Wenn ein numerischer Wert angegeben wird, wird FitFailedWarning ausgelöst. Dieser Parameter beeinflusst nicht den Refit-Schritt, der immer den Fehler auslösen wird. Standard ist np.nan.

return_train_scorebool, default=False

Wenn False, enthält das Attribut cv_results_ keine Trainingsscores. Die Berechnung von Trainingsscores wird verwendet, um Einblicke zu gewinnen, wie sich verschiedene Parameter-Einstellungen auf den Kompromiss zwischen Überanpassung/Unteranpassung auswirken. Die Berechnung von Scores auf dem Trainingsdatensatz kann jedoch rechenintensiv sein und ist nicht unbedingt erforderlich, um die Parameter auszuwählen, die die beste Generalisierungsleistung erzielen.

random_stateint, RandomState-Instanz oder None, default=None

Pseudo-Zufallszahlengenerator-Zustand, der für das Subsampling des Datensatzes verwendet wird, wenn resources != 'n_samples'. Andernfalls ignoriert. Übergeben Sie eine Ganzzahl für reproduzierbare Ausgaben über mehrere Funktionsaufrufe hinweg. Siehe Glossar.

n_jobsint oder None, default=None

Anzahl der parallel auszuführenden Jobs. None bedeutet 1, es sei denn, es befindet sich in einem joblib.parallel_backend Kontext. -1 bedeutet die Verwendung aller Prozessoren. Siehe Glossar für weitere Details.

verboseint

Steuert die Ausführlichkeit: je höher, desto mehr Meldungen.

Attribute:
n_resources_Liste von int

Die in jeder Iteration verwendete Ressourcengröße.

n_candidates_Liste von int

Die Anzahl der Kandidatenparameter, die in jeder Iteration ausgewertet wurden.

n_remaining_candidates_int

Die Anzahl der verbleibenden Kandidatenparameter nach der letzten Iteration. Dies entspricht ceil(n_candidates[-1] / factor)

max_resources_int

Die maximale Anzahl von Ressourcen, die jeder Kandidat für eine gegebene Iteration verwenden darf. Beachten Sie, dass da die in jeder Iteration verwendete Ressourcengröße ein Vielfaches von min_resources_ sein muss, die tatsächliche Ressourcengröße in der letzten Iteration kleiner als max_resources_ sein kann.

min_resources_int

Die Ressourcengröße, die jedem Kandidaten in der ersten Iteration zugewiesen wird.

n_iterations_int

Die tatsächliche Anzahl der durchgeführten Iterationen. Dies ist gleich n_required_iterations_ wenn aggressive_elimination True ist. Andernfalls ist dies gleich min(n_possible_iterations_, n_required_iterations_).

n_possible_iterations_int

Die Anzahl der Iterationen, die möglich sind, beginnend mit min_resources_ Ressourcen und ohne max_resources_ zu überschreiten.

n_required_iterations_int

Die Anzahl der Iterationen, die benötigt werden, um mit weniger als factor Kandidaten in der letzten Iteration zu enden, beginnend mit min_resources_ Ressourcen. Dies wird kleiner als n_possible_iterations_ sein, wenn nicht genügend Ressourcen vorhanden sind.

cv_results_dict von numpy (masked) ndarrays

Ein Dictionary mit Spaltenüberschriften als Schlüssel und Spalten als Werte, das in einen Pandas DataFrame importiert werden kann. Es enthält viele Informationen zur Analyse der Ergebnisse einer Suche. Bitte beachten Sie das Benutzerhandbuch für Details. Ein Beispiel für die Analyse von cv_results_ finden Sie unter Statistischer Vergleich von Modellen mittels Grid Search.

best_estimator_estimator oder dict

Estimator, der von der Suche ausgewählt wurde, d.h. der Estimator, der den höchsten Score (oder den kleinsten Verlust, falls angegeben) auf den zurückgelassenen Daten erzielte. Nicht verfügbar, wenn refit=False.

best_score_float

Durchschnittliche kreuzvalidierte Punktzahl des `best_estimator`.

best_params_dict

Parameter-Einstellung, die die besten Ergebnisse auf den zurückgelassenen Daten lieferte.

best_index_int

Der Index (der cv_results_ Arrays), der der besten Kandidaten-Parameter-Einstellung entspricht.

Das Dictionary unter search.cv_results_['params'][search.best_index_] gibt die Parameter-Einstellung für das beste Modell an, das den höchsten mittleren Score (search.best_score_) erzielt.

scorer_function oder ein dict

Score-Funktion, die auf den zurückgelassenen Daten verwendet wird, um die besten Parameter für das Modell auszuwählen.

n_splits_int

Die Anzahl der Kreuzvalidierungs-Splits (Falten/Iterationen).

refit_time_float

Sekunden, die für das Refitten des besten Modells auf dem gesamten Datensatz aufgewendet wurden.

Dies ist nur verfügbar, wenn refit nicht False ist.

multimetric_bool

Ob die Scorer mehrere Metriken berechnen oder nicht.

classes_ndarray der Form (n_classes,)

Klassenbezeichnungen.

n_features_in_int

Anzahl der während des fits gesehenen Merkmale.

feature_names_in_ndarray mit Form (n_features_in_,)

Namen der während fit gesehenen Features. Nur definiert, wenn best_estimator_ definiert ist (siehe Dokumentation des Parameters refit für weitere Details) und wenn best_estimator_ bei der Anpassung feature_names_in_ exponiert.

Hinzugefügt in Version 1.0.

Siehe auch

HalvingRandomSearchCV

Zufällige Suche über einen Satz von Parametern mittels sukzessiver Halbierung.

Anmerkungen

Die ausgewählten Parameter sind diejenigen, die die Punktzahl der zurückgehaltenen Daten gemäß dem Scoring-Parameter maximieren.

Alle Parameterkombinationen, die mit einem NaN bewertet werden, teilen sich den niedrigsten Rang.

Beispiele

>>> from sklearn.datasets import load_iris
>>> from sklearn.ensemble import RandomForestClassifier
>>> from sklearn.experimental import enable_halving_search_cv  # noqa
>>> from sklearn.model_selection import HalvingGridSearchCV
...
>>> X, y = load_iris(return_X_y=True)
>>> clf = RandomForestClassifier(random_state=0)
...
>>> param_grid = {"max_depth": [3, None],
...               "min_samples_split": [5, 10]}
>>> search = HalvingGridSearchCV(clf, param_grid, resource='n_estimators',
...                              max_resources=10,
...                              random_state=0).fit(X, y)
>>> search.best_params_
{'max_depth': None, 'min_samples_split': 10, 'n_estimators': 9}
decision_function(X)[Quelle]#

Ruft decision_function auf dem Estimator mit den besten gefundenen Parametern auf.

Nur verfügbar, wenn refit=True und der zugrunde liegende Estimator decision_function unterstützt.

Parameter:
Xindexierbar, Länge n_samples

Muss die Eingabeannahmen des zugrunde liegenden Estimators erfüllen.

Gibt zurück:
y_scorendarray der Form (n_samples,) oder (n_samples, n_classes) oder (n_samples, n_classes * (n_classes-1) / 2)

Ergebnis der Entscheidungsfunktion für X basierend auf dem Estimator mit den besten gefundenen Parametern.

fit(X, y=None, **params)[Quelle]#

Führt fit mit allen Parameter-Sätzen aus.

Parameter:
Xarray-ähnlich, Form (n_samples, n_features)

Trainingsvektor, wobei n_samples die Anzahl der Stichproben und n_features die Anzahl der Merkmale ist.

yarray-like, Form (n_samples,) oder (n_samples, n_output), optional

Ziel relativ zu X für Klassifikation oder Regression; None für unüberwachtes Lernen.

**paramsDict von String -> Objekt

Parameter, die an die fit Methode des Estimators übergeben werden.

Gibt zurück:
selfobject

Instanz des angepassten Estimators.

get_metadata_routing()[Quelle]#

Holt das Metadaten-Routing dieses Objekts.

Bitte prüfen Sie im Benutzerhandbuch, wie der Routing-Mechanismus funktioniert.

Hinzugefügt in Version 1.4.

Gibt zurück:
routingMetadataRouter

Ein MetadataRouter, der die Routing-Informationen kapselt.

get_params(deep=True)[Quelle]#

Holt Parameter für diesen Schätzer.

Parameter:
deepbool, default=True

Wenn True, werden die Parameter für diesen Schätzer und die enthaltenen Unterobjekte, die Schätzer sind, zurückgegeben.

Gibt zurück:
paramsdict

Parameternamen, zugeordnet ihren Werten.

inverse_transform(X)[Quelle]#

Ruft inverse_transform auf dem Estimator mit den besten gefundenen Parametern auf.

Nur verfügbar, wenn der zugrunde liegende Estimator inverse_transform implementiert und refit=True.

Parameter:
Xindexierbar, Länge n_samples

Muss die Eingabeannahmen des zugrunde liegenden Estimators erfüllen.

Gibt zurück:
X_original{ndarray, sparse matrix} der Form (n_samples, n_features)

Ergebnis der inverse_transform Funktion für X basierend auf dem Estimator mit den besten gefundenen Parametern.

predict(X)[Quelle]#

Ruft predict auf dem Estimator mit den besten gefundenen Parametern auf.

Nur verfügbar, wenn refit=True und der zugrunde liegende Estimator predict unterstützt.

Parameter:
Xindexierbar, Länge n_samples

Muss die Eingabeannahmen des zugrunde liegenden Estimators erfüllen.

Gibt zurück:
y_predndarray von Form (n_samples,)

Die vorhergesagten Labels oder Werte für X basierend auf dem Estimator mit den besten gefundenen Parametern.

predict_log_proba(X)[Quelle]#

Ruft predict_log_proba auf dem Estimator mit den besten gefundenen Parametern auf.

Nur verfügbar, wenn refit=True und der zugrunde liegende Estimator predict_log_proba unterstützt.

Parameter:
Xindexierbar, Länge n_samples

Muss die Eingabeannahmen des zugrunde liegenden Estimators erfüllen.

Gibt zurück:
y_predndarray der Form (n_samples,) oder (n_samples, n_classes)

Vorhergesagte Log-Wahrscheinlichkeiten der Klassen für X basierend auf dem Estimator mit den besten gefundenen Parametern. Die Reihenfolge der Klassen entspricht der im angepassten Attribut classes_.

predict_proba(X)[Quelle]#

Ruft predict_proba auf dem Estimator mit den besten gefundenen Parametern auf.

Nur verfügbar, wenn refit=True und der zugrunde liegende Estimator predict_proba unterstützt.

Parameter:
Xindexierbar, Länge n_samples

Muss die Eingabeannahmen des zugrunde liegenden Estimators erfüllen.

Gibt zurück:
y_predndarray der Form (n_samples,) oder (n_samples, n_classes)

Vorhergesagte Klassentwahrscheinlichkeiten für X basierend auf dem Estimator mit den besten gefundenen Parametern. Die Reihenfolge der Klassen entspricht der im angepassten Attribut classes_.

score(X, y=None, **params)[Quelle]#

Gibt den Score auf den gegebenen Daten zurück, wenn der Estimator refittet wurde.

Dies verwendet den durch scoring definierten Score, sofern angegeben, andernfalls die best_estimator_.score Methode.

Parameter:
Xarray-like der Form (n_samples, n_features)

Eingabedaten, wobei n_samples die Anzahl der Stichproben und n_features die Anzahl der Merkmale ist.

yarray-ähnlich der Form (n_samples, n_output) oder (n_samples,), default=None

Ziel relativ zu X für Klassifikation oder Regression; None für unüberwachtes Lernen.

**paramsdict

An den zugrunde liegenden Scorer(-s) zu übergebende Parameter.

Hinzugefügt in Version 1.4: Nur verfügbar, wenn enable_metadata_routing=True. Siehe Benutzerhandbuch zur Metadaten-Weiterleitung für weitere Details.

Gibt zurück:
scorefloat

Der durch scoring definierte Score, sofern angegeben, andernfalls die best_estimator_.score Methode.

score_samples(X)[Quelle]#

Ruft score_samples auf dem Estimator mit den besten gefundenen Parametern auf.

Nur verfügbar, wenn refit=True und der zugrunde liegende Estimator score_samples unterstützt.

Hinzugefügt in Version 0.24.

Parameter:
XIterable

Daten, auf denen vorhergesagt werden soll. Muss die Eingabevoraussetzungen des zugrunde liegenden Estimators erfüllen.

Gibt zurück:
y_scorendarray der Form (n_samples,)

Die best_estimator_.score_samples Methode.

set_params(**params)[Quelle]#

Setzt die Parameter dieses Schätzers.

Die Methode funktioniert sowohl bei einfachen Schätzern als auch bei verschachtelten Objekten (wie Pipeline). Letztere haben Parameter der Form <component>__<parameter>, so dass es möglich ist, jede Komponente eines verschachtelten Objekts zu aktualisieren.

Parameter:
**paramsdict

Schätzer-Parameter.

Gibt zurück:
selfestimator instance

Schätzer-Instanz.

transform(X)[Quelle]#

Ruft transform auf dem Estimator mit den besten gefundenen Parametern auf.

Nur verfügbar, wenn der zugrunde liegende Estimator transform unterstützt und refit=True.

Parameter:
Xindexierbar, Länge n_samples

Muss die Eingabeannahmen des zugrunde liegenden Estimators erfüllen.

Gibt zurück:
Xt{ndarray, sparse matrix} der Form (n_samples, n_features)

X transformiert in den neuen Raum basierend auf dem Estimator mit den besten gefundenen Parametern.