La métrica que vamos a usar es DCG (Discounted Cummulative Gain).
Podéis leer más sobre esta métrica en este enlace https://towardsdatascience.com/evaluate-your-recommendation-engine-using-ndcg-759a851452d1.
Para cada línea del fichero que nos envíes, vamos a ver en qué posición está el match exacto entre los candidatos que envíes (en este caso la relevancia será de 1 si hay "match exacto" y 0 si no hay match), y en función de la posición, tendrás una puntuación.
Sumamos todas estas puntuaciones, y calculamos el porcentaje de aciertos obtenidos, donde un score perfecto tendría un resultado del 100% de acierto.
El score perfecto se obtendría si el fichero contiene para cada línea de descripción el resultado exacto para cada una de estas descripciones en la primera posición de esa línea (el primer "name" candidato coincide al 100% con el "name" esperado).
Aclaración: para considerar un resultado como correcto, no buscamos match parcial, sino que todo el string (que puede incluir espacios, guiones, y paréntesis) es correcto.
Aclaración 2: cuando decimos "Matching 100% correcto" queremos decir que si el test set tiene el string long t-shirt y una persona manda t-shirt,t-shirt long, long tshirt se considera que no ha acertado. En la primera posición no ha incluido todas las palabras (no es correcto). En el 2º candidato las palabras son correctas, pero el orden no lo era, por lo que no es match exacto. Igualmente, tampoco se considera como acierto el 3º candidato, ya que no se respeta el guión ("-") en "long t-shirt".
Aclaración 3: Las predicciones se van a validar en el mismo orden del fichero de descripciones, por lo que el "name" asociado a la descripción que aparece en la primera línea del fichero que se envíe, debe corresponder con la primera línea del fichero train_descriptions.csv que proporcionamos, la predicción de la segunda línea de vuestro envío, corresponderá con la segunda línea del fichero de descripciones, etc.
Aclaración 4: En los envíos, la plataforma espera un fichero .zip cuyo contenido sera un fichero llamado "submission.csv". De no ser así, la plataforma no podrá evaluar el envío.
Aclaración 5: El guión se respeta y si la palabra candidata no tiene guión, pero la palabra del test set sí, se considera como que no es exact match. Es decir, si en el texto se espera "t-shirt" o "v-neck" y en el envío solo aparece tshirt o vneck (sin guión), no se considera acierto)