J'utilise la factorisation matricielle comme un algorithme de système de recommandation basé sur les enregistrements de comportement de clic de l'utilisateur. J'essaie deux matrice méthode de factorisation:Est-ce que ma méthode pour détecter le surajustement dans la factorisation matricielle est correcte?
Le premier est la SVD de base dont la prédiction est juste le produit du facteur utilisateur vecteur u et article facteur i: r = u * i
Le second que j'ai utilisé est le SVD avec composante de polarisation.
r = u * i + b_u + b_i
où b_u et b_i représente le biais de la préférence des utilisateurs et des articles.
Un des modèles que j'utilise a une très faible performance, et l'autre est raisonnable. Je ne comprends vraiment pas pourquoi le dernier fonctionne moins bien, et je doute qu'il soit surfait.
J'ai googlé des méthodes pour détecter le surajustement, et a trouvé la courbe d'apprentissage est un bon moyen. Cependant, l'axe des abscisses est la taille de l'ensemble d'entraînement et l'axe des y est la précision. Cela me rend assez confus. Comment puis-je changer la taille de l'ensemble d'entraînement? Choisir certains des enregistrements de l'ensemble de données?
Un autre problème est, j'ai essayé de tracer la courbe de perte d'itération (La perte est le). Et il semble que la courbe est normale:
Mais je ne suis pas sûr que cette méthode est correcte parce que les mesures que j'utilise sont la précision et le rappel. Dois-je tracer la courbe itération-précision ??? Ou celui-ci dit déjà que mon modèle est correct?
Quelqu'un peut-il me dire si je vais dans la bonne direction? Merci beaucoup. :)