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
alphaEspecifica 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.
attributesCambia los atributos de las variables utilizadas en esta acción.
bestModelCuando se establece en True, selecciona el mejor modelo basado en los criterios de validación.
codeGenera código de puntuación SAS DATA step o DS2 para aplicar el modelo a nuevos datos.
codeGroupEspecifica un grupo de código para la generación de código.
displayEspecifica una lista de tablas de resultados para enviar al cliente para su visualización.
freqEspecifica la variable de frecuencia que contiene el número de veces que se observa cada fila.
idEspecifica las variables a copiar de la tabla de entrada a la tabla de salida.
indepTestEspecifica el método para las pruebas de independencia (CHISQUARE, GSQUARE, MI, etc.).
inNetworkEspecifica la tabla de entrada que define los enlaces a incluir o excluir en la red.
inputsEspecifica las variables de entrada a utilizar para el análisis.
maxParentsEspecifica el número máximo de padres para cada nodo en la red.
miAlphaEspecifica el nivel de significancia para las pruebas de independencia que utilizan información mutua.
missingIntEspecifica cómo manejar los valores faltantes para las variables de intervalo (IGNORE o IMPUTE).
missingNomEspecifica cómo manejar los valores faltantes para las variables nominales (IGNORE, IMPUTE o LEVEL).
nominalsEspecifica las variables nominales a utilizar para el análisis.
numBinEspecifica el número de bins para la discretización de las variables de intervalo.
outNetworkEspecifica la tabla de salida para la estructura de la red y las distribuciones de probabilidad.
outputCrea una tabla de salida para contener los valores predichos de la variable objetivo.
outputTablesLista los nombres de las tablas de resultados para guardar como tablas CAS en el servidor.
parentingEspecifica los métodos de aprendizaje de la estructura (BESTONE o BESTSET).
partByFracParticiona los datos de entrada en conjuntos de entrenamiento, validación y prueba por fracción.
partByVarParticiona los datos de entrada utilizando una variable que define los roles de las observaciones.
preScreeningEspecifica el método de cribado inicial para las variables de entrada (ONE para dependientes del objetivo, ZERO para todas).
printtargetCuando se establece en True, genera nombres para la variable objetivo predicha y las variables de probabilidad predichas.
residentEspecifica si la tabla de modelo debe permanecer en memoria después de la ejecución de la acción.
saveStateEspecifica la tabla en la que se guardará el estado del modelo para puntuaciones futuras.
structuresEspecifica los tipos de estructura de red a aprender (NAIVE, TAN, PC, MB, GENERAL).
tableEspecifica la tabla de entrada que contiene los datos de entrenamiento.
targetEspecifica la variable objetivo (nominal) a predecir.
varSelectEspecifica 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 ...