Comment diviser train / test dans les systèmes recommandeurs

8

Je travaille avec l'ensemble de données MovieLens10M, prédisant les évaluations des utilisateurs. Si je veux évaluer équitablement mon algorithme, comment dois-je répartir mes données de formation contre mes tests?

Par défaut, je pense que les données sont divisées en ensembles de test train v. Où «test» contient des films jamais vus dans l'ensemble de formation. Si mon modèle requiert que chaque film ait été vu au moins une fois dans l'ensemble de formation, comment dois-je diviser mes données? Dois-je prendre toutes les notes de chaque utilisateur sauf N pour toutes les données et évaluer mes performances sur les notes NxUser_num affichées?

jamesmf
la source

Réponses:

2

Leave-one-outla validation croisée est probablement le moyen le plus simple de résoudre ce problème. Si vous utilisez un modèle qui nécessite beaucoup de temps pour s'entraîner, alors laisser n% en dehors pourrait être plus approprié.

La méthode consiste à éliminer une note connue et à essayer de la prédire. Si vous souhaitez supprimer n% des notes, choisissez-les simplement au hasard plutôt que de choisir un nombre spécifique de notes pour chaque utilisateur. Et gardez n assez petit - de l'ordre de 10% ou moins.

Voici un bon traitement des méthodes de validation croisée pour les systèmes de recommandation . Généralement:

Holdout est une méthode qui divise un ensemble de données en deux parties: un ensemble d'apprentissage et un ensemble de tests. Ces ensembles peuvent avoir des proportions différentes. Dans le cadre des systèmes recommandés, le partitionnement est effectué en sélectionnant de manière aléatoire certaines notes de tous (ou certains) des utilisateurs. Les notes sélectionnées constituent l'ensemble de test, tandis que les autres sont l'ensemble de formation. Cette méthode est également appelée laisser-sortir. Dans [17], Sarwar et al. divisez l'ensemble de données en 80% de formation et 20% de données de test. Dans [18], plusieurs rapports entre la formation et le test (de 0,2 à 0,95 avec un incrément de 0,05) sont choisis et pour chacun, l'expérience est répétée dix fois avec différents ensembles de formation et de test et enfin les résultats sont moyennés. Dans [13] l'ensemble de tests est réalisé par 10% des utilisateurs: 5 évaluations pour chaque utilisateur de l'ensemble de tests sont retenues.

Leave-one-out est une méthode obtenue en définissant k = 1 dans la méthode Leave-k-out. Étant donné un utilisateur actif, nous retenons à son tour un élément évalué. L'algorithme d'apprentissage est formé sur les données restantes. L'élément retenu est utilisé pour évaluer l'exactitude de la prédiction et les résultats de toutes les évaluations sont moyennés afin de calculer l'estimation finale de la qualité. Cette méthode présente certains inconvénients, tels que le sur-ajustement et la grande complexité de calcul. Cette technique convient pour évaluer la qualité recommandée du modèle pour les utilisateurs qui sont déjà enregistrés en tant que membres du système. Karypis et al. [10] a adopté une version triviale de la clause de non-création créant l'ensemble de test en sélectionnant de manière aléatoire l'une des entrées non nulles pour chaque utilisateur et les entrées restantes pour la formation. Dans [7], Breese et al.

Une variante simple de la méthode d'exclusion est la validation croisée multipliée par m. Elle consiste à diviser l'ensemble de données en m plis indépendants (pour que les plis ne se chevauchent pas). À son tour, chaque pli est utilisé exactement une fois comme ensemble de test et les plis restants sont utilisés pour former le modèle. Selon [20] et [11], le nombre de plis suggéré est de 10. Cette technique convient pour évaluer la capacité de recommandation du modèle lorsque de nouveaux utilisateurs (c'est-à-dire, les utilisateurs n'appartiennent pas déjà au modèle) rejoignent le système. En choisissant un nombre raisonnable de plis, nous pouvons calculer la moyenne, la variance et l'intervalle de confiance.

J'espère que cela t'aides!

AN6U5
la source