bart

bartGauss

L'essentiel
En resumen
a modelización de fenómenos donde la variable respuesta es continua requiere algoritmos que se adapten dinámicamente a la realidad de los datos. La acción bartGauss en SAS Viya facilita la implementación de árboles de regresión aditivos bayesianos, diseñados específicamente para manejar distribuciones normales con una gran flexibilidad. Al sumar las contribuciones de múltiples árboles débiles, esta herramienta permite a los ingenieros de datos capturar relaciones no lineales y dependencias complejas con una intervención manual mínima. A continuación, ofrecemos una recopilación de dudas frecuentes y sus resoluciones técnicas para guiarle en el ajuste fino del modelo y la interpretación de sus inferencias estadísticas.

Descripción

Ajusta modelos de árboles de regresión aditivos bayesianos (BART) a datos de respuesta distribuidos normalmente.

bart.bartGauss <result=results> <status=rc> / alpha=double, attributes={{casinvardesc-1} <, {casinvardesc-2}, ...>}, class={{classStatement-1} <, {classStatement-2}, ...>}, differences={{bartScoreMargin_scoreDiff-1} <, {bartScoreMargin_scoreDiff-2}, ...>}, display={displayTables}, distributeChains=integer, freq="variable-name", inputs={{casinvardesc-1} <, {casinvardesc-2}, ...>}, leafSigmaK=double, margins={{bartScoreMargin_evaluate-1} <, {bartScoreMargin_evaluate-2}, ...>}, maxTrainTime=double, minLeafSize=integer, missing="MACBIG" | "MACSMALL" | "NONE" | "SEPARATE", model={bartGaussModel}, nBI=integer, nBins=integer, nClassLevelsPrint=integer, nMC=integer, nMCDist=integer, nominals={{casinvardesc-1} <, {casinvardesc-2}, ...>}, nThin=integer, nTree=integer, obsLeafMapInMem=TRUE | FALSE, orderSplit=integer, output={bartOutputStatement}, outputMargins={casouttable}, outputTables={outputTables}, partByFrac={partByFracStatement}, partByVar={partByVarStatement}, quantileBin=TRUE | FALSE, sampleSummary={bartGauss_sampleSummary}, seed=64-bit-integer, sigmaDF=double, sigmaLambda=double, sigmaQuantile=double, store={casouttablebasic}, table={castable}, target="variable-name", trainInMem=TRUE | FALSE, treePrior={bart_treePrior}, varAutoCorr={integer-1 <, integer-2, ...>}, varEst=double ;
Parámetros
ParámetroDescripción
alpha especifica el nivel de significancia a utilizar para construir límites de credibilidad de colas iguales para los márgenes predictivos.
attributes cambia los atributos de las variables utilizadas en la acción. Actualmente, los atributos especificados en los parámetros de entradas y nominales son ignorados.
class nombra las variables de clasificación para usar como variables explicativas en el análisis.
differences especifica las diferencias de los márgenes predictivos.
display especifica una lista de tablas de resultados para enviar al cliente para su visualización.
distributeChains especifica un modo distribuido que divide el muestreo MCMC en un entorno de cuadrícula. Este modo distribuye los datos de entrenamiento a los trabajadores para que el número especificado de trabajadores tenga una copia completa de los datos de entrenamiento y ejecute una cadena separada. Este parámetro no es aplicable cuando se está en modo de una sola máquina. Cuando se especifica un valor de 0, se ejecuta una sola cadena y a cada nodo trabajador se le asigna una porción de los datos de entrenamiento.
freq nombra la variable numérica que contiene la frecuencia de ocurrencia para cada observación.
inputs especifica las variables de entrada a utilizar en el análisis.
leafSigmaK especifica el valor utilizado para determinar la varianza a priori para el parámetro de la hoja.
margins especifica un margen predictivo.
maxTrainTime especifica un límite superior (en segundos) en el tiempo para el muestreo MCMC.
minLeafSize especifica el número mínimo de observaciones que cada hijo de una división debe contener en los datos de entrenamiento para que la división sea considerada.
missing especifica cómo manejar los valores perdidos en las variables predictoras.
model nombra la variable dependiente y los efectos explicativos.
nBI especifica el número de iteraciones de calentamiento (burn-in) a realizar antes de que la acción comience a guardar muestras para la predicción.
nBins especifica el número de contenedores a utilizar para la discretización de las variables de entrada continuas.
nClassLevelsPrint limita la visualización de los niveles de clase. El valor 0 suprime todos los niveles.
nMC especifica el número de iteraciones MCMC, excluyendo las iteraciones de calentamiento. Este es el tamaño de la muestra MCMC si la tasa de adelgazamiento es 1. Esta opción se ignora si especifica el parámetro nMCDist y ejecuta cadenas distribuidas.
nMCDist especifica el número de iteraciones MCMC para cada cadena, excluyendo las iteraciones de calentamiento, cuando se utilizan múltiples cadenas.
nominals especifica las variables de entrada nominales a utilizar en el análisis.
nThin especifica la tasa de adelgazamiento (thinning) de la simulación.
nTree especifica el número de árboles en una muestra del conjunto de suma de árboles.
obsLeafMapInMem cuando se establece en True, almacena en memoria un mapeo de cada observación a los nodos terminales cuando se entrena el modelo.
orderSplit especifica la cardinalidad mínima para la cual una entrada categórica utiliza reglas de división según el orden de los niveles.
output crea una tabla en el servidor que contiene estadísticas por observación, que se calculan después de ajustar el modelo.
outputMargins especifica la tabla de salida para los márgenes predictivos.
outputTables lista los nombres de las tablas de resultados para guardar como tablas CAS en el servidor.
partByFrac especifica la fracción de los datos que se utilizará para las pruebas.
partByVar nombra la variable y sus valores utilizados para particionar los datos en roles de entrenamiento y prueba.
quantileBin cuando se establece en True, especifica que los límites de los contenedores se establecen en cuantiles de las entradas numéricas en lugar de contenedores de igual ancho.
sampleSummary crea una tabla en el servidor que contiene un resumen de las muestras del conjunto de suma de árboles.
seed especifica una semilla para iniciar el generador de números pseudoaleatorios.
sigmaDF especifica los grados de libertad de la distribución a priori chi-cuadrado inversa escalada para el parámetro de varianza.
sigmaLambda especifica el parámetro de escala de la distribución a priori chi-cuadrado inversa escalada para el parámetro de varianza. No puede especificar este parámetro y el parámetro sigmaQuantile.
sigmaQuantile especifica el nivel de cuantil a utilizar para determinar el parámetro de escala de la distribución a priori chi-cuadrado inversa para el parámetro de varianza. No puede especificar este parámetro y el parámetro sigmaLambda.
store almacena el modelo en un objeto de tabla binaria que puede utilizar para la puntuación.
table especifica la tabla de datos de entrada.
target especifica la variable objetivo.
trainInMem cuando se establece en True, almacena los datos en memoria cuando se entrena el modelo.
treePrior especifica la distribución a priori de regularización para el conjunto de suma de árboles.
varAutoCorr especifica los retardos de autocorrelación para el parámetro de varianza.
varEst especifica el valor inicial para la varianza. Por defecto, el valor inicial de la varianza se determina mediante una regresión de mínimos cuadrados de la variable de respuesta sobre las variables predictoras.
Creación de Datos de Muestra

Este código crea una tabla CAS de muestra llamada 'mycas.sample_data' con una variable de respuesta continua ('y') y varias variables predictoras ('x1' a 'x5') para ser utilizada en los ejemplos de bartGauss.

¡Copiado!
1DATA mycas.sample_data;
2 DO i = 1 to 100;
3 x1 = rand('UNIFORM');
4 x2 = rand('UNIFORM');
5 x3 = rand('UNIFORM');
6 x4 = rand('NORMAL', 0, 1);
7 x5 = rand('NORMAL', 5, 2);
8 y = 10 * sin(x1 * x2) + 20 * (x3 - 0.5)**2 + 10 * x4 + 5 * x5 + rand('NORMAL', 0, 1);
9 OUTPUT;
10 END;
11 RUN;

Ejemplos

Este ejemplo muestra cómo ajustar un modelo BART simple con una variable de respuesta ('y') y cinco predictores continuos ('x1' a 'x5') de la tabla 'mycas.sample_data'.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1PROC CAS;
2 bart.bartGauss /
3 TABLE={name='sample_data'}
4 model={depVars={{name='y'}}, effects={{vars={'x1', 'x2', 'x3', 'x4', 'x5'}}}}
5;
6 RUN;
7 QUIT;
Resultado :
La acción ejecuta el análisis y devuelve tablas que resumen el modelo, como 'Información del Modelo', 'Información de Datos' y 'Resumen de Variables'. No se generan tablas de salida persistentes en este ejemplo simple.

Este ejemplo ajusta un modelo BART más complejo utilizando 100 árboles, 500 iteraciones de MCMC después de 250 iteraciones de calentamiento (burn-in). También particiona los datos, utilizando el 30% para pruebas, y guarda el modelo entrenado en una tabla CAS llamada 'bart_model_store'.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1PROC CAS;
2 bart.bartGauss /
3 TABLE={name='sample_data'}
4 model={depVars={{name='y'}}, effects={{vars={'x1', 'x2', 'x3', 'x4', 'x5'}}}}
5 nTree=100
6 nBI=250
7 nMC=500
8 seed=12345
9 partByFrac={test=0.3, seed=54321}
10 store={name='bart_model_store', replace=true}
11;
12 RUN;
13 QUIT;
Resultado :
La acción realiza el entrenamiento y la validación del modelo. Además de las tablas de resumen, se crea una tabla CAS llamada 'bart_model_store' en la caslib activa, que contiene el estado del modelo para futuras tareas de puntuación. Las tablas de resultados incluirán estadísticas de ajuste para las particiones de entrenamiento y prueba.

FAQ

¿Para qué se utiliza la acción bartGauss?
¿Qué especifica el parámetro 'nTree'?
¿Cómo maneja la acción bartGauss los valores perdidos por defecto?
¿Cuál es la función del parámetro 'store'?
¿Qué indica el parámetro 'nBI'?
¿Para qué sirve el parámetro 'leafSigmaK'?

Escenarios asociados

Caso de uso
Predicción del Gasto del Cliente para Campaña de Marketing Personalizada

Una empresa minorista quiere optimizar su presupuesto de marketing prediciendo el gasto futuro de sus clientes. El objetivo es construir un modelo BART para identificar a los cl...

Caso de uso
Análisis de Rendimiento de Sensores en un Entorno de Big Data

Una planta de fabricación recopila millones de lecturas de sensores por hora para predecir la degradación de una pieza clave. Se necesita un modelo que pueda entrenarse eficient...

Caso de uso
Predicción de Riesgo Clínico con Datos Incompletos

Un hospital quiere predecir el nivel de glucosa en sangre de pacientes diabéticos basándose en datos clínicos que a menudo están incompletos. El modelo debe ser robusto y capaz ...