lightfm fit_partial fit python machine-learning recommendation-engine matrix-factorization

python - fit_partial - Evaluación del modelo de recomendación LightFM



lightfm model predict (1)

Precision @ K y AUC miden cosas diferentes y le dan diferentes perspectivas sobre la calidad de su modelo. En general, deben correlacionarse, pero entender cómo difieren puede ayudarlo a elegir el que es más importante para su aplicación.

  • Precision @ K mide la proporción de elementos positivos entre los artículos con el puntaje más alto de K. Como tal, está muy centrado en la calidad de clasificación en la parte superior de la lista: no importa cuán bueno o malo sea el resto de su clasificación, siempre y cuando los primeros K elementos sean en su mayoría positivos. Esta sería una medida adecuada si solo muestra a sus usuarios en la parte superior de la lista.
  • AUC mide la calidad de la clasificación general. En el caso binario, puede interpretarse como la probabilidad de que un elemento positivo elegido al azar tenga una clasificación más alta que un elemento negativo elegido al azar. En consecuencia, un AUC cercano a 1.0 sugerirá que, en general, su orden es correcta: y esto puede ser cierto incluso si ninguno de los primeros K elementos son positivos. Esta métrica puede ser más apropiada si no ejerce un control total sobre qué resultados se presentarán al usuario; Es posible que los primeros artículos recomendados de K ya no estén disponibles (digamos, se agoten) y que deba avanzar más abajo en la clasificación. Una puntuación AUC alta le dará la confianza de que su clasificación es de alta calidad en todo momento.

Tenga en cuenta también que, si bien el valor máximo de la métrica AUC es 1.0, la precisión máxima alcanzable @ K depende de sus datos. Por ejemplo, si mides la precisión @ 5 pero solo hay un elemento positivo, la puntuación máxima que puedes lograr es 0.2.

En LightFM, las rutinas AUC y precision @ K devuelven matrices de puntajes métricos: uno para cada usuario en sus datos de prueba. Lo más probable es que los promedie para obtener una AUC media o una puntuación de precisión @ K: si algunos de sus usuarios tienen una puntuación de 0 en la precisión @ 5, es posible que su precisión promedio @ 5 esté entre 0 y 0,2.

¡Espero que esto ayude!

He estado jugando con lightfm durante bastante tiempo y me resultó muy útil generar recomendaciones. Sin embargo, hay dos preguntas principales que me gustaría saber.

  1. para evaluar el modelo LightFM en caso de que importe el rango de las recomendaciones, ¿debería confiar más en la precision@k u otras métricas de evaluación proporcionadas, como la AUC score ? ¿En qué casos debería centrarme en mejorar mi precision@k comparación con otras métricas? o tal vez están altamente correlacionados? lo que significa que si logro mejorar mi puntaje de precision@k , las otras métricas seguirían, ¿estoy en lo correcto?

  2. ¿Cómo interpretaría si un modelo que se entrenó usando la función de pérdida WARP tiene un puntaje de 0.089 para precision@5 ? AFAIK, Precision at 5 me dice qué proporción de los mejores 5 resultados son positivos / relevantes. lo que significa que obtendría 0 precision@5 si mis predicciones no lograran llegar a los primeros 5 o obtendré 0.2 si solo obtuve una predicción correcta en los primeros 5. Pero no puedo interpretar qué significa 0.0xx para precision@n

Gracias