RandomTreesEmbedding#
- class sklearn.ensemble.RandomTreesEmbedding(n_estimators=100, *, max_depth=5, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_leaf_nodes=None, min_impurity_decrease=0.0, sparse_output=True, n_jobs=None, random_state=None, verbose=0, warm_start=False)[source]#
Ein Ensemble von völlig zufälligen Bäumen.
Eine unüberwachte Transformation eines Datensatzes in eine hochdimensionale, spärliche Darstellung. Ein Datenpunkt wird danach kodiert, in welches Blatt jedes Baumes er sortiert wird. Unter Verwendung einer One-Hot-Kodierung der Blätter führt dies zu einer binären Kodierung mit so vielen Einsen, wie Bäume im Wald vorhanden sind.
Die Dimensionalität der resultierenden Darstellung ist
n_out <= n_estimators * max_leaf_nodes. Wennmax_leaf_nodes == None, ist die Anzahl der Blattknoten höchstensn_estimators * 2 ** max_depth.Ein Beispiel für die Anwendung von Random Trees Embedding auf die nicht-lineare Klassifizierung finden Sie unter Hashing Feature Transformation mit Totally Random Trees.
Lesen Sie mehr im Benutzerhandbuch.
- Parameter:
- n_estimatorsint, Standard=100
Anzahl der Bäume im Wald.
Geändert in Version 0.22: Der Standardwert von
n_estimatorsänderte sich von 10 auf 100 in 0.22.- max_depthint, default=5
Die maximale Tiefe jedes 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 Mindestanzahl von Samples für jede Aufteilung.
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 Mindestanzahl 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_leaf_nodesint, Standard=None
Bäume mit
max_leaf_nodesim Best-First-Verfahren wachsen lassen. 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.
- sparse_outputbool, default=True
Ob eine spärliche CSR-Matrix als Standardverhalten zurückgegeben werden soll oder ein dichtes Array, das mit dichten Pipeline-Operatoren kompatibel ist.
- n_jobsint, default=None
Die Anzahl der parallel auszuführenden Jobs.
fit,transform,decision_pathundapplywerden alle über die Bäume parallelisiert.Nonebedeutet 1, es sei denn, es befindet sich in einemjoblib.parallel_backendKontext.-1bedeutet Verwendung aller Prozessoren. Weitere Details finden Sie im Glossar.- random_stateint, RandomState-Instanz oder None, default=None
Steuert die Generierung des zufälligen
y, das zum Trainieren der Bäume verwendet wird, und die Ziehung der Aufteilungen für jedes Merkmal an den Knoten der Bäume. Details siehe Glossar.- verboseint, default=0
Steuert die Ausführlichkeit beim Anpassen und Vorhersagen.
- warm_startbool, Standard=False
Wenn auf
Truegesetzt, wird die Lösung des vorherigen Aufrufs von fit wiederverwendet und dem Ensemble weitere Estimators hinzugefügt, andernfalls wird nur ein komplett neues Forest erstellt. Siehe Glossar und Zusätzliche Bäume anpassen für Details.
- Attribute:
- estimator_
ExtraTreeRegressorInstanz Die Kind-Estimator-Vorlage, die zum Erstellen der Sammlung von angepassten Unter-Estimators verwendet wird.
Hinzugefügt in Version 1.2:
base_estimator_wurde inestimator_umbenannt.- estimators_Liste von
ExtraTreeRegressorInstanzen Die Sammlung der angepassten Unter-Estimators.
feature_importances_ndarray der Form (n_features,)Die Unreinheits-basierten Wichtigkeiten der Features.
- 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.- one_hot_encoder_OneHotEncoder Instanz
One-Hot-Encoder zur Erstellung der spärlichen Einbettung.
estimators_samples_Liste von ArraysDie Teilmenge der gezogenen Samples für jeden Basis-Estimator.
- estimator_
Siehe auch
ExtraTreesClassifierEin Extra-Trees-Klassifikator.
ExtraTreesRegressorEin Extra-Trees-Regressor.
RandomForestClassifierEin Random-Forest-Klassifikator.
RandomForestRegressorEin Random-Forest-Regressor.
sklearn.tree.ExtraTreeClassifierEin extrem zufälliger Baum-Klassifikator.
sklearn.tree.ExtraTreeRegressorEin extrem zufälliger Baum-Regressor.
Referenzen
[1]P. Geurts, D. Ernst. und L. Wehenkel, „Extremely randomized trees“, Machine Learning, 63(1), 3-42, 2006.
[2]Moosmann, F. und Triggs, B. und Jurie, F. „Fast discriminative visual codebooks using randomized clustering forests“ NIPS 2007.
Beispiele
>>> from sklearn.ensemble import RandomTreesEmbedding >>> X = [[0,0], [1,0], [0,1], [-1,0], [0,-1]] >>> random_trees = RandomTreesEmbedding( ... n_estimators=5, random_state=0, max_depth=1).fit(X) >>> X_sparse_embedding = random_trees.transform(X) >>> X_sparse_embedding.toarray() array([[0., 1., 1., 0., 1., 0., 0., 1., 1., 0.], [0., 1., 1., 0., 1., 0., 0., 1., 1., 0.], [0., 1., 0., 1., 0., 1., 0., 1., 0., 1.], [1., 0., 1., 0., 1., 0., 1., 0., 1., 0.], [0., 1., 1., 0., 1., 0., 0., 1., 1., 0.]])
- apply(X)[source]#
Wendet die Bäume im Forest auf X an, gibt Blattindizes zurück.
- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Die Eingabesamplings. Intern wird der dtype zu
dtype=np.float32konvertiert. Wenn eine dünn besetzte Matrix bereitgestellt wird, wird sie in eine dünn besetztecsr_matrixkonvertiert.
- Gibt zurück:
- X_leavesndarray der Form (n_samples, n_estimators)
Gibt für jeden Datenpunkt x in X und für jeden Baum im Forest den Index des Blattes zurück, in das x gelangt.
- decision_path(X)[source]#
Gibt den Entscheidungsbaum im Forest zurück.
Hinzugefügt in Version 0.18.
- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Die Eingabesamplings. Intern wird der dtype zu
dtype=np.float32konvertiert. Wenn eine dünn besetzte Matrix bereitgestellt wird, wird sie in eine dünn besetztecsr_matrixkonvertiert.
- Gibt zurück:
- indicatordünn besetzte Matrix der Form (n_samples, n_nodes)
Gibt eine Knotenindikatormatrix zurück, bei der Nicht-Null-Elemente darauf hinweisen, dass die Samples die Knoten durchlaufen. Die Matrix ist im CSR-Format.
- n_nodes_ptrndarray der Form (n_estimators + 1,)
Die Spalten von indicator[n_nodes_ptr[i]:n_nodes_ptr[i+1]] geben den Indikatorwert für den i-ten Estimator an.
- fit(X, y=None, sample_weight=None)[source]#
Schätzer anpassen.
- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Die Eingabestichproben. Verwenden Sie
dtype=np.float32für maximale Effizienz. Spärliche Matrizen werden ebenfalls unterstützt, verwenden Sie spärlichecsc_matrixfür maximale Effizienz.- yIgnoriert
Wird nicht verwendet, ist aber aus Gründen der API-Konsistenz per Konvention vorhanden.
- sample_weightarray-like der Form (n_samples,), Standardwert=None
Sample-Gewichte. Wenn None, dann werden die Samples gleich gewichtet. Splits, die Kindknoten mit Nettogewicht Null oder negativ erzeugen würden, werden bei der Suche nach einem Split in jedem Knoten ignoriert. Im Falle einer Klassifizierung werden Splits auch ignoriert, wenn sie dazu führen würden, dass eine einzelne Klasse in einem Kindknoten ein negatives Gewicht trägt.
- Gibt zurück:
- selfobject
Gibt die Instanz selbst zurück.
- fit_transform(X, y=None, sample_weight=None)[source]#
Schätzer anpassen und Datensatz transformieren.
- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Eingabedaten zum Erstellen von Wäldern. Verwenden Sie
dtype=np.float32für maximale Effizienz.- yIgnoriert
Wird nicht verwendet, ist aber aus Gründen der API-Konsistenz per Konvention vorhanden.
- sample_weightarray-like der Form (n_samples,), Standardwert=None
Sample-Gewichte. Wenn None, dann werden die Samples gleich gewichtet. Splits, die Kindknoten mit Nettogewicht Null oder negativ erzeugen würden, werden bei der Suche nach einem Split in jedem Knoten ignoriert. Im Falle einer Klassifizierung werden Splits auch ignoriert, wenn sie dazu führen würden, dass eine einzelne Klasse in einem Kindknoten ein negatives Gewicht trägt.
- Gibt zurück:
- X_transformedspärliche Matrix der Form (n_samples, n_out)
Transformierter Datensatz.
- get_feature_names_out(input_features=None)[source]#
Holt die Ausgabemerkmale für die Transformation.
- Parameter:
- input_featuresarray-like von str oder None, default=None
Wird nur verwendet, um Feature-Namen mit den in
fitgesehenen Namen zu validieren.
- Gibt zurück:
- feature_names_outndarray von str-Objekten
Transformierte Feature-Namen im Format
randomtreesembedding_{tree}_{leaf}, wobeitreeder Baum ist, der zur Erzeugung des Blattes verwendet wurde, undleafder Index eines Blattknotens in diesem Baum ist. Beachten Sie, dass das Knotenkennzeichnungsschema sowohl zur Kennzeichnung von Knoten mit Kindern (Split-Knoten) als auch von Blattknoten verwendet wird. Nur letztere können als Ausgabefeatures vorhanden sein. Infolgedessen fehlen Indizes in den Ausgabefeature-Namen.
- get_metadata_routing()[source]#
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_params(deep=True)[source]#
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.
- set_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') RandomTreesEmbedding[source]#
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_output(*, transform=None)[source]#
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)[source]#
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)[source]#
Datensatz transformieren.
- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Zu transformierende Eingabedaten. Verwenden Sie
dtype=np.float32für maximale Effizienz. Spärliche Matrizen werden ebenfalls unterstützt, verwenden Sie spärlichecsr_matrixfür maximale Effizienz.
- Gibt zurück:
- X_transformedspärliche Matrix der Form (n_samples, n_out)
Transformierter Datensatz.
Galeriebeispiele#
Hashing-Merkmals-Transformation mit Totally Random Trees
Manifold Learning auf handschriftlichen Ziffern: Locally Linear Embedding, Isomap…