Detaillierte Erläuterung der DecisionTreeRegressor-Parameter

grundlegende Einführung

Ohne Titel

Parameter

  • Kriterium {„squared_error“, „friedman_mse“, „absolute_error“, „poisson“}, default=“squared_error“

    Eine Funktion zum Messen der Qualität der Segmentierung. Unterstützte Standards sind:

    • „squared_error“ ist der durchschnittliche quadratische Fehler, der der Varianzreduzierung als Merkmalsauswahlkriterium entspricht und den Durchschnittswert jedes Endknotens verwendet, um den L2-Verlust zu minimieren.
    • „friedman_mse“, um potenzielle Aufteilungen mithilfe des mittleren quadratischen Fehlers und der durch Friedman verbesserten Bewertung zu finden;
    • „absolute_error“ ist der mittlere absolute Fehler, wobei der Median jedes Endknotens verwendet wird, um den L1-Verlust zu minimieren;
    • „poisson“ verwendet einen reduzierten Poisson-Bias, um Aufteilungen zu finden.
  • Splitter {„best“, „random“}, default=“best“

    Die Strategie zur Auswahl der Aufteilung für jeden Knoten. Unterstützte Strategien sind „am besten“, um die beste Aufteilung auszuwählen, und „zufällig“, um die beste zufällige Aufteilung auszuwählen.

  • max_ Depth int, Standard = Keine

    Die maximale Tiefe des Baumes. Wenn nicht, werden die Knoten erweitert, bis alle Blätter rein sind oder bis alle Blätter weniger Proben als min_samples_split enthalten.

  • min_samples_split int oder float, Standard=2

    Die Mindestanzahl von Stichproben, die zum Teilen eines internen Knotens erforderlich sind.

    • min_samples_splitWenn int, dann als Mindestzahl betrachtet .
    • Wenn Float, dann min_samples_splitein Bruch, ceil(min_samples_split * n_samples)die minimale Anzahl von Proben pro Teilung.
  • min_samples_leaf int oder float, Standard=1

    Die für einen Blattknoten erforderliche Mindestanzahl an Stichproben. min_samples_leafAufteilungspunkte beliebiger Tiefe werden nur dann berücksichtigt, wenn sowohl im linken als auch im rechten Zweig noch mindestens Trainingsbeispiele vorhanden sind . Dies kann zu einer Glättung des Modells führen, insbesondere bei der Regression.

    • Wenn int, dann min_samples_leafals kleinste Zahl betrachten.
    • Wenn Float, dann min_samples_leafein Bruch, ceil(min_samples_leaf * n_samples)der die minimale Anzahl von Stichproben pro Knoten darstellt.
      In Version 0.18 geändert: Float-Werte für Brüche hinzugefügt.
  • min_weight_fraction_leaf float, Standard = 0,0

    Der kleinste gewichtete Bruchteil der Summe der Gewichte (alle Eingabestichproben), der an einem Blattknoten erforderlich ist. Wenn „sample_weight“ nicht angegeben wird, werden die Stichproben gleich gewichtet.

  • max_features int, float oder {„auto“, „sqrt“, „log2“}, default=None

    Die Anzahl der Funktionen, die bei der Suche nach der besten Aufteilung berücksichtigt werden müssen.

    • Wenn int, max_featureswerden Features bei jeder Teilung berücksichtigt.
    • Wenn Float, dann max_featureseine Bewertung, um max(1, int(max_features * n_features_in_))Features für jede Aufteilung zu berücksichtigen.
    • Wenn „auto“, dann max_features=n_features.
    • Wenn „sqrt“, dann max_features=sqrt(n_features).
    • Wenn „log2“, dann max_features=log2(n_features).
    • Wenn nicht, na ja max_features=n_features. Veraltet seit Version 1.1: Die Option „auto“ war in Version 1.1 veraltet und wird in Version 1.3 entfernt. Hinweis: Die Suche nach Teilungen wird erst dann beendet, wenn mindestens eine gültige Teilung der Knotenstichproben gefunden wird, selbst wenn eine effiziente Überprüfung überschüssiger max_featuresFeatures erforderlich ist.
  • random_state int, RandomState-Instanz oder None, Standard=None

    Steuert die Zufälligkeit des Schätzers. Auch splitterwenn die Option auf festgelegt ist "best", werden Features bei jeder Teilung zufällig permutiert. Wenn max_features < n_features, wählt der Algorithmus jede Aufteilung zufällig aus max_featuresund findet unter ihnen die beste Aufteilung. Aber selbst dann max_features=n_featureskann die gefundene optimale Aufteilung in verschiedenen Läufen unterschiedlich sein. Dies ist der Fall, wenn die Standardverbesserung für mehrere Splits gleich ist und ein Split zufällig ausgewählt werden muss. random_statemuss auf eine Ganzzahl festgelegt werden , um ein deterministisches Verhalten während der Anpassung zu erhalten .

  • max_leaf_nodes int, default=None

    max_leaf_nodesZüchten Sie mit „Best First“ einen Baum. Beste Knoten werden als relativ reduzierte Verunreinigungen definiert. Wenn nicht, ist die Anzahl der Blattknoten unbegrenzt.

  • min_impurity_decrease float, Standard = 0,0

    Wenn die durch eine Knotenteilung verursachte Verunreinigungsreduzierung größer oder gleich diesem Wert ist, wird der Knoten geteilt.

    Die Gleichung zur gewichteten Verringerung der Verunreinigung lautet wie folgt:

    N_t / N * (impurity - N_t_R / N_t * right_impurity
                        - N_t_L / N_t * left_impurity)
    

    Dabei ist N die Gesamtzahl der Stichproben, N_tdie Zahl der Stichproben des aktuellen Knotens, N_t_Ldie Zahl der Stichproben des linken untergeordneten Knotens N_t_Rund die Zahl der Stichproben des rechten untergeordneten Knotens.

    N, N_tund N_t_Ralle N_t_Lbeziehen sich auf gewichtete Summen, wenn sample_weight übergeben wird.

  • ccp_alpha nicht negativer Float, Standard = 0,0

    Komplexitätsparameter für minimale Kosten-Komplexitätsbereinigung. ccp_alphaDer Teilbaum mit der größten Kostenkomplexität und weniger als wird ausgewählt . Standardmäßig erfolgt keine Beschneidung.

Codebeispiel

import pandas as pd
from sklearn.tree import DecisionTreeRegressor

# Path of the file to read
iowa_file_path = '../input/home-data-for-ml-course/train.csv'

home_data = pd.read_csv(iowa_file_path)
y = home_data.SalePrice
feature_columns = ['LotArea', 'YearBuilt', '1stFlrSF', '2ndFlrSF', 'FullBath', 'BedroomAbvGr', 'TotRmsAbvGrd']
X = home_data[feature_columns]

# Specify Model
iowa_model = DecisionTreeRegressor()
# Fit Model
iowa_model.fit(X, y)

print("First in-sample predictions:", iowa_model.predict(X.head()))
print("Actual target values for those homes:", y.head().tolist())

Verweise

sklearn.tree.DecisionTreeRegressor

Acho que você gosta

Origin blog.csdn.net/weixin_46421722/article/details/129520089
Recomendado
Clasificación