Regressionsalgorithmen
- Themen:
- Abfragen
Erstellt für:
- Entwickler
Dieses Dokument bietet einen Überblick über verschiedene Regressionsalgorithmen, wobei der Schwerpunkt auf ihrer Konfiguration, den wichtigsten Parametern und der praktischen Verwendung in erweiterten statistischen Modellen liegt. Regressionsalgorithmen werden verwendet, um die Beziehung zwischen abhängigen und unabhängigen Variablen zu modellieren und kontinuierliche Ergebnisse auf der Grundlage der beobachteten Daten vorherzusagen. Jeder Abschnitt enthält Parameterbeschreibungen und Beispiel-Code, der Ihnen bei der Implementierung und Optimierung dieser Algorithmen für Aufgaben wie lineare, zufällige Gesamtstruktur- und Überlebensregression hilft.
Decision Tree Regression
Decision Tree Lernen ist eine überwachte Lernmethode, die in der Statistik, im Data Mining und im maschinellen Lernen verwendet wird. Bei diesem Ansatz wird ein Klassifizierungs- oder Regressionsentscheidungsbaum als prädiktives Modell verwendet, um Rückschlüsse auf eine Reihe von Beobachtungen zu ziehen.
Parameter
In der folgenden Tabelle sind die wichtigsten Parameter zur Konfiguration und Optimierung der Leistung von Entscheidungsbaum-Modellen aufgeführt.
Parameter | Beschreibung | Standardwert | Mögliche Werte |
---|---|---|---|
MAX_BINS | Dieser Parameter gibt die maximale Anzahl von Klassen an, die verwendet werden, um kontinuierliche KEs zu diskretisieren und Aufspaltungen bei jedem Knoten zu bestimmen. Mehr Klassen führen zu einer feineren Granularität und Detailgenauigkeit. | 32 | Muss mindestens 2 und mindestens die Anzahl der Kategorien in einem kategorialen Merkmal sein. |
CACHE_NODE_IDS | Dieser Parameter bestimmt, ob Knoten-IDs für jede Instanz zwischengespeichert werden. Wenn false , übergibt der Algorithmus Bäume an ausführende Benutzer, damit Instanzen mit Knoten abgeglichen werden. Wenn true , speichert der Algorithmus Knoten-IDs für jede Instanz zwischen, was das Training tiefer stehender Baumstrukturen beschleunigen kann. Benutzer können konfigurieren, wie oft der Cache überprüft werden soll, oder ihn deaktivieren, indem sie CHECKPOINT_INTERVAL festlegen. | false | true oder false |
CHECKPOINT_INTERVAL | Dieser Parameter gibt an, wie oft die Knoten-IDs im Cache überprüft werden sollen. Wenn Sie beispielsweise auf 10 setzen, wird der Cache alle 10 Iterationen überprüft. Dies gilt nur, wenn CACHE_NODE_IDS auf true gesetzt ist und das Checkpoint-Verzeichnis in org.apache.spark.SparkContext konfiguriert ist. | 10 | (>=1) |
IMPURITY | Dieser Parameter gibt das Kriterium für die Berechnung des Informationsgewinns an. Unterstützte Werte sind entropy und gini . | gini | entropy , gini |
MAX_DEPTH | Dieser Parameter gibt die maximale Tiefe der Baumstruktur an. Beispielsweise bedeutet eine Tiefe von 0 1 Blattknoten, während eine Tiefe von 1 1 interner Knoten und 2 Blattknoten bedeutet. Die Tiefe muss innerhalb des Bereichs [0, 30] liegen. | 5 | [,0 ] |
MIN_INFO_GAIN | Dieser Parameter legt den minimalen Informationsgewinn fest, der erforderlich ist, damit eine Aufspaltung in einem Strukturknoten als gültig betrachtet wird. | 0,0 | (>=0.0) |
MIN_WEIGHT_FRACTION_PER_NODE | Dieser Parameter gibt den Mindestbruchteil der gewichteten Stichprobenanzahl an, den jeder untergeordnete Knoten nach einer Aufspaltung aufweisen muss. Wenn einer der untergeordneten Knoten einen Bruchteil kleiner als diesen Wert hat, wird die Aufspaltung verworfen. | 0,0 | [0,0, 0,5 ] |
MIN_INSTANCES_PER_NODE | Dieser Parameter legt die Mindestanzahl von Instanzen fest, die jeder untergeordnete Knoten nach einer Aufspaltung aufweisen muss. Wenn eine Aufspaltung zu weniger Instanzen als diesem Wert führt, wird die Aufspaltung als ungültig verworfen. | 1 | (>=1) |
MAX_MEMORY_IN_MB | Dieser Parameter gibt den maximalen Speicher in Megabyte (MB) an, der für die Histogrammaggregation zugewiesen wird. Wenn der Speicher zu klein ist, wird pro Iteration nur ein Knoten aufgeteilt, und seine Aggregate können diese Größe überschreiten. | 256 | Beliebiger positiver ganzzahliger Wert |
PREDICTION_COL | Dieser Parameter gibt den Namen der Spalte an, die zum Speichern von Prognosen verwendet wird. | „Prognose“ | Beliebige Zeichenfolge |
SEED | Dieser Parameter legt die im Modell verwendeten zufälligen Testadressen fest. | Keine | Beliebige 64-Bit-Zahl |
WEIGHT_COL | Dieser Parameter gibt den Namen der Gewichtungsspalte an. Wenn dieser Parameter nicht festgelegt oder leer ist, werden alle Instanzgewichte als 1.0 behandelt. | Nicht festgelegt | Beliebige Zeichenfolge |
Beispiel
CREATE MODEL modelname OPTIONS(
type = 'decision_tree_regression'
) AS
SELECT col1, col2, col3 FROM training-dataset
Factorization Machines Regression
Factorization Machines ist ein Regressionslernalgorithmus, der den normalen Gradientenabstieg und den AdamW-Solver unterstützt. Der Algorithmus basiert auf dem Aufsatz von S. Rendle (2010), "Factorization Machines.“
Parameter
In der folgenden Tabelle sind die wichtigsten Parameter für die Konfiguration und Optimierung der Leistung Factorization Machines Regression aufgeführt.
Parameter | Beschreibung | Standardwert | Mögliche Werte |
---|---|---|---|
TOL | Dieser Parameter legt die Konvergenztoleranz für den Algorithmus fest. Höhere Werte können zu einer schnelleren Konvergenz, aber weniger Präzision führen. | 1E-6 | (>= 0) |
FACTOR_SIZE | Dieser Parameter definiert die Dimensionalität der Faktoren. Höhere Werte erhöhen die Modellkomplexität. | 8 | (>= 0) |
FIT_INTERCEPT | Dieser Parameter gibt an, ob das Modell einen Abfangbegriff enthalten soll. | true | true , false |
FIT_LINEAR | Dieser Parameter gibt an, ob ein linearer Begriff (auch als 1-Wege-Begriff bezeichnet) in das Modell aufgenommen werden soll. | true | true , false |
INIT_STD | Dieser Parameter definiert die Standardabweichung der anfänglichen Koeffizienten, die im Modell verwendet werden. | 0,01 | (>= 0) |
MAX_ITER | Dieser Parameter gibt die maximale Anzahl von Iterationen für den auszuführenden Algorithmus an. | 100 | (>= 0) |
MINI_BATCH_FRACTION | Dieser Parameter legt den Teil des Mini-Batches fest, der den Teil der Daten bestimmt, der in jedem Batch verwendet wird. Sie muss im Bereich (0, 1] liegen. | 1,0 | (0, 1] |
REG_PARAM | Dieser Parameter legt den Regularisierungsparameter fest, um eine Überanpassung zu verhindern. | 0,0 | (>= 0) |
SEED | Dieser Parameter gibt den zufälligen Seed an, der für die Modellinitialisierung verwendet wird. | Keine | Beliebige 64-Bit-Zahl |
SOLVER | Dieser Parameter gibt den Solver-Algorithmus für die Optimierung an. | „adamW“ | gd (Gefälle), adamW |
STEP_SIZE | Dieser Parameter gibt die anfängliche Schrittgröße (oder Lernrate) für den ersten Optimierungsschritt an. | 1,0 | Beliebiger positiver Wert |
PREDICTION_COL | Dieser Parameter gibt den Namen der Spalte an, in der Prognosen gespeichert werden. | „Prognose“ | Beliebige Zeichenfolge |
Beispiel
CREATE MODEL modelname OPTIONS(
type = 'factorization_machines_regression'
) AS
SELECT col1, col2, col3 FROM training-dataset
Generalized Linear Regression
Im Gegensatz zur linearen Regression, bei der davon ausgegangen wird, dass das Ergebnis einer normalen (Gauß'schen) Verteilung folgt, können Generalized Linear (GLMs) das Ergebnis je nach Art der Daten verschiedenen Verteilungstypen wie Poisson oder Binomialverteilung folgen lassen.
Parameter
In der folgenden Tabelle sind die wichtigsten Parameter für die Konfiguration und Optimierung der Leistung Generalized Linear Regression aufgeführt.
MAX_ITER
irls
).REG_PARAM
TOL
1E-6
AGGREGATION_DEPTH
treeAggregate
.FAMILY
gaussian
, binomial
, poisson
, gamma
und tweedie
.gaussian
, binomial
, poisson
, gamma
, tweedie
FIT_INTERCEPT
true
true
, false
LINK
identity
, log
, inverse
, logit
, probit
, cloglog
und sqrt
.identity
, log
, inverse
, logit
, probit
, cloglog
, sqrt
LINK_POWER
1 - variancePower
verwendet, das dem R-statmod
-Paket entspricht. Spezifische Link-Potenzen von 0, 1, -1 und 0,5 entsprechen den Log-, Identity-, Inverse- und SQRT-Links.SOLVER
irls
(iterativ neu gewichtete Kleinste Quadrate).irls
VARIANCE_POWER
[1, inf)
. Varianzwerte von 0, 1 und 2 entsprechen den Gauß-, Poisson- bzw. Gamma-Familien.[1, inf)
LINK_PREDICTION_COL
OFFSET_COL
WEIGHT_COL
1.0
behandelt. In der Binomialfamilie entsprechen Gewichtungen der Anzahl der Versuche, und Nicht-Ganzzahlgewichte werden in der AIC-Berechnung gerundet.Beispiel
CREATE MODEL modelname OPTIONS(
type = 'generalized_linear_reg'
) AS
SELECT col1, col2, col3 FROM training-dataset
Gradient Boosted Tree Regression
Gradient-Boosted Trees (GBTs) sind eine effektive Methode zur Klassifizierung und Regression, die die Vorhersagen mehrerer Entscheidungsbäume kombiniert, um die Vorhersagegenauigkeit und die Modellleistung zu verbessern.
Parameter
In der folgenden Tabelle sind die wichtigsten Parameter für die Konfiguration und Optimierung der Leistung Gradient Boosted Tree Regression aufgeführt.
MAX_BINS
CACHE_NODE_IDS
false
, übergibt der Algorithmus Bäume an ausführende Benutzer, damit Instanzen mit Knoten abgeglichen werden. Wenn true
, speichert der Algorithmus Knoten-IDs für jede Instanz zwischen. Caching kann das Training von tieferen Bäumen beschleunigen.false
true
, false
CHECKPOINT_INTERVAL
10
bedeutet beispielsweise, dass der Cache alle 10 Iterationen überprüft wird.MAX_DEPTH
0
Tiefe 1 Blattknoten und Tiefe 1
bedeutet 1 interner Knoten mit 2 Blattknoten.MIN_INFO_GAIN
MIN_WEIGHT_FRACTION_PER_NODE
MIN_INSTANCES_PER_NODE
MAX_MEMORY_IN_MB
PREDICTION_COL
VALIDATION_INDICATOR_COL
false
für Schulung und true
zur Validierung.LEAF_COL
FEATURE_SUBSET_STRATEGY
auto
, all
, onethird
, sqrt
, log2
oder ein Bruchteil zwischen 0 und 1,0SEED
WEIGHT_COL
1.0
behandelt.LOSS_TYPE
squared
(L2) und absolute
(L1). Hinweis: Bei Werten wird nicht zwischen Groß- und Kleinschreibung unterschieden.STEP_SIZE
(0, 1]
, die zum Verkleinern des Beitrags jeder Schätzung verwendet wird.(0, 1]
MAX_ITER
SUBSAMPLING_RATE
(0, 1]
.(0, 1]
Beispiel
CREATE MODEL modelname OPTIONS(
type = 'gradient_boosted_tree_regression'
) AS
SELECT col1, col2, col3 FROM training-dataset
Isotonic Regression
Isotonic Regression ist ein Algorithmus, der verwendet wird, um Entfernungen iterativ anzupassen und dabei die relative Reihenfolge der Unterschiede in den Daten beizubehalten.
Parameter
In der folgenden Tabelle sind die wichtigsten Parameter zur Konfiguration und Optimierung der Leistung von Isotonic Regression aufgeführt.
ISOTONIC
true
isotonisch (ansteigend) oder beim false
antitonisch (absteigend) sein soll.true
true
, false
WEIGHT_COL
1.0
behandelt.PREDICTION_COL
FEATURE_INDEX
featuresCol
eine Vektorspalte ist. Wenn nicht festgelegt, lautet der Standardwert 0
. Andernfalls hat es keine Wirkung.Beispiel
CREATE MODEL modelname OPTIONS(
type = 'isotonic_regression'
) AS
SELECT col1, col2, col3 FROM training-dataset
Linear Regression
Linear Regression ist ein überwachter Algorithmus für maschinelles Lernen, der eine lineare Gleichung an Daten anpasst, um die Beziehung zwischen einer abhängigen Variablen und unabhängigen Funktionen zu modellieren.
Parameter
In der folgenden Tabelle sind die wichtigsten Parameter zur Konfiguration und Optimierung der Leistung von Linear Regression aufgeführt.
MAX_ITER
REGPARAM
ELASTICNETPARAM
Beispiel
CREATE MODEL modelname OPTIONS(
type = 'linear_reg'
) AS
SELECT col1, col2, col3 FROM training-dataset
Random Forest Regression
Random Forest Regression ist ein Ensemble-Algorithmus, der während des Trainings mehrere Entscheidungsbäume erstellt und die durchschnittliche Prognose dieser Bäume für Regressionsaufgaben zurückgibt, um eine Überanpassung zu vermeiden.
Parameter
In der folgenden Tabelle sind die wichtigsten Parameter zur Konfiguration und Optimierung der Leistung von Random Forest Regression aufgeführt.
MAX_BINS
CACHE_NODE_IDS
false
, übergibt der Algorithmus Bäume an ausführende Benutzer, damit Instanzen mit Knoten abgeglichen werden. Wenn true
, speichert der Algorithmus Knoten-IDs für jede Instanz zwischen, wodurch das Training tiefer stehender Baumstrukturen beschleunigt wird.false
true
, false
CHECKPOINT_INTERVAL
10
bedeutet beispielsweise, dass der Cache alle 10 Iterationen überprüft wird.IMPURITY
entropy
, gini
MAX_DEPTH
0
Tiefe 1 Blattknoten und Tiefe 1
bedeutet 1 interner Knoten und 2 Blattknoten.MIN_INFO_GAIN
MIN_WEIGHT_FRACTION_PER_NODE
MIN_INSTANCES_PER_NODE
MAX_MEMORY_IN_MB
BOOTSTRAP
true
, false
NUM_TREES
1
, wird kein Bootstrapping durchgeführt. Wenn größer als 1
, wird Bootstrapping angewendet.SUBSAMPLING_RATE
(0, 1]
.LEAF_COL
PREDICTION_COL
SEED
WEIGHT_COL
1.0
behandelt.Beispiel
CREATE MODEL modelname OPTIONS(
type = 'random_forest_regression'
) AS
SELECT col1, col2, col3 FROM training-dataset
Survival Regression
Survival Regression wird verwendet, um ein parametrisches Überlebens-Regressionsmodell einzupassen, das als Accelerated Failure Time (AFT)-Modell bezeichnet wird und auf der Weibull distribution basiert. Zur Leistungssteigerung können Instanzen in Blöcken gestapelt werden.
Parameter
In der folgenden Tabelle sind die wichtigsten Parameter zur Konfiguration und Optimierung der Leistung von Survival Regression aufgeführt.
MAX_ITER
TOL
1E-6
AGGREGATION_DEPTH
treeAggregate
. Wenn die Elementabmessungen oder die Anzahl der Partitionen groß sind, kann dieser Parameter auf einen größeren Wert gesetzt werden.FIT_INTERCEPT
true
, false
PREDICTION_COL
CENSOR_COL
1
bedeutet, dass das Ereignis aufgetreten ist (unzensiert), während 0
bedeutet, dass das Ereignis zensiert wurde.MAX_BLOCK_SIZE_IN_MB
0
ermöglicht eine automatische Anpassung.Beispiel
CREATE MODEL modelname OPTIONS(
type = 'survival_regression'
) AS
SELECT col1, col2, col3 FROM training-dataset
Nächste Schritte
Nach dem Lesen dieses Dokuments wissen Sie jetzt, wie Sie verschiedene Regressionsalgorithmen konfigurieren und verwenden können. Weitere Informationen zu anderen Typen erweiterter statistischer Modelle finden in den DokumentenKlassifizierung und Clustering.