Cómo dividir tren / prueba en sistemas de recomendación


8

Estoy trabajando con el conjunto de datos MovieLens10M, prediciendo las calificaciones de los usuarios. Si quiero evaluar de manera justa mi algoritmo, ¿cómo debo dividir mis datos de prueba de entrenamiento vs.

De manera predeterminada, creo que los datos se dividen en conjuntos de prueba de train v. Donde 'test' contiene películas nunca antes vistas en el conjunto de capacitación. Si mi modelo requiere que cada película se haya visto al menos una vez en el conjunto de entrenamiento, ¿cómo debo dividir mis datos? ¿Debo tomar todas las calificaciones de N de cada usuario excepto todos los datos y evaluar mi desempeño en las calificaciones de NxUser_num?

Respuestas:


2

Leave-one-outLa validación cruzada es probablemente la forma más directa de abordar esto. Si está utilizando un modelo que requiere mucho tiempo para entrenar, entonces dejar n% fuera podría ser más apropiado.

El método implica eliminar una calificación conocida e intentar predecirla. Si desea eliminar el n por ciento de las calificaciones, simplemente elíjalas al azar en lugar de elegir un número específico de las calificaciones de cada usuario. Y manténgala bastante pequeña, del orden del 10% o menos.

Aquí hay un buen tratamiento de los métodos de validación cruzada para los sistemas de recomendación . Generalmente:

Holdout es un método que divide un conjunto de datos en dos partes: un conjunto de entrenamiento y un conjunto de prueba. Estos conjuntos pueden tener diferentes proporciones. En la configuración de los sistemas de recomendación, la partición se realiza seleccionando al azar algunas clasificaciones de todos (o algunos) de los usuarios. Las clasificaciones seleccionadas constituyen el conjunto de prueba, mientras que las restantes son el conjunto de entrenamiento. Este método también se llama dejar-k-fuera. En [17], Sarwar et al. divide el conjunto de datos en 80% de entrenamiento y 20% de datos de prueba. En [18] se eligen varias proporciones entre entrenamiento y prueba (de 0.2 a 0.95 con un incremento de 0.05) y para cada una el experimento se repite diez veces con diferentes conjuntos de entrenamiento y prueba y finalmente se promedian los resultados. En [13], el conjunto de prueba lo realiza el 10% de los usuarios: se retienen 5 clasificaciones para cada usuario en el conjunto de prueba.

Leave-one-out es un método obtenido al establecer k = 1 en el método leave-k-out. Dado un usuario activo, retenemos a su vez un artículo calificado. El algoritmo de aprendizaje se entrena sobre los datos restantes. El elemento retenido se utiliza para evaluar la exactitud de la predicción y los resultados de todas las evaluaciones se promedian para calcular la estimación de calidad final. Este método tiene algunas desventajas, como el sobreajuste y la alta complejidad computacional. Esta técnica es adecuada para evaluar la calidad recomendada del modelo para los usuarios que ya están registrados como miembros del sistema. Karypis y col. [10] adoptó una versión trivial del “dejar uno afuera” creando el conjunto de prueba seleccionando aleatoriamente una de las entradas distintas de cero para cada usuario y las entradas restantes para la capacitación. En [7], Breese et al.

Una variante simple del método holdout es la validación cruzada m-fold. Consiste en dividir el conjunto de datos en m pliegues independientes (para que los pliegues no se superpongan). A su vez, cada pliegue se usa exactamente una vez como conjunto de prueba y los pliegues restantes se usan para entrenar al modelo. De acuerdo con [20] y [11], el número sugerido de pliegues es 10. Esta técnica es adecuada para evaluar la capacidad de recomendación del modelo cuando los nuevos usuarios (es decir, los usuarios que aún no pertenecen al modelo) se unen al sistema. Al elegir un número razonable de pliegues podemos calcular la media, la varianza y el intervalo de confianza.

¡Espero que esto ayude!

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.