Permettez-moi de dire d'emblée que je suis très nouveau dans l'apprentissage automatique et que je ne suis pas très doué en mathématiques. Je comprends ce que fait TF-IDF, mais dans le livre que je lis, il note également ce qui suit (il explique comment scikit-learn fait les choses):
Les deux classes [TfidfTransformer et TfidfVectorizer] appliquent également la normalisation L2 après avoir calculé la représentation tf-idf; en d'autres termes, ils redimensionnent la représentation de chaque document pour avoir la norme euclidienne 1. Le redimensionnement de cette manière signifie que la longueur d'un document (le nombre de mots) ne change pas la représentation vectorisée.
C'est tout ce qu'il a à dire sur le sujet. Ce que je pense que cela signifie, et faites-moi savoir si je me trompe, c'est que nous modifions les valeurs de sorte que si elles étaient toutes au carré et additionnées, la valeur serait 1 (j'ai pris cette définition de http://kawahara.ca / comment-normaliser-vecteurs-à-unité-norme-en-python / ).
L'idée est donc que les valeurs des entités deviennent proportionnelles les unes aux autres. Je ne sais pas vraiment comment cela pourrait être utile pour le modèle. Est-ce que cela aide le classificateur global à savoir si certains exemples n'ont pas un nombre total plus élevé de "fonctionnalités activées" que d'autres?
En outre, voici une question de base: la normalisation L2 a-t-elle quelque chose à voir avec la régularisation L2? Peut-être que c'est juste que les deux impliquent des termes de quadrature et de sommation?
Quel que soit le point de vue que vous pouvez partager, ce serait très apprécié!
la source