Evaluar un modelo

Los resultados de la prueba interna te proporcionan un resumen del rendimiento del modelo en un período específico. Se puede usar para medir el rendimiento del modelo en un intervalo de tiempo independiente del que se usa en el entrenamiento o también con el tiempo para verificar la degradación del rendimiento.

Cómo realizar una prueba interna

Para crear un recurso BacktestResult, consulta Cómo crear y administrar los resultados de la prueba interna.

En particular, debes seleccionar las siguientes opciones:

  • Los datos que se usarán para el backtesting:

    Especifica un conjunto de datos y una hora de finalización dentro del período del conjunto de datos.

    El entrenamiento usa etiquetas y funciones basadas en meses de calendario completos hasta el mes de la hora de finalización seleccionada, sin incluir el mes. Para obtener más información, consulta Intervalos de tiempo del conjunto de datos.

    Especifica cuántos meses de datos etiquetados se usarán para la prueba inversa (es decir, la cantidad de períodos de la prueba interna).

  • Un modelo creado con un conjunto de datos coherente:

    Consulta Configura un motor.

Períodos de prueba interna

El campo backtestPeriods especifica de cuántos meses calendario consecutivos usar las funciones y etiquetas en la evaluación de rendimiento de este modelo.

Lo siguiente se aplica a los datos de backtest:

  • Los meses que se usan en la evaluación son los meses calendario completos más recientes antes del endTime especificado. Por ejemplo, si endTime es 2023-04-03T23:21:00Z y backtestPeriods es 5, se usan las etiquetas de los siguientes meses: 2023-03, 2023-02, 2023-01, 2022-12 y 2022-11.
  • Cuando evalúes un modelo para prepararlo en la producción, debes usar los datos disponibles más recientes a fin de realizar una prueba inversa.
  • Los períodos de la prueba inversa se deben establecer en 3 o más. Se reservan dos meses del período de prueba interna para tener en cuenta las alertas repetidas, y los meses restantes se usan a fin de generar etiquetas positivas para la evaluación de rendimiento.

  • Evita usar meses superpuestos para el entrenamiento y las pruebas inversas, ya que esto podría sobreajustarse. Asegúrate de que las horas de finalización del backtest y del entrenamiento estén al menos un backtestPeriods de distancia. Es decir,

    (mes de finalización de los resultados de la prueba interna) >= (mes de la hora de finalización del modelo) + backtestPeriods

De forma opcional, también puedes crear resultados de predicción para un modelo y realizar tus propios análisis del rendimiento del modelo a nivel de grupo.

Resultado de la prueba interna

Los metadatos de resultados de la prueba inversa contienen las siguientes métricas. En particular, estas métricas te muestran lo siguiente:

  • El rendimiento del modelo en comparación con las etiquetas de un período separado y para una variedad de volúmenes de investigación diferentes o umbrales de puntuación de riesgo

  • Cualquier cambio grande en la que la familia de atributos admita el conjunto de datos (entre ajuste de motor, entrenamiento, evaluación y predicción)

Nombre de la métrica Descripción de la métrica Ejemplo de valor de la métrica
ObservedRecallValues Métrica de recuperación medida en el conjunto de datos especificado para la prueba inversa. La API incluye 20 de estas mediciones, en diferentes puntos de operación, distribuidas de manera uniforme desde 0 (no incluido) hasta 2 * partyInvestigationsPerPeriodHint. La API agrega una medida de recuperación final en partyInvestigationsPerPeriodHint.

{
  "recallValues": [
    {
      "partyInvestigationsPerPeriod": 5000,
      "recallValue": 0.80,
      "scoreThreshold": 0.42,
    },
    ...
    ...
    {
      "partyInvestigationsPerPeriod": 8000,
      "recallValue": 0.85,
      "scoreThreshold": 0.30,
    },
  ],
}
Falta de

Porcentaje de valores faltantes en todos los atributos de cada familia de atributos.

Lo ideal sería que todas las familias de atributos de IA contra el lavado de dinero tengan un valor de Falta de 0. Es posible que se produzcan excepciones cuando los datos subyacentes de esas familias de funciones no estén disponibles para la integración.

Un cambio significativo en este valor para cualquier familia de atributos entre el ajuste, el entrenamiento, la evaluación y la predicción puede indicar incoherencia en los conjuntos de datos usados.


{
  "featureFamilies": [
    {
      "featureFamily": "unusual_wire_credit_activity",
      "missingnessValue": 0.00,
    },
    ...
    ...
    {
      "featureFamily": "party_supplementary_data_id_3",
      "missingnessValue": 0.45,
    },
  ],
}
Sesgo

Métricas que muestran el sesgo entre los conjuntos de datos de entrenamiento y predicción o de prueba interna. El sesgo familiar indica cambios en la distribución de los valores de los atributos dentro de una familia de atributos, ponderados por la importancia del atributo dentro de esa familia. El sesgo máximo indica el sesgo máximo de cualquier atributo dentro de esa familia.

Los valores de sesgo varían desde 0, que representa que no hay un cambio significativo en la distribución de los valores de los atributos de la familia, hasta 1 para el cambio más significativo. Un valor alto para el sesgo familiar o el sesgo máximo indica un cambio significativo en la estructura de tus datos de una forma que puede afectar el rendimiento del modelo. El sesgo familiar toma el valor -1 cuando el modelo no usa ningún atributo de la familia.

Para valores de sesgo grandes, realiza una de las siguientes acciones:

  • Investigar los cambios en los datos que usa esa familia de atributos (consulta los materiales de asistencia para la administración de modelos) y solucionar cualquier problema con los datos de entrada
  • Vuelve a entrenar un modelo con datos más recientes

Debes establecer umbrales para actuar en función de los valores de sesgo familiar y máximo en función de la observación de la variación natural en las métricas de sesgo durante varios meses.


{
  "featureFamilies": [
    {
      "featureFamily": "unusual_wire_credit_activity",
      "familySkewValue": 0.10,
      "maxSkewValue": 0.14,
    },
    ...
    ...
    {
      "featureFamily": "party_supplementary_data_id_3",
      "familySkewValue": 0.11,
      "maxSkewValue": 0.11,
    },
  ],
}