Evaluación del recomendador

Evalúa la precisión de las predicciones del modelo del recomendador

Categoría: machine learning/evaluar

Nota

Se aplica a: machine learning Studio (clásico)

Este contenido solo pertenece a Studio (clásico). Se han agregado módulos similares de arrastrar y colocar al diseñador de Azure Machine Learning. Obtenga más información en este artículo comparativa de las dos versiones.

Información general sobre el módulo

En este artículo se describe cómo usar el módulo evaluar el recomendador en Azure machine learning Studio (clásico) para medir la precisión de las predicciones realizadas por un modelo de recomendación. Con este módulo, puede evaluar cuatro tipos diferentes de recomendaciones:

  • Clasificaciones previstas para un usuario y un elemento determinados

  • Elementos recomendados para un usuario determinado

  • Una lista de usuarios encontrados que puedan estar relacionados con un usuario determinado

  • Una lista de elementos encontrados que puedan estar relacionados con un elemento determinado

Al crear predicciones con un modelo de recomendación, se devuelven resultados ligeramente diferentes para cada uno de estos tipos de predicción admitidos. El módulo de Evaluación del recomendador deduce el tipo de predicción del formato de columna del conjunto de resultados puntuado. Por ejemplo, el conjunto de datos puntuado puede contener:

  • tripleta usuario-elemento-clasificación
  • usuarios y sus elementos recomendados
  • usuarios y sus usuarios relacionados
  • elementos y sus elementos relacionados

El módulo también aplica las métricas de rendimiento adecuadas, en función del tipo de predicción que se realice.

Sugerencia

Obtenga información sobre todo lo que necesita saber sobre la experiencia de un extremo a otro de la creación de un sistema de recomendación en este tutorial desde el equipo de desarrollo de .NET. Incluye código de ejemplo y debate sobre cómo llamar a Azure Machine Learning desde una aplicación.

Compilación del motor de recomendaciones para aplicaciones .NET con Azure Machine Learning

Cómo configurar la evaluación del recomendador

El módulo de Evaluación del recomendador compara las predicciones generadas por un modelo de recomendación con los datos "reales" correspondientes. Por ejemplo, el módulo puntuar el recomendador Matchbox produce conjuntos de valores de puntuación que se pueden analizar con el recomendador de evaluación.

Requisitos

La Evaluación del recomendador requiere como entrada los siguientes conjuntos de datos.

Conjunto de datos de prueba

El conjunto de datos de prueba contiene los datos del "terreno real" en forma de tripleta usuario-elemento-clasificación.

Si ya tiene un conjunto de datos que contiene triples de usuario-elemento-calificación, puede aplicar el módulo Split Data (dividir datos ) mediante la opción RecommenderSplit , para crear un conjunto de datos de entrenamiento y un conjunto de pruebas relacionado a partir del conjunto de datos existente.

Conjunto de datos puntuado

El conjunto de datos puntuado contiene las predicciones generadas por el modelo de recomendación.

Las columnas de este segundo conjunto de datos dependen del tipo de predicción que estaba realizando durante la puntuación. Por ejemplo, el conjunto de datos puntuado puede contener:

  • Usuarios, elementos y clasificaciones que el usuario podría proporcionar para el elemento
  • Una lista de usuarios y elementos recomendados para ellos
  • Una lista de usuarios, con usuarios que probablemente sean similares a ellos
  • Una lista de elementos, junto con elementos smiliar

Métricas

Las métricas de rendimiento para el modelo se generan en función del tipo de entrada. Para más información, consulte estas secciones:

Evaluar las clasificaciones previstas

Al evaluar las clasificaciones previstas, el conjunto de datos puntuado (la segunda entrada a la Evaluación del recomendador) debe contener la tripleta usuario-elemento-clasificación, cumpliendo estos requisitos:

  • La primera columna del conjunto de datos contiene los identificadores de usuario.

  • La segunda columna contiene identificadores de elemento.

  • La tercera columna contiene las clasificaciones correspondientes del usuario-elemento.

Importante

Para que la evaluación sea correcta, los nombres de columna deben ser User, Itemy Rating, respectivamente.

La Evaluación del recomendador compara las clasificaciones en el conjunto de datos del terreno real con las clasificaciones previstas del conjunto de datos puntuado y calcula la desviación media (MAE) y el error cuadrático medio (RMSE).

Los otros parámetros del recomendador Evaluate no tienen ningún efecto en la evaluación de las predicciones de clasificación.

Evaluar recomendaciones de elemento

Al evaluar la recomendación de elemento, use un conjunto de datos puntuado que incluya los elementos recomendados para cada usuario:

  • La primera columna del conjunto de datos debe contener los identificadores de usuario.

  • Todas las columnas subsiguientes deben contener los identificadores de elemento recomendados correspondientes, ordenados según la importancia de un elemento para el usuario.

    Antes de conectar este conjunto de datos, recomendamos que ordene el conjunto de datos para que los elementos más relevantes aparezcan primero.

Los otros parámetros del recomendador Evaluate no tienen ningún efecto en la evaluación de las recomendaciones de los elementos.

Importante

Para que el recomendador de evaluación funcione, los nombres de columna deben ser User , Item 1 , Item 2 , etc Item 3 .

La Evaluación del recomendador calcula el promedio de ganancia acumulativa con descuento normalizado (NDCG) y lo devuelve en el conjunto de datos de salida.

Dado que es imposible conocer el "terreno real" actual de los elementos recomendados, el Evaluador del recomendador usa la clasificación del usuario local en el conjunto de datos de prueba como ganancia en el cálculo de NDCG. Para evaluar, el módulo del recomendador puntuado solo debe generar recomendaciones para los elementos con clasificaciones del terreno real (en el conjunto de datos de prueba).

Al evaluar las predicciones de los usuarios relacionados, use un conjunto de resultados puntuado que contenga los usuarios relacionados para cada usuario de interés:

  • La primera columna debe contener los identificadores de cada usuario de interés.

  • Todas las columnas subsiguientes contienen los identificadores de los usuarios relacionados de predicción. Los usuarios relacionados se ordenan por la fuerza del realtionship (primero el usuario más relacionado).

  • Para que el recomendador de evaluación funcione, los nombres de columna deben ser User , Related User 1 , Related User 2 , Related User 3 , etc.

Sugerencia

Puede influir en la evaluación si define el número mínimo de elementos que un usuario de interés y sus usuarios relacionados deben tener en común.

Evaluar el recomendador calcula la ganancia acumulada descontada normalizada (NDCG) promedio, según las distancias de Manhattan (L1 Sim NDCG) y euclidiana (L2 Sim NDCG) y, además, devuelve ambos valores en el conjunto de datos de salida. Dado que no hay ninguna realidad real para los usuarios relacionados, evaluar el recomendador usa el procedimiento siguiente para calcular el promedio de todas las ndcg.

Para cada usuario de interés en el conjunto de datos con puntuación:

  1. Busque todos los elementos del conjunto de datos de prueba que han sido calificados por el usuario de interés y el usuario relacionado que se está considerando.

  2. Cree dos vectores a partir de las clasificaciones de estos elementos: uno para el usuario de interés y otro para el usuario relacionado en cuestión.

  3. Calcule la ganancia como la similitud de los dos vectores de calificación resultantes, en términos de su distancia de Manhattan (L1) o euclidiana (L2).

  4. Calcule la NDCG de L1 Sim y la NDCG de L2 Sim, usando las ganancias de todos los usuarios relacionados.

  5. Calcular el promedio de los valores de NDCG de todos los usuarios del conjunto de resultados puntuado.

En otras palabras, la ganancia se calcula como la similitud (las distancias de Manhattan o euclidiana normalizadas) entre un usuario de interés (la entrada de la primera columna de conjunto de resultados puntuado) y un usuario relacionado determinado (la entrada de la columna n del conjunto de resultados puntuado). La ganancia de este par de usuarios se calcula utilizando todos los elementos para los que se han valorado ambos elementos en los datos originales (conjunto de pruebas). A continuación, el NDCG se calcula agregando las ganancias individuales para un único usuario de interés y todos los usuarios relacionados, utilizando el descuento logarítmico. Es decir, se calcula un valor de NDCG para cada usuario de interés (cada fila del conjunto de resultados puntuado). El número que se muestra en último lugar es la media aritmética de todos los usuarios de interés en el conjunto de resultados puntuado (es decir, sus filas).

Por lo tanto, para evaluar, el módulo de puntuación del recomendador solo debe predecir los usuarios que tienen elementos con calificaciones verdaderas (en el conjunto de datos de prueba).

Al evaluar la predicción de los elementos relacionados, use un conjunto de resultados puntuado que contenga los elementos relacionados para cada elemento de interés:

  • La primera columna debe contener identificadores para los elementos de interés.

  • Todas las columnas subsiguientes deben contener los identificadores de los elementos relacionados previstos, ordenados según la relación que tienen con el elemento de interés (primero el elemento más relacionado).

  • Para que el recomendador de evaluación funcione, los nombres de columna deben ser Item , Related Item 1 , Related Item 2 , Related Item 3 , etc.

Sugerencia

Puede influir en la evaluación si define el número mínimo de usuarios que un elemento de interés y sus elementos relacionados deben tener en común.

Evaluar el recomendador calcula el promedio de ganancia acumulativa con descuento normal (NDCG) basado en distancias de Manhattan (L1 SIM NDCG) y euclidiana (L2 SIM NDCG) y devuelve ambos valores en el conjunto de resultados. Dado que no hay ninguna realidad real para los elementos relacionados, evaluar el recomendador calcula el promedio de todas las ndcg como se indica a continuación:

Para cada elemento de interés en el conjunto de datos con puntuación:

  1. Busque todos los usuarios del conjunto de datos de prueba que hayan calificado tanto el elemento de interés como el elemento relacionado en cuestión.

  2. Cree dos vectores a partir de las calificaciones de estos usuarios: uno para el elemento de interés y otro para el elemento relacionado en cuestión.

  3. Calcule la ganancia como la similitud de los dos vectores de calificación resultantes, en términos de su distancia de Manhattan (L1) o euclidiana (L2).

  4. Calcule la NDCG de L1 Sim y la NDCG de L2 Sim, usando las ganancias de todos los elementos relacionados.

  5. Calcular el promedio de los valores de NDCG de todos los elementos de interés en el conjunto de resultados puntuado.

En otras palabras, la ganancia se calcula como la similitud (las distancias de Manhattan o euclidiana normalizadas) entre un elemento de interés (la entrada de la primera columna de conjunto de resultados puntuado) y un elemento relacionado determinado (la entrada de la columna n del conjunto de resultados puntuado). La ganancia de este par de elementos se calcula mediante todos los usuarios que han clasificado ambos elementos en los datos originales (conjunto de pruebas). A continuación, el NDCG se calcula agregando las ganancias individuales para un único elemento de interés y todos sus elementos relacionados, utilizando el descuento logarítmico. Es decir, se calcula un valor de NDCG para cada elemento de interés (cada fila del conjunto de resultados puntuado). El número que se muestra en último lugar es el promedio aritmético de todos los elementos de interés en el conjunto de resultados puntuado (es decir, sus filas).

Por lo tanto, para evaluar, el módulo de puntuación del recomendador solo debe predecir los elementos relacionados con las clasificaciones de verdad (en el conjunto de pruebas).

Ejemplos

Para obtener ejemplos de cómo se usan los modelos de recomendación en Azure Machine Learning, consulte la Azure AI Gallery:

Entradas esperadas

Nombre Tipo Descripción
Conjunto de datos de prueba Tabla de datos Conjunto de datos de prueba
Conjunto de datos puntuado Tabla de datos Conjunto de datos puntuado

Parámetros del módulo

Nombre Intervalo Tipo Valor predeterminado Descripción
Número mínimo de elementos que el usuario de consulta y el usuario relacionado deben haber clasificado en común >=1 Entero 2 Especificar el número mínimo de elementos que tanto el usuario de consulta como el usuario relacionado deben haber clasificado

Este parámetro es opcional
Número mínimo de usuarios que el elemento de consulta y el elemento relacionado deben haber clasificado en común >=1 Entero 2 Especificar el número mínimo de usuarios que deben haber clasificado tanto el elemento de consulta como el elemento relacionado

Este parámetro es opcional

Salidas

Nombre Tipo Descripción
Métrica Tabla de datos Una tabla de métricas de evaluación

Excepciones

Excepción Descripción
Error 0022 Se produce una excepción si el número de columnas seleccionadas en el conjunto de datos de entrada no es igual al número esperado.
Error 0003 Se produce una excepción si una o varias de las entradas son NULL o están vacías.
Error 0017 Se produce una excepción si una o varias columnas especificadas tienen un tipo no compatible con el módulo actual.
Error 0034 Se produce una excepción si existe más de una clasificación para un par usuario-elemento determinado.
Error 0018 Se produce una excepción si el conjunto de datos de entrada no es válido.
Error 0002 Se produce una excepción si no se pudieron analizar o convertir uno o más parámetros del tipo especificado al solicitado por el tipo de método de destino.

Para obtener una lista de los errores específicos de los módulos de Studio (clásico), consulte Machine Learning de los códigos de error.

Para obtener una lista de excepciones de API, consulte códigos de error de la API de REST de machine learning.

Consulta también

Entrenar el recomendador Matchbox
Score Matchbox Recommender (puntuar un recomendador de Matchbox)