Réponses:
KNN est un algorithme discriminant car il modélise la probabilité conditionnelle d'un échantillon appartenant à une classe donnée. Pour voir cela, il suffit de considérer comment on arrive à la règle de décision des kNN.
Une étiquette de classe correspond à un ensemble de points qui appartiennent à une région dans l'espace de caractéristiques . Si vous tirez des points d'échantillonnage de la distribution de probabilité réelle, p ( x ) , indépendamment, alors la probabilité de tirer un échantillon de cette classe est, P = ∫ R p ( x ) d x
Et si vous avez points? La probabilité que K points de ces N points tombent dans la région R suit la distribution binomiale,
Comme cette distribution est fortement culminée, de sorte que la probabilité peut être approximée par sa valeur moyenne . Une approximation supplémentaire est que la distribution de probabilité sur reste approximativement constante, de sorte que l'on peut approximer l'intégrale par, où est le volume total du Région. Sous ces approximations .
Maintenant, si nous avions plusieurs classes, nous pourrions répéter la même analyse pour chacune, ce qui nous donnerait, où est le nombre de points de la classe qui appartient à cette région et est le nombre total de points appartenant à la classe . Avis .
La réponse de @jpmuc ne semble pas être exacte. Les modèles génératifs modélisent la distribution sous-jacente P (x / Ci) puis utilisent plus tard le théorème de Bayes pour trouver les probabilités postérieures. C'est exactement ce qui a été montré dans cette réponse, puis conclut exactement le contraire. : O
Pour que KNN soit un modèle génératif, nous devons être capables de générer des données synthétiques. Il semble que cela soit possible une fois que nous aurons quelques données de formation initiale. Mais partir de l'absence de données d'entraînement et générer des données synthétiques n'est pas possible. Donc KNN ne correspond pas bien aux modèles génératifs.
On peut soutenir que KNN est un modèle discriminant parce que nous pouvons tracer une frontière discriminante pour la classification, ou nous pouvons calculer le P postérieur (Ci / x). Mais tout cela est également vrai dans le cas des modèles génératifs. Un véritable modèle discriminant ne dit rien sur la distribution sous-jacente. Mais dans le cas de KNN, nous en savons beaucoup sur la distribution sous-jacente, en fait, nous stockons l'ensemble de la formation.
Il semble donc que KNN soit à mi-chemin entre les modèles génératifs et discriminants. C'est probablement pourquoi KNN n'est classé dans aucun des modèles génératifs ou discriminatoires des articles réputés. Appelons-les simplement des modèles non paramétriques.
Je suis tombé sur un livre qui dit le contraire ( c'est -à- dire un modèle de classification générative non paramétrique)
Ceci est le lien en ligne: Machine Learning A Probabilistic Perspective par Murphy, Kevin P. (2012)
Je suis d'accord que kNN est discriminatoire. La raison en est qu'il ne stocke pas explicitement ou n'essaie pas d'apprendre un modèle (probabiliste) qui explique les données (par opposition, par exemple, à Naive Bayes).
La réponse de juampa me confond car, à ma connaissance, un classificateur génératif est celui qui tente d'expliquer comment les données sont générées (par exemple en utilisant un modèle), et cette réponse dit qu'elle est discriminante pour cette raison ...