Je n'ai pas trouvé de définition de la fonction de perte sur wiki dans le contexte de l'apprentissage automatique.
celui-ci est cependant moins formel, il est assez clair.
À la base, une fonction de perte est incroyablement simple: c'est une méthode pour évaluer la façon dont votre algorithme modélise votre ensemble de données. Si vos prévisions sont totalement fausses, votre fonction de perte affichera un nombre plus élevé. S'ils sont assez bons, ils afficheront un nombre inférieur. Au fur et à mesure que vous modifiez des morceaux de votre algorithme pour essayer d'améliorer votre modèle, votre fonction de perte vous dira si vous allez quelque part.
il semble que le taux d'erreur de KNN ne soit pas la fonction qui pourrait guider l'optimisation du modèle lui-même, comme Gradient Descent.
alors, KNN a-t-il une fonction de perte?
la source
Chaque algorithme de statistiques minimise explicitement ou implicitement certains objectifs, même s'il n'y a pas de paramètres ou d'hyperparamètres, et même si la minimisation n'est pas effectuée de manière itérative. Le kNN est si simple que l'on ne le pense généralement pas comme ça, mais vous pouvez réellement écrire une fonction objective explicite:
Ce que cela signifie, c'est que la classe prédite pour un point est égale à la classe qui maximise le nombre d'autres points qui sont dans l'ensemble des points voisins qui ont également la même classe, mesurée par qui est lorsque est dans la classe , sinon.t^ X^ C Xje k Nk( { x } ,X^) δ(tje, C) 1 Xje C 0
L'avantage de l'écrire de cette façon est que l'on peut voir comment rendre l'objectif «plus mou» en pondérant les points par la proximité. En ce qui concerne la "formation", il n'y a pas de paramètres ici pour s'adapter. Mais on pourrait régler la métrique de distance (qui est utilisée pour définir ) ou la pondération des points dans cette somme pour optimiser un objectif de classification supplémentaire. Cela mène à l'analyse des composants du quartier: https://www.cs.toronto.edu/~hinton/absps/nca.pdf qui apprend une métrique de distance.Nk
la source
Je suis en désaccord avec la réponse acceptée (quelque peu).
KNN est un algorithme de classification , et cela n'a aucun sens d'exécuter un algorithme de classification sans fonction de perte: vous seriez intéressé par la qualité de l'algorithme. Dans le cas de KNN, vous pouvez, par exemple, évaluer la qualité des classifications en examinant la somme des précisions moyennes dans chaque classe. Ou, vous pouvez vous concentrer uniquement sur la précision de l'algorithme.
La méthode d'optimisation qui alimente KNN ne dépend pas de la fonction de perte, donc pendant l'entraînement, elle ne fait jamais appel à la fonction de perte et n'utilise même pas la descente de gradient pour s'entraîner.
Cela contraste avec les éléments suivants « classificateur voisin K-plus proche »: pour classes, premier train -un moyen, puis définir la classe de chaque point par le nombre de points dominant appartenant à chaque barycentre. Vous pouvez par exemple entraîner cet algorithme avec une minimisation pas à pas sur l'erreur du moindre carré de chaque centroïde (recalculer les centroïdes en fonction des voisins les plus proches), mais au moment du test, votre fonction de perte serait à nouveau une certaine forme de précision sur chaque classe, malgré l'algorithme d'origine n'ayant aucune dépendance à ce sujet.K K
la source