percentile

assess

L'essentiel
En resumen
Dentro del ecosistema de SAS Viya, la acción assess funciona como un motor de diagnóstico avanzado para medir la precisión de los modelos de aprendizaje automático. Este recurso es indispensable para los desarrolladores que necesitan extraer curvas de elevación (lift) y matrices de confusión, facilitando una comparación objetiva entre diferentes estrategias de modelado. Al soportar la evaluación por particiones y el uso de pesos en las observaciones, garantiza un análisis detallado del comportamiento del modelo en escenarios del mundo real. Hemos diseñado esta sección de preguntas frecuentes para resolver sus dudas sobre la configuración de parámetros y la interpretación de los resultados estadísticos obtenidos.

Descripción

La acción `assess` del conjunto de acciones `percentile` se utiliza para evaluar y comparar el rendimiento de modelos predictivos. Es especialmente útil para modelos de clasificación, generando métricas como la curva ROC, la tabla de elevación (lift chart) y estadísticas de ajuste para determinar la precisión y eficacia del modelo.

percentile.assess <result=results> <status=rc> / attributes={{casinvardesc-1} <, {casinvardesc-2}, ...>}, binNum=64-bit-integer, casOut={casouttable}, cutStep=double, epsilon=double, event="string", fitStatOut={casouttable}, freq="variable-name", groupByLimit=64-bit-integer, includeCutoffOne=TRUE | FALSE, includeFitStat=TRUE | FALSE, includeLift=TRUE | FALSE, includeRoc=TRUE | FALSE, includeZeroDepth=TRUE | FALSE, inputs={{casinvardesc-1} <, {casinvardesc-2}, ...>}, maxIters=integer, method="EXACT" | "ITERATIVE", nBins=integer, noMissingTarget=TRUE | FALSE, partition=TRUE | FALSE, partKey={"string-1" <, "string-2", ...>}, pEvent={"string-1" <, "string-2", ...>}, pResponse="variable-name", pVar={"variable-name-1" <, "variable-name-2", ...>}, response="variable-name", responseFmt="string", rocOut={casouttable}, table={castable}, useRawPResponse=TRUE | FALSE, userCutoff=double, weight="variable-name";
Parámetros
ParámetroDescripción
attributes Especifica atributos temporales, como un formato, para aplicar a las variables de entrada.
binNum Número de bins (contenedores) a utilizar en el cálculo de tres pasadas.
casOut Especifica la tabla de salida para los resultados de la evaluación de la curva de elevación (lift).
cutStep Especifica el tamaño del paso a utilizar para los cálculos de la curva ROC.
epsilon Especifica la tolerancia utilizada para determinar la convergencia del algoritmo iterativo para el cálculo de percentiles.
event Especifica el valor formateado de la variable de respuesta que representa el evento de interés (por ejemplo, '1' para un evento positivo).
fitStatOut Especifica la tabla de salida para las estadísticas de ajuste del modelo.
freq Especifica la variable numérica que contiene la frecuencia de cada observación.
groupByLimit Especifica el número máximo de niveles en un conjunto de agrupación (group-by).
includeCutoffOne Cuando se establece en True, incluye una fila para el punto de corte (cutoff) de 1 en las estadísticas ROC, lo que simplifica el trazado de la curva.
includeFitStat Cuando se establece en False, las estadísticas de ajuste no se generan para acelerar el cálculo.
includeLift Cuando se establece en False, los cálculos de la tabla de elevación (lift) no se generan.
includeRoc Cuando se establece en False, los cálculos de la curva ROC no se generan.
includeZeroDepth Cuando se establece en True, incluye una fila para la profundidad (depth) de 0 en las estadísticas de elevación, lo que simplifica el trazado de la curva de elevación.
inputs Especifica las variables de predicción del modelo a evaluar.
maxIters Especifica el número máximo de iteraciones para el algoritmo de cálculo de percentiles.
method Especifica el algoritmo para el análisis de percentiles. 'ITERATIVE' es más rápido pero aproximado, 'EXACT' es preciso pero más lento.
nBins Especifica el número de contenedores (bins) a utilizar para los cálculos de la tabla de elevación (lift).
noMissingTarget Si se establece en True, excluye las observaciones donde la variable objetivo tiene un valor perdido.
partition Cuando se establece en True y la tabla está particionada, los resultados se calculan para cada partición de manera eficiente.
partKey Especifica una clave de partición para calcular los resultados solo para esa partición específica.
pEvent Especifica los eventos que corresponden a cada variable de probabilidad en `pVar`.
pResponse Especifica la variable de respuesta predicha para la evaluación del modelo.
pVar Especifica las variables que contienen las probabilidades del evento.
response Especifica la variable de respuesta real (objetivo) para la evaluación del modelo.
responseFmt Especifica un formato temporal para la variable de respuesta.
rocOut Especifica la tabla de salida para los cálculos de la curva ROC.
table Especifica la tabla de entrada que contiene los datos a evaluar.
useRawPResponse Cuando se establece en True, se utilizan los valores brutos de la variable de respuesta predicha para filtrar las observaciones.
userCutoff Especifica un punto de corte definido por el usuario para la matriz de confusión.
weight Especifica la variable numérica que contiene el peso de cada observación.
Creación de Datos de Ejemplo

Este código crea una tabla en memoria llamada `hmeq_scored` que contiene los resultados de la puntuación de un modelo. Incluye una variable objetivo `BAD`, una probabilidad predicha `P_BAD1` y una variable de partición `_PARTIND_` para simular conjuntos de entrenamiento y validación.

¡Copiado!
1 
2DATA casuser.hmeq_scored;
3SET sampsio.hmeq;
4_PARTIND_ = (mod(_n_, 2));
5P_BAD1 = 1 / (1 + exp(-(0.5 - 0.1 * DELINQ + 0.05 * DEROG - 0.02 * VALUE)));
6 
7RUN;
8 

Ejemplos

Este ejemplo realiza una evaluación básica de un modelo de clasificación. Utiliza la variable `BAD` como objetivo y `P_BAD1` como la probabilidad predicha para el evento '1'. Los resultados se agrupan por la variable de partición `_PARTIND_`.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1 
2PROC CAS;
3percentile.assess TABLE={name='hmeq_scored', groupBy={'_PARTIND_'}}, response='BAD', event='1', pVar={'P_BAD1'}, pEvent={'1'};
4 
5RUN;
6 
Resultado :
La acción genera varias tablas de resultados, incluyendo estadísticas de ajuste (FitStat), datos para la curva ROC (ROCInfo) y datos para la curva de elevación (LiftInfo) para cada partición de datos (entrenamiento y validación).

Este ejemplo realiza una evaluación más detallada, generando tablas de salida explícitas para los datos de la curva ROC (`roc_results`) y la curva de elevación (`lift_results`). Se especifica un número de contenedores (`nBins`) de 100 para la curva de elevación y se incluyen filas para profundidad cero y punto de corte uno para facilitar el trazado de las curvas.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1 
2PROC CAS;
3percentile.assess TABLE={name='hmeq_scored', groupBy={'_PARTIND_'}}, response='BAD', event='1', pVar={'P_BAD1'}, pEvent={'1'}, nBins=100, includeZeroDepth=true, includeCutoffOne=true, rocOut={name='roc_results', replace=true}, casOut={name='lift_results', replace=true};
4 
5RUN;
6 
Resultado :
Además de las tablas de resultados por defecto, se crean dos tablas adicionales en la caslib activa: `roc_results` con los datos detallados de la curva ROC y `lift_results` con los datos de la curva de elevación para cada grupo. Estas tablas pueden ser utilizadas para visualizaciones personalizadas.

FAQ

¿Cuál es el propósito de la acción 'assess' en el conjunto de acciones 'percentile'?
¿Qué especifica el parámetro 'event'?
¿Cómo se pueden generar estadísticas de ajuste (fit statistics) y dónde se almacenan?
¿Qué hace el parámetro 'cutStep' y cuál es su valor predeterminado?
¿Es posible incluir un punto de corte de 1 en las estadísticas ROC?
¿Para qué se utiliza el parámetro 'pResponse'?
¿Qué métodos de cálculo de percentiles están disponibles a través del parámetro 'method'?

Escenarios asociados

Caso de uso
Evaluación de un Modelo de Propensión de Compra por Segmento de Cliente

Una empresa de retail ha desarrollado un modelo para predecir qué clientes son más propensos a responder a una nueva campaña de marketing. El objetivo es evaluar la eficacia del...

Caso de uso
Comparación de Métodos de Cálculo de Percentiles en un Gran Volumen de Datos de Fraude

Una entidad financiera necesita evaluar diariamente un modelo de detección de fraude sobre millones de transacciones. La velocidad del cálculo es crítica. Este escenario busca c...

Caso de uso
Evaluación de Modelo con Datos Faltantes, Ponderaciones y Puntos de Corte Personalizados

Un hospital analiza un modelo que predice el riesgo de reingreso de pacientes. Los datos son imperfectos: algunos pacientes tienen un estado de reingreso desconocido (missing) y...