bayesianNetClassifier

bnet

Descripción

La acción `bnet` del conjunto de acciones `bayesianNetClassifier` en SAS Viya permite entrenar un clasificador de red bayesiana. Este tipo de modelo es útil para la clasificación predictiva, ya que modela las dependencias probabilísticas entre un conjunto de variables. La acción puede aprender diferentes tipos de estructuras de red (como Naive, TAN, PC) y utiliza esta estructura para clasificar una variable objetivo basándose en las variables de entrada.

bayesianNetClassifier.bnet { alpha=doubles, attributes={casinvardescs}, bestModel=boolean, code={aircodegen}, codeGroup='string', display={displayTables}, freq='string', id={'strings'}, indepTest='ALL' | 'CHIGSQUARE' | 'CHISQUARE' | 'GSQUARE' | 'MI', inNetwork={castable}, inputs={casinvardescs}, maxParents=integer, miAlpha=double, missingInt='IGNORE' | 'IMPUTE', missingNom='IGNORE' | 'IMPUTE' | 'LEVEL', nominals={casinvardescs}, numBin=integer, outNetwork={casouttable}, output={BnetOutputStatement}, outputTables={outputTables}, parenting={'strings'}, partByFrac={partByFracStatement}, partByVar={partByVarStatement}, preScreening={'strings'}, printtarget=boolean, resident=boolean, saveState={casouttable}, structures={'strings'}, table={castable}, target='string', varSelect={'strings'} }
Parámetros
ParámetroDescripción
alpha Especifica el nivel de significancia para las pruebas de independencia utilizando estadísticas de chi-cuadrado o G-cuadrado. Puede especificar hasta cinco valores para seleccionar el mejor modelo.
attributes Cambia los atributos de las variables utilizadas en esta acción.
bestModel Cuando se establece en True, selecciona el mejor modelo basado en los criterios de validación.
code Genera código de puntuación SAS DATA step o DS2 para aplicar el modelo a nuevos datos.
codeGroup Especifica un grupo de código para la generación de código.
display Especifica una lista de tablas de resultados para enviar al cliente para su visualización.
freq Especifica la variable de frecuencia que contiene el número de veces que se observa cada fila.
id Especifica las variables a copiar de la tabla de entrada a la tabla de salida.
indepTest Especifica el método para las pruebas de independencia (CHISQUARE, GSQUARE, MI, etc.).
inNetwork Especifica la tabla de entrada que define los enlaces a incluir o excluir en la red.
inputs Especifica las variables de entrada a utilizar para el análisis.
maxParents Especifica el número máximo de padres para cada nodo en la red.
miAlpha Especifica el nivel de significancia para las pruebas de independencia que utilizan información mutua.
missingInt Especifica cómo manejar los valores faltantes para las variables de intervalo (IGNORE o IMPUTE).
missingNom Especifica cómo manejar los valores faltantes para las variables nominales (IGNORE, IMPUTE o LEVEL).
nominals Especifica las variables nominales a utilizar para el análisis.
numBin Especifica el número de bins para la discretización de las variables de intervalo.
outNetwork Especifica la tabla de salida para la estructura de la red y las distribuciones de probabilidad.
output Crea una tabla de salida para contener los valores predichos de la variable objetivo.
outputTables Lista los nombres de las tablas de resultados para guardar como tablas CAS en el servidor.
parenting Especifica los métodos de aprendizaje de la estructura (BESTONE o BESTSET).
partByFrac Particiona los datos de entrada en conjuntos de entrenamiento, validación y prueba por fracción.
partByVar Particiona los datos de entrada utilizando una variable que define los roles de las observaciones.
preScreening Especifica el método de cribado inicial para las variables de entrada (ONE para dependientes del objetivo, ZERO para todas).
printtarget Cuando se establece en True, genera nombres para la variable objetivo predicha y las variables de probabilidad predichas.
resident Especifica si la tabla de modelo debe permanecer en memoria después de la ejecución de la acción.
saveState Especifica la tabla en la que se guardará el estado del modelo para puntuaciones futuras.
structures Especifica los tipos de estructura de red a aprender (NAIVE, TAN, PC, MB, GENERAL).
table Especifica la tabla de entrada que contiene los datos de entrenamiento.
target Especifica la variable objetivo (nominal) a predecir.
varSelect Especifica el método de selección de variables más allá del cribado previo.
Creación de Datos de Ejemplo

Este código crea una tabla en memoria llamada `SAMPLE_DATA` con variables categóricas y una variable objetivo `Target`. Estos datos se utilizarán para entrenar el clasificador de red bayesiana.

¡Copiado!
1DATA casuser.SAMPLE_DATA;
2 call streaminit(123);
3 DO i = 1 to 1000;
4 var1 = rand('table', 0.25, 0.5, 0.25);
5 var2 = rand('table', 0.5, 0.5);
6 var3 = rand('table', 0.1, 0.2, 0.7);
7 IF (var1=1 and var3=3) THEN Target = 'A';
8 ELSE IF (var2=2) THEN Target = 'B';
9 ELSE Target = 'C';
10 OUTPUT;
11 END;
12RUN;

Ejemplos

Este ejemplo entrena un clasificador Naive Bayes simple. Utiliza la tabla `SAMPLE_DATA`, define `Target` como la variable objetivo y las `var1`, `var2`, `var3` como entradas nominales. El modelo entrenado se guarda en la tabla `BNET_MODEL`.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1PROC CAS;
2 bayesianNetClassifier.bnet /
3 TABLE={name='SAMPLE_DATA'},
4 target='Target',
5 inputs={{name='var1'}, {name='var2'}, {name='var3'}},
6 nominals={'var1', 'var2', 'var3', 'Target'},
7 structures={'NAIVE'},
8 saveState={name='BNET_MODEL', replace=true};
9RUN;

Este ejemplo demuestra un uso más complejo. Entrena y compara múltiples estructuras de red (TAN, PC) con diferentes números máximos de padres (1 a 3) y diferentes niveles de significancia (alpha). La acción seleccionará el mejor modelo basado en el error de clasificación en los datos de validación, que se crean particionando los datos de entrada (70% para entrenamiento, 30% para validación).

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1PROC CAS;
2 bayesianNetClassifier.bnet /
3 TABLE={name='SAMPLE_DATA'},
4 target='Target',
5 inputs={{name='var1'}, {name='var2'}, {name='var3'}},
6 nominals={'var1', 'var2', 'var3', 'Target'},
7 partByFrac={validate=0.3, seed=456},
8 structures={'TAN', 'PC'},
9 maxParents=3,
10 parenting='BESTSET',
11 alpha={0.05, 0.1},
12 bestModel=true,
13 outNetwork={name='BNET_NETWORK', replace=true},
14 saveState={name='BNET_BEST_MODEL', replace=true};
15RUN;

FAQ

¿Cuál es el propósito de la acción bnet?
¿Qué hace el parámetro 'alpha'?
¿Cómo se manejan los valores perdidos para las variables de intervalo con el parámetro 'missingInt'?
¿Cómo se manejan los valores perdidos para las variables nominales con el parámetro 'missingNom'?
¿Qué tipos de estructuras de red se pueden especificar con el parámetro 'structures'?
¿Para qué se utiliza el parámetro 'varSelect'?
¿Qué especifica el parámetro 'parenting'?

Escenarios asociados

Caso de uso
Entrenamiento de un Modelo Naive Bayes para Predicción de Respuesta a Campaña de Marketing

Un equipo de marketing desea predecir qué clientes tienen más probabilidades de responder a una nueva campaña basándose en sus datos demográficos e históricos. Se elige un model...

Caso de uso
Selección del Mejor Modelo de Red Bayesiana para Ayuda al Diagnóstico Médico

Una institución sanitaria busca un modelo predictivo robusto para ayudar en el diagnóstico de una enfermedad. Es crucial comparar diferentes estructuras de red (TAN, PC) y estra...

Caso de uso
Prueba de Estrategias de Gestión de Datos Faltantes en un Modelo de Riesgo Crediticio

Una entidad financiera necesita construir un modelo de riesgo crediticio, pero sus datos de origen contienen valores faltantes en variables clave como el historial laboral y el ...