VotingClassifier#
- class sklearn.ensemble.VotingClassifier(estimators, *, voting='hard', weights=None, n_jobs=None, flatten_transform=True, verbose=False)[Quelle]#
Soft Voting/Majority Rule Klassifikator für nicht angepasste Schätzer.
Lesen Sie mehr im Benutzerhandbuch.
Hinzugefügt in Version 0.17.
- Parameter:
- estimatorsListe von (String, Schätzer) Tupeln
Das Aufrufen der
fitMethode auf demVotingClassifierwird Klone der ursprünglichen Schätzer anpassen, die im Klassenattributself.estimators_gespeichert werden. Ein Schätzer kann mitset_paramsauf'drop'gesetzt werden.Geändert in Version 0.21:
'drop'wird akzeptiert. Die Verwendung von None wurde in 0.22 als veraltet markiert und die Unterstützung wurde in 0.24 entfernt.- voting{‘hard’, ‘soft’}, Standardwert=’hard’
Wenn 'hard', werden die vorhergesagten Klassennamen für die Mehrheitsregelabstimmung verwendet. Andernfalls, wenn 'soft', wird die Klassennahme basierend auf dem argmax der Summen der vorhergesagten Wahrscheinlichkeiten vorhergesagt, was für ein Ensemble gut kalibrierter Klassifikatoren empfohlen wird.
- weightsArray-ähnlich der Form (n_classifiers,), Standardwert=None
Sequenz von Gewichten (
floatoderint), um die Vorkommen vorhergesagter Klassennamen (hardvoting) oder Klassenwahrscheinlichkeiten vor dem Mittelwertbildung (softvoting) zu gewichten. Verwendet gleichmäßige Gewichte, wennNone.- n_jobsint, default=None
Die Anzahl der parallel auszuführenden Jobs für
fit.Nonebedeutet 1, es sei denn, Sie befinden sich in einemjoblib.parallel_backendKontext.-1bedeutet die Verwendung aller Prozessoren. Siehe Glossar für weitere Details.Hinzugefügt in Version 0.18.
- flatten_transformbool, Standardwert=True
Beeinflusst die Form des Transform-Outputs nur, wenn voting='soft'. Wenn voting='soft' und flatten_transform=True, gibt die transform-Methode eine Matrix mit der Form (n_samples, n_classifiers * n_classes) zurück. Wenn flatten_transform=False, gibt sie (n_classifiers, n_samples, n_classes) zurück.
- verbosebool, default=False
Wenn True, wird die während des Anpassens verstrichene Zeit bei Abschluss ausgegeben.
Hinzugefügt in Version 0.23.
- Attribute:
- estimators_Liste von Klassifikatoren
Die Sammlung von angepassten Unter-Schätzern, wie in
estimatorsdefiniert, die nicht 'drop' sind.- named_estimators_
Bunch Attribut zum Zugriff auf beliebige trainierte Unter-Estimator nach Namen.
Hinzugefügt in Version 0.20.
- le_
LabelEncoder Transformator, der zum Kodieren der Labels während des Anpassens und Dekodieren während der Vorhersage verwendet wird.
- classes_ndarray der Form (n_classes,)
Die Klassenbezeichnungen.
n_features_in_intAnzahl der während des fits gesehenen Merkmale.
- feature_names_in_ndarray mit Form (
n_features_in_,) Namen von Merkmalen, die während fit gesehen wurden. Nur definiert, wenn die zugrunde liegenden Estimator ein solches Attribut nach dem Trainieren bereitstellen.
Hinzugefügt in Version 1.0.
Siehe auch
VotingRegressorVorhersage-Voting-Regressor.
Beispiele
>>> import numpy as np >>> from sklearn.linear_model import LogisticRegression >>> from sklearn.naive_bayes import GaussianNB >>> from sklearn.ensemble import RandomForestClassifier, VotingClassifier >>> clf1 = LogisticRegression(random_state=1) >>> clf2 = RandomForestClassifier(n_estimators=50, random_state=1) >>> clf3 = GaussianNB() >>> X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]]) >>> y = np.array([1, 1, 1, 2, 2, 2]) >>> eclf1 = VotingClassifier(estimators=[ ... ('lr', clf1), ('rf', clf2), ('gnb', clf3)], voting='hard') >>> eclf1 = eclf1.fit(X, y) >>> print(eclf1.predict(X)) [1 1 1 2 2 2] >>> np.array_equal(eclf1.named_estimators_.lr.predict(X), ... eclf1.named_estimators_['lr'].predict(X)) True >>> eclf2 = VotingClassifier(estimators=[ ... ('lr', clf1), ('rf', clf2), ('gnb', clf3)], ... voting='soft') >>> eclf2 = eclf2.fit(X, y) >>> print(eclf2.predict(X)) [1 1 1 2 2 2]
Um einen Schätzer zu löschen, kann
set_paramsverwendet werden, um ihn zu entfernen. Hier haben wir einen der Schätzer gelöscht, was zu 2 angepassten Schätzern führte.>>> eclf2 = eclf2.set_params(lr='drop') >>> eclf2 = eclf2.fit(X, y) >>> len(eclf2.estimators_) 2
Das Setzen von
flatten_transform=Truemitvoting='soft'glättet die Ausgabeform vontransform.>>> eclf3 = VotingClassifier(estimators=[ ... ('lr', clf1), ('rf', clf2), ('gnb', clf3)], ... voting='soft', weights=[2,1,1], ... flatten_transform=True) >>> eclf3 = eclf3.fit(X, y) >>> print(eclf3.predict(X)) [1 1 1 2 2 2] >>> print(eclf3.transform(X).shape) (6, 6)
- fit(X, y, **fit_params)[Quelle]#
Trainiert die Estimator.
- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Trainingsvektoren, wobei
n_samplesdie Anzahl der Stichproben undn_featuresdie Anzahl der Merkmale ist.- yarray-like von Form (n_samples,)
Zielwerte.
- **fit_paramsdict
Parameter, die an die zugrunde liegenden Estimator übergeben werden.
Hinzugefügt in Version 1.5: Nur verfügbar, wenn
enable_metadata_routing=Truegesetzt ist, was durch Verwendung vonsklearn.set_config(enable_metadata_routing=True)erfolgen kann. Weitere Details finden Sie in der Benutzerhandbuch für Metadaten-Routing.
- Gibt zurück:
- selfobject
Gibt die Instanz selbst zurück.
- fit_transform(X, y=None, **fit_params)[Quelle]#
Gibt Klassennamen oder Wahrscheinlichkeiten für jeden Schätzer zurück.
Gibt Vorhersagen für X für jeden Schätzer zurück.
- Parameter:
- X{Array-ähnlich, dünnbesetzte Matrix, DataFrame} der Form (n_samples, n_features)
Eingabestichproben.
- yndarray der Form (n_samples,), Standardwert=None
Zielwerte (None für unüberwachte Transformationen).
- **fit_paramsdict
Zusätzliche Anpassungsparameter.
- Gibt zurück:
- X_newndarray array der Form (n_samples, n_features_new)
Transformiertes Array.
- get_feature_names_out(input_features=None)[Quelle]#
Holt die Ausgabemerkmale für die Transformation.
- Parameter:
- input_featuresarray-like von str oder None, default=None
Nicht verwendet, hier zur API-Konsistenz durch Konvention vorhanden.
- Gibt zurück:
- feature_names_outndarray von str-Objekten
Transformierte Merkmalnamen.
- 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.5.
- Gibt zurück:
- routingMetadataRouter
Ein
MetadataRouter, der die Routing-Informationen kapselt.
- get_params(deep=True)[Quelle]#
Ruft die Parameter eines Estimators aus dem Ensemble ab.
Gibt die im Konstruktor angegebenen Parameter sowie die im Parameter
estimatorsenthaltenen Estimator zurück.- Parameter:
- deepbool, default=True
Wenn dies auf True gesetzt wird, werden die verschiedenen Estimator und die Parameter der Estimator abgerufen.
- Gibt zurück:
- paramsdict
Parameter- und Estimator-Namen, die ihren Werten oder Parameternamen, die ihren Werten zugeordnet sind, zugeordnet sind.
- property named_estimators#
Wörterbuch zum Zugriff auf beliebige trainierte Unter-Estimator nach Namen.
- Gibt zurück:
- predict(X)[Quelle]#
Vorhersage von Klassennamen für X.
- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Die Eingabestichproben.
- Gibt zurück:
- majArray-ähnlich der Form (n_samples,)
Vorhergesagte Klassennamen.
- predict_proba(X)[Quelle]#
Berechnet Wahrscheinlichkeiten möglicher Ergebnisse für Samples in X.
- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Die Eingabestichproben.
- Gibt zurück:
- avgArray-ähnlich der Form (n_samples, n_classes)
Gewichteter Durchschnitt der Wahrscheinlichkeiten für jede Klasse pro Stichprobe.
- score(X, y, sample_weight=None)[Quelle]#
Gibt die Genauigkeit für die bereitgestellten Daten und Bezeichnungen zurück.
Bei der Multi-Label-Klassifizierung ist dies die Subset-Genauigkeit, eine strenge Metrik, da für jede Stichprobe verlangt wird, dass jede Label-Menge korrekt vorhergesagt wird.
- Parameter:
- Xarray-like der Form (n_samples, n_features)
Teststichproben.
- yarray-like der Form (n_samples,) oder (n_samples, n_outputs)
Wahre Bezeichnungen für
X.- sample_weightarray-like der Form (n_samples,), Standardwert=None
Stichprobengewichte.
- Gibt zurück:
- scorefloat
Mittlere Genauigkeit von
self.predict(X)in Bezug aufy.
- set_output(*, transform=None)[Quelle]#
Ausgabecontainer festlegen.
Siehe Einführung in die set_output API für ein Beispiel zur Verwendung der API.
- Parameter:
- transform{“default”, “pandas”, “polars”}, default=None
Konfiguriert die Ausgabe von
transformundfit_transform."default": Standardausgabeformat eines Transformers"pandas": DataFrame-Ausgabe"polars": Polars-AusgabeNone: Die Transformationskonfiguration bleibt unverändert
Hinzugefügt in Version 1.4: Die Option
"polars"wurde hinzugefügt.
- Gibt zurück:
- selfestimator instance
Schätzer-Instanz.
- set_params(**params)[Quelle]#
Setzt die Parameter eines Estimators aus dem Ensemble.
Gültige Parameternamen können mit
get_params()aufgelistet werden. Beachten Sie, dass Sie die Parameter der Estimator, die im Parameterestimatorsenthalten sind, direkt setzen können.- Parameter:
- **paramsSchlüsselwortargumente
Spezifische Parameter unter Verwendung von z. B.
set_params(parameter_name=new_value). Zusätzlich zum Setzen der Parameter des Estimators können auch die einzelnen Estimator der Estimator gesetzt oder durch Setzen auf 'drop' entfernt werden.
- Gibt zurück:
- selfobject
Schätzer-Instanz.
- set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') VotingClassifier[Quelle]#
Konfiguriert, ob Metadaten für die
score-Methode angefordert werden sollen.Beachten Sie, dass diese Methode nur relevant ist, wenn dieser Schätzer als Unter-Schätzer innerhalb eines Meta-Schätzers verwendet wird und Metadaten-Routing mit
enable_metadata_routing=Trueaktiviert ist (siehesklearn.set_config). Bitte lesen Sie das Benutzerhandbuch, um zu erfahren, wie der Routing-Mechanismus funktioniert.Die Optionen für jeden Parameter sind
True: Metadaten werden angefordert und, falls vorhanden, anscoreübergeben. Die Anforderung wird ignoriert, wenn keine Metadaten vorhanden sind.False: Metadaten werden nicht angefordert und der Meta-Schätzer übergibt sie nicht anscore.None: Metadaten werden nicht angefordert und der Meta-Schätzer löst einen Fehler aus, wenn der Benutzer sie bereitstellt.str: Metadaten sollten mit diesem Alias an den Meta-Schätzer übergeben werden und nicht mit dem ursprünglichen Namen.
Der Standardwert (
sklearn.utils.metadata_routing.UNCHANGED) behält die bestehende Anforderung bei. Dies ermöglicht es Ihnen, die Anforderung für einige Parameter zu ändern und für andere nicht.Hinzugefügt in Version 1.3.
- Parameter:
- sample_weightstr, True, False, oder None, Standardwert=sklearn.utils.metadata_routing.UNCHANGED
Metadaten-Routing für den Parameter
sample_weightinscore.
- Gibt zurück:
- selfobject
Das aktualisierte Objekt.
- transform(X)[Quelle]#
Gibt Klassennamen oder Wahrscheinlichkeiten für X für jeden Schätzer zurück.
- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Trainingsvektoren, wobei
n_samplesdie Anzahl der Stichproben undn_featuresdie Anzahl der Merkmale ist.
- Gibt zurück:
- Wahrscheinlichkeiten_oder_Labels
- Wenn
voting='soft'undflatten_transform=True gibt ndarray der Form (n_samples, n_classifiers * n_classes) zurück, wobei die Klassenwahrscheinlichkeiten von jedem Klassifikator berechnet werden.
- Wenn
voting='soft' und `flatten_transform=False ndarray der Form (n_classifiers, n_samples, n_classes)
- Wenn
voting='hard' ndarray der Form (n_samples, n_classifiers), wobei die Klassennamen von jedem Klassifikator vorhergesagt werden.
- Wenn
Galeriebeispiele#
Visualisierung der probabilistischen Vorhersagen eines VotingClassifier