ExtraTreeClassifier#
- class sklearn.tree.ExtraTreeClassifier(*, criterion='gini', splitter='random', max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features='sqrt', random_state=None, max_leaf_nodes=None, min_impurity_decrease=0.0, class_weight=None, ccp_alpha=0.0, monotonic_cst=None)[Quelle]#
Ein extrem zufälliger Baum-Klassifikator.
Extra-trees unterscheiden sich von klassischen Entscheidungsbäumen in der Art, wie sie aufgebaut werden. Bei der Suche nach der besten Teilung, um die Stichproben eines Knotens in zwei Gruppen zu trennen, werden zufällige Teilungen für jedes der
max_featureszufällig ausgewählten Merkmale gezogen und die beste Teilung unter diesen wird gewählt. Wennmax_featuresauf 1 gesetzt ist, entspricht dies dem Aufbau eines rein zufälligen Entscheidungsbaums.Warnung: Extra-trees sollten nur innerhalb von Ensemble-Methoden verwendet werden.
Lesen Sie mehr im Benutzerhandbuch.
- Parameter:
- criterion{“gini”, “entropy”, “log_loss”}, Standard=”gini”
Die Funktion zur Messung der Qualität einer Teilung. Unterstützte Kriterien sind „gini“ für die Gini-Reinheit und „log_loss“ sowie „entropy“ für die Shannon-Informationsgewinnung, siehe Mathematische Formulierung.
- splitter{„zufällig“, „best“}, Standard=”zufällig”
Die Strategie, die zum Choisen des Splits an jedem Knoten verwendet wird. Unterstützte Strategien sind "best" zum Choisen des besten Splits und "random" zum Choisen des besten zufälligen Splits.
- max_depthint, Standard=None
Die maximale Tiefe des Baumes. Wenn None, dann werden Knoten erweitert, bis alle Blätter rein sind oder bis alle Blätter weniger als min_samples_split Samples enthalten.
- min_samples_splitint oder float, Standard=2
Die minimale Anzahl von Samples, die zur Aufteilung eines internen Knotens erforderlich sind.
Wenn int, dann betrachte
min_samples_splitals die minimale Anzahl.Wenn float, dann ist
min_samples_splitein Bruchteil undceil(min_samples_split * n_samples)ist die minimale Anzahl von Samples für jeden Split.
Geändert in Version 0.18: Float-Werte für Brüche hinzugefügt.
- min_samples_leafint oder float, Standard=1
Die minimale Anzahl von Samples, die an einem Blattknoten erforderlich sind. Ein Splitpunkt in beliebiger Tiefe wird nur berücksichtigt, wenn er mindestens
min_samples_leafTrainingssamples in jedem der linken und rechten Zweige hinterlässt. Dies kann insbesondere bei der Regression zur Glättung des Modells beitragen.Wenn int, dann betrachte
min_samples_leafals die minimale Anzahl.Wenn float, dann ist
min_samples_leafein Bruchteil undceil(min_samples_leaf * n_samples)ist die minimale Anzahl von Samples für jeden Knoten.
Geändert in Version 0.18: Float-Werte für Brüche hinzugefügt.
- min_weight_fraction_leaffloat, Standard=0.0
Der minimale gewichtete Bruchteil der Summe aller Gewichte (aller Eingabesamplings), der in einem Blattknoten erforderlich ist. Samples haben gleiche Gewichte, wenn sample_weight nicht angegeben ist.
- max_featuresint, float, {„sqrt“, „log2“} oder None, Standard=”sqrt”
Die Anzahl der Features, die bei der Suche nach dem besten Split berücksichtigt werden.
Wenn int, dann werden
max_featuresFeatures bei jedem Split berücksichtigt.Wenn float, dann ist
max_featuresein Bruchteil undmax(1, int(max_features * n_features_in_))Features werden bei jedem Split berücksichtigt.Wenn "sqrt", dann
max_features=sqrt(n_features).Wenn "log2", dann
max_features=log2(n_features).Wenn None, dann
max_features=n_features.
Geändert in Version 1.1: Der Standardwert von
max_featuresänderte sich von"auto"zu"sqrt".Hinweis: Die Suche nach einem Split stoppt nicht, bis mindestens eine gültige Partition der Knoten-Samples gefunden wurde, auch wenn dies die Inspektion von mehr als
max_featuresFeatures erfordert.- random_stateint, RandomState-Instanz oder None, default=None
Wird verwendet, um die zufälligen
max_featureszu wählen, die bei jeder Teilung verwendet werden. Siehe Glossar für Details.- max_leaf_nodesint, Standard=None
Erzeugt einen Baum mit
max_leaf_nodesim Best-First-Verfahren. Beste Knoten werden als relative Verringerung der Unreinheit definiert. Wenn None, dann unbegrenzte Anzahl von Blattknoten.- min_impurity_decreasefloat, Standard=0.0
Ein Knoten wird geteilt, wenn dieser Split eine Verringerung der Unreinheit von mindestens diesem Wert bewirkt.
Die gewichtete Gleichung für die Verringerung der Unreinheit lautet:
N_t / N * (impurity - N_t_R / N_t * right_impurity - N_t_L / N_t * left_impurity)
wobei
Ndie Gesamtzahl der Samples,N_tdie Anzahl der Samples im aktuellen Knoten,N_t_Ldie Anzahl der Samples im linken Kind undN_t_Rdie Anzahl der Samples im rechten Kind ist.N,N_t,N_t_RundN_t_Lbeziehen sich alle auf die gewichtete Summe, wennsample_weightübergeben wird.Hinzugefügt in Version 0.19.
- class_weightdict, Liste von dicts oder „balanced“, Standard=None
Gewichte, die den Klassen zugeordnet sind, in der Form
{Klassenbezeichnung: Gewicht}. Wenn None, wird angenommen, dass alle Klassen das Gewicht eins haben. Bei Multi-Output-Problemen kann eine Liste von Dicts in der gleichen Reihenfolge wie die Spalten von y bereitgestellt werden.Beachten Sie, dass bei Multi-Output (einschließlich Multilabel) Gewichte für jede Klasse jeder Spalte in einem eigenen Dict definiert werden müssen. Zum Beispiel sollten bei einer Vierklassen-Multilabel-Klassifizierung Gewichte [{0: 1, 1: 1}, {0: 1, 1: 5}, {0: 1, 1: 1}, {0: 1, 1: 1}] anstelle von [{1:1}, {2:5}, {3:1}, {4:1}] angegeben werden.
Der Modus "balanced" verwendet die Werte von y, um die Gewichte umgekehrt proportional zur Klassenverteilung in den Eingabedaten automatisch anzupassen, als
n_samples / (n_classes * np.bincount(y))Für Multi-Output werden die Gewichte jeder Spalte von y multipliziert.
Beachten Sie, dass diese Gewichte mit sample_weight (das über die fit-Methode übergeben wird) multipliziert werden, wenn sample_weight angegeben ist.
- ccp_alphanicht-negativer float, Standard=0.0
Komplexitätsparameter, der für das prudenbasierte "Minimal Cost-Complexity Pruning" verwendet wird. Es wird der Teilbaum mit der größten Kostenkomplexität gewählt, der kleiner als
ccp_alphaist. Standardmäßig erfolgt kein Pruning. Siehe Pruning nach Kostenkomplexität für Details. Siehe Entscheidungsbäume durch Kostenkomplexitäts-Pruning nachbearbeiten für ein Beispiel eines solchen Prunings.Hinzugefügt in Version 0.22.
- monotonic_cstarray-like von int der Form (n_features,), Standard=None
- Gibt die zu erzwingende Monotonie-Beschränkung für jedes Merkmal an.
1: monoton steigend
0: keine Beschränkung
-1: monoton fallend
Wenn monotonic_cst None ist, werden keine Beschränkungen angewendet.
- Monotonie-Beschränkungen werden nicht unterstützt für
Mehrklassen-Klassifizierungen (d.h. wenn
n_classes > 2),Multi-Output-Klassifizierungen (d.h. wenn
n_outputs_ > 1),Klassifizierungen, die auf Daten mit fehlenden Werten trainiert wurden.
Die Beschränkungen gelten für die Wahrscheinlichkeit der positiven Klasse.
Lesen Sie mehr im Benutzerhandbuch.
Hinzugefügt in Version 1.4.
- Attribute:
- classes_ndarray der Form (n_classes,) oder Liste von ndarrays
Die Klassenbezeichnungen (einzelne Ausgabe), oder eine Liste von Arrays mit Klassenbezeichnungen (Multi-Output).
- max_features_int
Der abgeleitete Wert von max_features.
- n_classes_int oder Liste von int
Die Anzahl der Klassen (für Single-Output-Probleme) oder eine Liste, die die Anzahl der Klassen für jeden Output enthält (für Multi-Output-Probleme).
feature_importances_ndarray der Form (n_features,)Gibt die Merkmalswichtigkeit zurück.
- n_features_in_int
Anzahl der während des fits gesehenen Merkmale.
Hinzugefügt in Version 0.24.
- feature_names_in_ndarray mit Form (
n_features_in_,) Namen der während fit gesehenen Merkmale. Nur definiert, wenn
XMerkmalnamen hat, die alle Zeichenketten sind.Hinzugefügt in Version 1.0.
- n_outputs_int
Die Anzahl der Ausgaben, wenn
fitausgeführt wird.- tree_Tree-Instanz
Das zugrunde liegende Tree-Objekt. Bitte beziehen Sie sich auf
help(sklearn.tree._tree.Tree)für Attribute des Tree-Objekts und Die Struktur des Entscheidungsbaums verstehen für grundlegende Verwendung dieser Attribute.
Siehe auch
ExtraTreeRegressorEin extrem zufälliger Baum-Regressor.
sklearn.ensemble.ExtraTreesClassifierEin Extra-Trees-Klassifikator.
sklearn.ensemble.ExtraTreesRegressorEin Extra-Trees-Regressor.
sklearn.ensemble.RandomForestClassifierEin Random-Forest-Klassifikator.
sklearn.ensemble.RandomForestRegressorEin Random-Forest-Regressor.
sklearn.ensemble.RandomTreesEmbeddingEin Ensemble von völlig zufälligen Bäumen.
Anmerkungen
Die Standardwerte für die Parameter, die die Größe der Bäume steuern (z. B.
max_depth,min_samples_leafusw.), führen zu vollständig gewachsenen und un-geprunten Bäumen, die auf einigen Datensätzen potenziell sehr groß sein können. Um den Speicherverbrauch zu reduzieren, sollte die Komplexität und Größe der Bäume durch Setzen dieser Parameterwerte gesteuert werden.Referenzen
[1]P. Geurts, D. Ernst. und L. Wehenkel, „Extremely randomized trees“, Machine Learning, 63(1), 3-42, 2006.
Beispiele
>>> from sklearn.datasets import load_iris >>> from sklearn.model_selection import train_test_split >>> from sklearn.ensemble import BaggingClassifier >>> from sklearn.tree import ExtraTreeClassifier >>> X, y = load_iris(return_X_y=True) >>> X_train, X_test, y_train, y_test = train_test_split( ... X, y, random_state=0) >>> extra_tree = ExtraTreeClassifier(random_state=0) >>> cls = BaggingClassifier(extra_tree, random_state=0).fit( ... X_train, y_train) >>> cls.score(X_test, y_test) 0.8947
- apply(X, check_input=True)[Quelle]#
Gibt den Index des Blattes zurück, als das jeder Stichprobe vorhergesagt wird.
Hinzugefügt in Version 0.17.
- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Die Eingabestichproben. Intern wird sie in
dtype=np.float32konvertiert und, wenn eine Sparse-Matrix bereitgestellt wird, in eine Sparse-csr_matrix.- check_inputbool, Standardwert=True
Ermöglicht das Umgehen mehrerer Eingabeüberprüfungen. Verwenden Sie diesen Parameter nicht, es sei denn, Sie wissen, was Sie tun.
- Gibt zurück:
- X_leavesarray-like von Form (n_samples,)
Gibt für jeden Datenpunkt x in X den Index des Blattes zurück, in dem x landet. Blätter sind innerhalb von
[0; self.tree_.node_count)nummeriert, möglicherweise mit Lücken in der Nummerierung.
- cost_complexity_pruning_path(X, y, sample_weight=None)[Quelle]#
Berechnet den Beschneidungspfad während des minimalen Kosten-Komplexitäts-Beschneidens.
Siehe Minimales Kosten-Komplexitäts-Beschneiden für Details zum Beschneidungsprozess.
- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Die Trainings-Eingabestichproben. Intern wird sie in
dtype=np.float32konvertiert und, wenn eine Sparse-Matrix bereitgestellt wird, in eine Sparse-csc_matrix.- yarray-like der Form (n_samples,) oder (n_samples, n_outputs)
Die Zielwerte (Klassenbezeichnungen) als ganze Zahlen oder Zeichenketten.
- sample_weightarray-like der Form (n_samples,), Standardwert=None
Stichprobengewichte. Wenn None, dann werden die Stichproben gleich gewichtet. Splits, die Kindknoten mit Nettogewicht Null oder negativ erzeugen würden, werden bei der Suche nach einem Split in jedem Knoten ignoriert. Splits werden auch ignoriert, wenn sie dazu führen würden, dass eine einzelne Klasse in einem Kindknoten ein negatives Gewicht trägt.
- Gibt zurück:
- ccp_path
Bunch Dictionary-ähnliches Objekt mit den folgenden Attributen.
- ccp_alphasndarray
Effektive Alphas des Teilbaums während des Beschneidens.
- impuritiesndarray
Summe der Unreinheiten der Blattknoten des Teilbaums für den entsprechenden Alpha-Wert in
ccp_alphas.
- ccp_path
- decision_path(X, check_input=True)[Quelle]#
Gibt den Entscheidungspfad im Baum zurück.
Hinzugefügt in Version 0.18.
- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Die Eingabestichproben. Intern wird sie in
dtype=np.float32konvertiert und, wenn eine Sparse-Matrix bereitgestellt wird, in eine Sparse-csr_matrix.- check_inputbool, Standardwert=True
Ermöglicht das Umgehen mehrerer Eingabeüberprüfungen. Verwenden Sie diesen Parameter nicht, es sei denn, Sie wissen, was Sie tun.
- Gibt zurück:
- indicatordünn besetzte Matrix der Form (n_samples, n_nodes)
Gibt eine CSR-Matrix mit Knotenindikatoren zurück, wobei Nicht-Null-Elemente anzeigen, dass die Stichproben die Knoten durchlaufen.
- fit(X, y, sample_weight=None, check_input=True)[Quelle]#
Erstellt einen Entscheidungsbaumklassifikator aus der Trainingsmenge (X, y).
- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Die Trainings-Eingabestichproben. Intern wird sie in
dtype=np.float32konvertiert und, wenn eine Sparse-Matrix bereitgestellt wird, in eine Sparse-csc_matrix.- yarray-like der Form (n_samples,) oder (n_samples, n_outputs)
Die Zielwerte (Klassenbezeichnungen) als ganze Zahlen oder Zeichenketten.
- sample_weightarray-like der Form (n_samples,), Standardwert=None
Stichprobengewichte. Wenn None, dann werden die Stichproben gleich gewichtet. Splits, die Kindknoten mit Nettogewicht Null oder negativ erzeugen würden, werden bei der Suche nach einem Split in jedem Knoten ignoriert. Splits werden auch ignoriert, wenn sie dazu führen würden, dass eine einzelne Klasse in einem Kindknoten ein negatives Gewicht trägt.
- check_inputbool, Standardwert=True
Ermöglicht das Umgehen mehrerer Eingabeüberprüfungen. Verwenden Sie diesen Parameter nicht, es sei denn, Sie wissen, was Sie tun.
- Gibt zurück:
- selfDecisionTreeClassifier
Angepasster Schätzer.
- get_depth()[Quelle]#
Gibt die Tiefe des Entscheidungsbaums zurück.
Die Tiefe eines Baumes ist der maximale Abstand zwischen der Wurzel und jedem Blatt.
- Gibt zurück:
- self.tree_.max_depthint
Die maximale Tiefe des Baumes.
- get_metadata_routing()[Quelle]#
Holt das Metadaten-Routing dieses Objekts.
Bitte prüfen Sie im Benutzerhandbuch, wie der Routing-Mechanismus funktioniert.
- Gibt zurück:
- routingMetadataRequest
Ein
MetadataRequest, der Routing-Informationen kapselt.
- get_n_leaves()[Quelle]#
Gibt die Anzahl der Blätter des Entscheidungsbaums zurück.
- Gibt zurück:
- self.tree_.n_leavesint
Anzahl der Blätter.
- 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.
- predict(X, check_input=True)[Quelle]#
Sagt die Klasse oder den Regressionswert für X voraus.
Für ein Klassifikationsmodell wird die vorhergesagte Klasse für jede Stichprobe in X zurückgegeben. Für ein Regressionsmodell wird der vorhergesagte Wert basierend auf X zurückgegeben.
- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Die Eingabestichproben. Intern wird sie in
dtype=np.float32konvertiert und, wenn eine Sparse-Matrix bereitgestellt wird, in eine Sparse-csr_matrix.- check_inputbool, Standardwert=True
Ermöglicht das Umgehen mehrerer Eingabeüberprüfungen. Verwenden Sie diesen Parameter nicht, es sei denn, Sie wissen, was Sie tun.
- Gibt zurück:
- yarray-like der Form (n_samples,) oder (n_samples, n_outputs)
Die vorhergesagten Klassen oder die vorhergesagten Werte.
- predict_log_proba(X)[Quelle]#
Vorhersage der logarithmischen Klassenwahrscheinlichkeiten der Eingabestichproben X.
- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Die Eingabestichproben. Intern wird sie in
dtype=np.float32konvertiert und, wenn eine Sparse-Matrix bereitgestellt wird, in eine Sparse-csr_matrix.
- Gibt zurück:
- probandarray der Form (n_samples, n_classes) oder Liste von n_outputs solchen Arrays, wenn n_outputs > 1
Die Klassen-Log-Wahrscheinlichkeiten der Eingabestichproben. Die Reihenfolge der Klassen entspricht der in dem Attribut classes_.
- predict_proba(X, check_input=True)[Quelle]#
Vorhersage der Klasswahrscheinlichkeiten der Eingabestichproben X.
Die vorhergesagte Klasswahrscheinlichkeit ist der Anteil der Stichproben derselben Klasse in einem Blatt.
- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Die Eingabestichproben. Intern wird sie in
dtype=np.float32konvertiert und, wenn eine Sparse-Matrix bereitgestellt wird, in eine Sparse-csr_matrix.- check_inputbool, Standardwert=True
Ermöglicht das Umgehen mehrerer Eingabeüberprüfungen. Verwenden Sie diesen Parameter nicht, es sei denn, Sie wissen, was Sie tun.
- Gibt zurück:
- probandarray der Form (n_samples, n_classes) oder Liste von n_outputs solchen Arrays, wenn n_outputs > 1
Die Klassenwahrscheinlichkeiten der Eingabesamplings. Die Reihenfolge der Klassen entspricht der im Attribut classes_.
- 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_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') ExtraTreeClassifier[Quelle]#
Konfiguriert, ob Metadaten für die
fit-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, anfitübergeben. Die Anforderung wird ignoriert, wenn keine Metadaten vorhanden sind.False: Metadaten werden nicht angefordert und der Meta-Schätzer übergibt sie nicht anfit.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_weightinfit.
- Gibt zurück:
- selfobject
Das aktualisierte Objekt.
- 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.
- set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') ExtraTreeClassifier[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.