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 fit Methode auf dem VotingClassifier wird Klone der ursprünglichen Schätzer anpassen, die im Klassenattribut self.estimators_ gespeichert werden. Ein Schätzer kann mit set_params auf '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 (float oder int), um die Vorkommen vorhergesagter Klassennamen (hard voting) oder Klassenwahrscheinlichkeiten vor dem Mittelwertbildung (soft voting) zu gewichten. Verwendet gleichmäßige Gewichte, wenn None.

n_jobsint, default=None

Die Anzahl der parallel auszuführenden Jobs für fit. None bedeutet 1, es sei denn, Sie befinden sich in einem joblib.parallel_backend Kontext. -1 bedeutet 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 estimators definiert, 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_int

Anzahl 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

VotingRegressor

Vorhersage-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_params verwendet 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=True mit voting='soft' glättet die Ausgabeform von transform.

>>> 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_samples die Anzahl der Stichproben und n_features die 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=True gesetzt ist, was durch Verwendung von sklearn.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 estimators enthaltenen 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:
Bunch
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 auf y.

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 transform und fit_transform.

  • "default": Standardausgabeformat eines Transformers

  • "pandas": DataFrame-Ausgabe

  • "polars": Polars-Ausgabe

  • None: 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 Parameter estimators enthalten 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=True aktiviert ist (siehe sklearn.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, an score übergeben. Die Anforderung wird ignoriert, wenn keine Metadaten vorhanden sind.

  • False: Metadaten werden nicht angefordert und der Meta-Schätzer übergibt sie nicht an score.

  • 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_weight in score.

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_samples die Anzahl der Stichproben und n_features die Anzahl der Merkmale ist.

Gibt zurück:
Wahrscheinlichkeiten_oder_Labels
Wenn voting='soft' und flatten_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.