mlTools

crossValidate

Descripción

Realiza la validación cruzada con acciones de aprendizaje automático especificadas. Esta herramienta es fundamental para evaluar la robustez de un modelo predictivo dividiendo el conjunto de datos en varios subconjuntos (pliegues), entrenando el modelo en algunos de estos pliegues y validándolo en el pliegue restante, repitiendo el proceso para cada pliegue.

mlTools.crossValidate <result=results> <status=rc> / casOut={caslib="string", compress=TRUE | FALSE, indexVars={"variable-name-1" <, "variable-name-2", ...>}, label="string", lifetime=64-bit-integer, maxMemSize=64-bit-integer, memoryFormat="DVR" | "INHERIT" | "STANDARD", name="table-name", promote=TRUE | FALSE, replace=TRUE | FALSE, replication=integer, tableRedistUpPolicy="DEFER" | "NOREDIST" | "REBALANCE", threadBlockSize=64-bit-integer, timeStamp="string", where={"string-1" <, "string-2", ...>}}, kFolds=integer, logLevel=integer, modelType="BNET" | "DECISIONTREE" | "FACTMAC" | "FOREST" | "GRADBOOST" | "NEURALNET" | "SVM", nSubsessionWorkers=integer, parallelFolds=TRUE | FALSE, seed=integer, targetEvent="string", trainOptions={key-1=any-list-or-data-type-1 <, key-2=any-list-or-data-type-2, ...>} ;
Parámetros
ParámetroDescripción
casOutEspecifica el nombre y los detalles de la tabla de salida de puntuación.
kFoldsEspecifica el número de pliegues a utilizar para la validación cruzada.
logLevelEspecifica el nivel de los mensajes de registro que se escribirán: sin registros (0), registros de inicialización y finalización (1), se añaden registros de resumen de configuración (2), se añaden registros de inicio y finalización de pliegue (3).
modelTypeEspecifica el tipo de modelo al que se aplica la validación cruzada.
nSubsessionWorkersEspecifica el número de nodos de trabajo para cada subsesión a utilizar para la evaluación paralela de los pliegues.
parallelFoldsCuando se establece en True, evalúa los pliegues en paralelo.
seedEspecifica la semilla a utilizar para el muestreo de pliegues para la validación cruzada.
targetEventEspecifica el nombre del evento objetivo nominal a utilizar para la evaluación del modelo.
trainOptionsEspecifica una lista de parámetros para la acción de entrenamiento del modelo a utilizar en el proceso de validación cruzada.
Creación de Datos de Ejemplo

Este ejemplo crea la tabla 'HMEQ' en la caslib 'CASUSER' para ser utilizada en los ejemplos de validación cruzada. La tabla contiene información sobre préstamos hipotecarios.

¡Copiado!
1DATA casuser.hmeq; SET sampsio.hmeq; RUN;

Ejemplos

Este ejemplo realiza una validación cruzada de 5 pliegues en la tabla 'HMEQ' utilizando un modelo de árbol de decisión. El objetivo es predecir la variable 'BAD'.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1PROC CAS;
2 mlTools.crossValidate /
3 modelType='DECISIONTREE',
4 kFolds=5,
5 seed=1234,
6 trainOptions={
7 TABLE={name='hmeq'},
8 target='BAD',
9 inputs={'LOAN', 'MORTDUE', 'VALUE', 'YOJ', 'DEROG', 'DELINQ', 'CLAGE', 'NINQ', 'CLNO', 'DEBTINC'},
10 nominals={'BAD', 'REASON', 'JOB', 'DEROG', 'DELINQ'}
11 };
12RUN; QUIT;
Resultado :
La acción devuelve tablas que resumen los resultados de la validación cruzada, incluyendo métricas de ajuste para cada pliegue y un resumen general.

Este ejemplo realiza una validación cruzada de 10 pliegues utilizando un modelo de Gradient Boosting. Se especifican varias opciones de entrenamiento, como el número de árboles y la profundidad máxima. También se guardan las puntuaciones de todos los pliegues en una tabla de salida 'hmeq_scored'.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1PROC CAS;
2 mlTools.crossValidate /
3 modelType='GRADBOOST',
4 kFolds=10,
5 seed=5678,
6 parallelFolds=true,
7 casOut={name='hmeq_scored', replace=true},
8 trainOptions={
9 TABLE={name='hmeq'},
10 target='BAD',
11 inputs={'LOAN', 'MORTDUE', 'VALUE', 'YOJ', 'DEROG', 'DELINQ', 'CLAGE', 'NINQ', 'CLNO', 'DEBTINC'},
12 nominals={'BAD', 'REASON', 'JOB'},
13 nTrees=50,
14 maxLevel=4
15 };
16RUN; QUIT;
Resultado :
La acción produce varias tablas de resultados, incluyendo el resumen del ajuste, la información del modelo y las estadísticas de error para cada pliegue. Además, la tabla 'hmeq_scored' se crea en la caslib 'CASUSER' y contiene las predicciones para cada observación en su respectivo pliegue de validación.

FAQ

¿Qué es la acción crossValidate?
¿Cuál es el propósito del parámetro 'kFolds'?
¿Para qué se utiliza el parámetro 'modelType'?
¿Qué especifica el parámetro 'trainOptions'?
¿Cómo se pueden evaluar los pliegues en paralelo?
¿Qué hace el parámetro 'seed'?
¿Cómo se puede controlar el nivel de detalle de los registros (logs)?