Algoritmos de regresión
- Temas:
- Consultas
Creado para:
- Desarrollador
Este documento proporciona una visión general de varios algoritmos de regresión, centrándose en su configuración, parámetros clave y uso práctico en modelos estadísticos avanzados. Los algoritmos de regresión se utilizan para modelar la relación entre variables dependientes e independientes, prediciendo resultados continuos basados en los datos observados. Cada sección incluye descripciones de parámetros y código de ejemplo para ayudarle a implementar y optimizar estos algoritmos para tareas como regresión lineal, de bosque aleatorio y de supervivencia.
Decision Tree regresión
El aprendizaje de Decision Tree es un método de aprendizaje supervisado que se utiliza en estadísticas, minería de datos y aprendizaje automático. En este enfoque, se utiliza un árbol de decisión de clasificación o regresión como modelo predictivo para extraer conclusiones sobre un conjunto de observaciones.
Parámetros
En la tabla siguiente se describen los parámetros clave para configurar y optimizar el rendimiento de los modelos del árbol de decisión.
Parámetro | Descripción | Valor predeterminado | Valores posibles |
---|---|---|---|
MAX_BINS | Este parámetro especifica el número máximo de grupos utilizados para discretizar funciones continuas y determinar divisiones en cada nodo. Más bandejas ofrecen una granularidad y un detalle más precisos. | 32 | Debe ser al menos 2 y el número de categorías de cualquier característica categórica. |
CACHE_NODE_IDS | Este parámetro determina si se deben almacenar en caché los ID de nodo para cada instancia. Si false , el algoritmo pasa árboles a los ejecutores para que coincidan con las instancias con los nodos. Si true , el algoritmo almacena en caché los ID de nodo de cada instancia, lo que puede acelerar la formación de árboles más profundos. Los usuarios pueden configurar la frecuencia con la que se debe comprobar o deshabilitar la caché estableciendo CHECKPOINT_INTERVAL . | false | true o false |
CHECKPOINT_INTERVAL | Este parámetro especifica la frecuencia con la que se deben comprobar los ID de nodo en caché. Por ejemplo, si se establece en 10 , la caché se comprobará cada 10 iteraciones. Esto solo es aplicable si CACHE_NODE_IDS está establecido en true y el directorio de puntos de comprobación está configurado en org.apache.spark.SparkContext . | 10 | (>=1) |
IMPURITY | Este parámetro especifica el criterio utilizado para calcular la ganancia de información. Los valores admitidos son entropy y gini . | gini | entropy , gini |
MAX_DEPTH | Este parámetro especifica la profundidad máxima del árbol. Por ejemplo, una profundidad de 0 significa 1 nodo hoja, mientras que una profundidad de 1 significa 1 nodo interno y 2 nodos hoja. La profundidad debe estar dentro del intervalo [0, 30] . | 5 | [0, 30] |
MIN_INFO_GAIN | Este parámetro establece la ganancia mínima de información necesaria para que una división se considere válida en un nodo de árbol. | 0,0 | (>=0,0) |
MIN_WEIGHT_FRACTION_PER_NODE | Este parámetro especifica la fracción mínima del recuento de muestra ponderado que cada nodo secundario debe tener después de una división. Si alguno de los nodos secundarios tiene una fracción inferior a este valor, la división se descartará. | 0,0 | [0,0; 0,5] |
MIN_INSTANCES_PER_NODE | Este parámetro establece el número mínimo de instancias que cada nodo secundario debe tener después de una división. Si una división genera menos instancias que este valor, la división se descarta como no válida. | 1 | (>=1) |
MAX_MEMORY_IN_MB | Este parámetro especifica la memoria máxima, en megabytes (MB), asignada para la agregación del histograma. Si la memoria es demasiado pequeña, sólo se dividirá un nodo por iteración y sus agregados pueden superar este tamaño. | 256 | Cualquier valor entero positivo |
PREDICTION_COL | Este parámetro especifica el nombre de la columna utilizada para almacenar predicciones. | "predicción" | Cualquier cadena |
SEED | Este parámetro define la semilla aleatoria utilizada en el modelo. | Ninguna | Cualquier número de 64 bits |
WEIGHT_COL | Este parámetro especifica el nombre de la columna de peso. Si este parámetro no está establecido o está vacío, todos los pesos de instancia se tratan como 1.0 . | Sin configurar | Cualquier cadena |
Ejemplo
CREATE MODEL modelname OPTIONS(
type = 'decision_tree_regression'
) AS
SELECT col1, col2, col3 FROM training-dataset
Factorization Machines regresión
Factorization Machines es un algoritmo de aprendizaje de regresión que admite el descenso de degradado normal y el solucionador AdamW. El algoritmo se basa en el documento de S. Rendle (2010), "Factorization Machines".
Parámetros
La tabla siguiente describe los parámetros clave para configurar y optimizar el rendimiento de la regresión Factorization Machines.
Parámetro | Descripción | Valor predeterminado | Valores posibles |
---|---|---|---|
TOL | Este parámetro especifica la tolerancia de convergencia para el algoritmo. Los valores más altos pueden dar como resultado una convergencia más rápida, pero con menos precisión. | 1E-6 | (>= 0) |
FACTOR_SIZE | Este parámetro define la dimensionalidad de los factores. Los valores más altos aumentan la complejidad del modelo. | 8 | (>= 0) |
FIT_INTERCEPT | Este parámetro indica si el modelo debe incluir un término de intersección. | true | true , false |
FIT_LINEAR | Este parámetro especifica si se debe incluir un término lineal (también denominado término unidireccional) en el modelo. | true | true , false |
INIT_STD | Este parámetro define la desviación estándar de los coeficientes iniciales utilizados en el modelo. | 0,01 | (>= 0) |
MAX_ITER | Este parámetro especifica el número máximo de iteraciones para que se ejecute el algoritmo. | 100 | (>= 0) |
MINI_BATCH_FRACTION | Este parámetro establece la fracción de minilote, que determina la parte de datos utilizada en cada lote. Debe estar en el rango (0, 1] . | 1,0 | (0, 1] |
REG_PARAM | Este parámetro establece el parámetro de regularización para evitar el sobreajuste. | 0,0 | (>= 0) |
SEED | Este parámetro especifica la semilla aleatoria utilizada para la inicialización del modelo. | Ninguna | Cualquier número de 64 bits |
SOLVER | Este parámetro especifica el algoritmo de Solver utilizado para la optimización. | "adamW" | gd (descenso de degradado), adamW |
STEP_SIZE | Este parámetro especifica el tamaño inicial del paso (o la tasa de aprendizaje) para el primer paso de optimización. | 1,0 | Cualquier valor positivo |
PREDICTION_COL | Este parámetro especifica el nombre de la columna donde se almacenan las predicciones. | "predicción" | Cualquier cadena |
Ejemplo
CREATE MODEL modelname OPTIONS(
type = 'factorization_machines_regression'
) AS
SELECT col1, col2, col3 FROM training-dataset
Generalized Linear regresión
A diferencia de la regresión lineal, que supone que el resultado sigue una distribución normal (gaussiana), los modelos Generalized Linear (GLM) permiten que el resultado siga diferentes tipos de distribuciones, como Poisson o binomial, según la naturaleza de los datos.
Parámetros
La tabla siguiente describe los parámetros clave para configurar y optimizar el rendimiento de la regresión Generalized Linear.
MAX_ITER
irls
).REG_PARAM
TOL
1E-6
AGGREGATION_DEPTH
treeAggregate
.FAMILY
gaussian
, binomial
, poisson
, gamma
y tweedie
.gaussian
, binomial
, poisson
, gamma
, tweedie
FIT_INTERCEPT
true
true
, false
LINK
identity
, log
, inverse
, logit
, probit
, cloglog
y sqrt
.identity
, log
, inverse
, logit
, probit
, cloglog
, sqrt
LINK_POWER
1 - variancePower
, que se ajusta al paquete R statmod
. Las potencias específicas de los vínculos de 0, 1, -1 y 0,5 corresponden a los vínculos Log, Identity, Inverse y Sqrt, respectivamente.SOLVER
irls
(mínimos cuadrados ponderados de forma iterativa).irls
VARIANCE_POWER
[1, inf)
. Los poderes de varianza de 0, 1 y 2 corresponden a las familias Gaussiana, Poisson y Gamma, respectivamente.[1, inf)
LINK_PREDICTION_COL
OFFSET_COL
WEIGHT_COL
1.0
. En la familia Binomial, los pesos corresponden al número de ensayos y los pesos no enteros se redondean en el cálculo de AIC.Ejemplo
CREATE MODEL modelname OPTIONS(
type = 'generalized_linear_reg'
) AS
SELECT col1, col2, col3 FROM training-dataset
Gradient Boosted Tree regresión
Los árboles impulsados por gradiente (TGB) son un método efectivo de clasificación y regresión que combina las predicciones de múltiples árboles de decisión para mejorar la precisión predictiva y el rendimiento del modelo.
Parámetros
La tabla siguiente describe los parámetros clave para configurar y optimizar el rendimiento de la regresión Gradient Boosted Tree.
MAX_BINS
CACHE_NODE_IDS
false
, el algoritmo pasa árboles a los ejecutores para que coincidan con las instancias con los nodos. Si true
, el algoritmo almacena en caché los ID de nodo de cada instancia. El almacenamiento en caché puede acelerar el entrenamiento de árboles más profundos.false
true
, false
CHECKPOINT_INTERVAL
10
significa que la caché se comprueba cada 10 iteraciones.MAX_DEPTH
0
significa 1 nodo hoja y la profundidad 1
significa 1 nodo interno con 2 nodos hoja.MIN_INFO_GAIN
MIN_WEIGHT_FRACTION_PER_NODE
MIN_INSTANCES_PER_NODE
MAX_MEMORY_IN_MB
PREDICTION_COL
VALIDATION_INDICATOR_COL
false
para aprendizaje y true
para validación.LEAF_COL
FEATURE_SUBSET_STRATEGY
auto
, all
, onethird
, sqrt
, log2
o una fracción entre 0 y 1,0SEED
WEIGHT_COL
1.0
.LOSS_TYPE
squared
(L2) y absolute
(L1). Nota: Los valores no distinguen entre mayúsculas y minúsculas.STEP_SIZE
(0, 1]
, utilizado para reducir la contribución de cada estimador.(0, 1]
MAX_ITER
SUBSAMPLING_RATE
(0, 1]
.(0, 1]
Ejemplo
CREATE MODEL modelname OPTIONS(
type = 'gradient_boosted_tree_regression'
) AS
SELECT col1, col2, col3 FROM training-dataset
Isotonic regresión
Isotonic Regression es un algoritmo utilizado para ajustar distancias de forma iterativa preservando al mismo tiempo el orden relativo de las disimilitudes en los datos.
Parámetros
La tabla siguiente describe los parámetros clave para configurar y optimizar el rendimiento de Isotonic Regression.
ISOTONIC
true
o antitónica (disminuyendo) al false
.true
true
, false
WEIGHT_COL
1.0
.PREDICTION_COL
FEATURE_INDEX
featuresCol
es una columna vectorial. Si no se establece, el valor predeterminado es 0
. De lo contrario, no tiene ningún efecto.Ejemplo
CREATE MODEL modelname OPTIONS(
type = 'isotonic_regression'
) AS
SELECT col1, col2, col3 FROM training-dataset
Linear regresión
Linear Regression es un algoritmo de aprendizaje automático supervisado que ajusta una ecuación lineal a los datos para modelar la relación entre una variable dependiente y características independientes.
Parámetros
La tabla siguiente describe los parámetros clave para configurar y optimizar el rendimiento de Linear Regression.
MAX_ITER
REGPARAM
ELASTICNETPARAM
Ejemplo
CREATE MODEL modelname OPTIONS(
type = 'linear_reg'
) AS
SELECT col1, col2, col3 FROM training-dataset
Random Forest Regression
Random Forest Regression es un algoritmo ensamblado que crea varios árboles de decisión durante el entrenamiento y devuelve la predicción promedio de esos árboles para tareas de regresión, lo que ayuda a evitar el sobreajuste.
Parámetros
La tabla siguiente describe los parámetros clave para configurar y optimizar el rendimiento de Random Forest Regression.
MAX_BINS
CACHE_NODE_IDS
false
, el algoritmo pasa árboles a los ejecutores para que coincidan con las instancias con los nodos. Si true
, el algoritmo almacena en caché los ID de nodo de cada instancia, lo que acelera la formación de árboles más profundos.false
true
, false
CHECKPOINT_INTERVAL
10
significa que la caché se comprueba cada 10 iteraciones.IMPURITY
entropy
, gini
MAX_DEPTH
0
significa 1 nodo hoja y la profundidad 1
significa 1 nodo interno y 2 nodos hoja.MIN_INFO_GAIN
MIN_WEIGHT_FRACTION_PER_NODE
MIN_INSTANCES_PER_NODE
MAX_MEMORY_IN_MB
BOOTSTRAP
true
, false
NUM_TREES
1
, no se usa el bootstrapping. Si es mayor que 1
, se aplica el bootstrapping.SUBSAMPLING_RATE
(0, 1]
.LEAF_COL
PREDICTION_COL
SEED
WEIGHT_COL
1.0
.Ejemplo
CREATE MODEL modelname OPTIONS(
type = 'random_forest_regression'
) AS
SELECT col1, col2, col3 FROM training-dataset
Survival Regression
Survival Regression se usa para ajustar un modelo paramétrico de regresión de supervivencia, conocido como el modelo Accelerated Failure Time (AFT), basado en Weibull distribution. Puede apilar instancias en bloques para obtener un rendimiento mejorado.
Parámetros
La tabla siguiente describe los parámetros clave para configurar y optimizar el rendimiento de Survival Regression.
MAX_ITER
TOL
1E-6
AGGREGATION_DEPTH
treeAggregate
. Si las cotas de la función o el número de particiones son grandes, este parámetro se puede definir en un valor mayor.FIT_INTERCEPT
true
, false
PREDICTION_COL
CENSOR_COL
1
indica que el evento se produjo (sin censura), mientras que 0
significa que el evento está censurado.MAX_BLOCK_SIZE_IN_MB
0
permite el ajuste automático.Ejemplo
CREATE MODEL modelname OPTIONS(
type = 'survival_regression'
) AS
SELECT col1, col2, col3 FROM training-dataset
Pasos siguientes
Después de leer este documento, ahora sabe cómo configurar y utilizar varios algoritmos de regresión. A continuación, consulte los documentos sobre clasificación y agrupación en clúster para obtener más información sobre otros tipos de modelos estadísticos avanzados.