Pourquoi KNN n'est-il pas «basé sur un modèle»?


10

Le chapitre 2.4 d' ESL semble classer la régression linéaire comme "basée sur un modèle", car elle suppose , alors qu'aucune approximation similaire n'est indiquée pour les k-voisins les plus proches. Mais les deux méthodes ne font-elles pas d'hypothèses sur ?f ( x )f(x)xβf(x)

Plus tard en 2.4, il dit même:

  • Les moindres carrés supposent que est bien approximée par une fonction globalement linéaire.f(x)
  • k-les voisins les plus proches supposent que est bien approximée par une fonction localement constante.f(x)

L'hypothèse KNN semble pouvoir également être formalisée (bien que vous ne sachiez pas si cela conduirait à l'algorithme KNN de la manière dont l'hypothèse est linéaire conduit à une régression linéaire).f

Donc, si KNN n'est pas basé sur un modèle, pourquoi? Ou suis-je mal interprété ESL?

Réponses:


8

Il est assez difficile de comparer directement kNN et la régression linéaire car ce sont des choses très différentes, cependant, je pense que le point clé ici est la différence entre "modéliser " et "avoir des hypothèses sur ".f ( x )f(x)f(x)

Lors de la régression linéaire, on modélise spécifiquement le , souvent quelque chose parmi les lignes de où est un terme de bruit gaussien. Vous pouvez déterminer que le modèle de probabilité maximale est équivalent au modèle d'erreur de somme des carrés minimale.f ( x ) = w x + ϵ ϵf(x)f(x)=wx+ϵϵ

KNN, d'autre part, comme le suggère votre deuxième point, suppose que vous pouvez approximer cette fonction par une fonction localement constante - une certaine mesure de distance entre les -ses, sans modéliser spécifiquement la distribution entière.x

En d'autres termes, la régression linéaire aura souvent une bonne idée de la valeur de pour certains invisibles à partir de la seule valeur de , tandis que kNN aurait besoin d'autres informations (c'est-à-dire les k voisins), pour faire des prédictions sur , car la valeur de , et juste la valeur elle-même, ne donnera aucune information, car il n'y a pas de modèle pour .x x f ( x ) x f ( x )f(x)xxf(x)xf(x)

EDIT: réitérer ceci ci-dessous pour ré-exprimer cela plus clairement (voir commentaires)

Il est clair que la régression linéaire et les méthodes du plus proche voisin visent à prédire la valeur de pour un nouveau . Il existe maintenant deux approches. La régression linéaire se poursuit en supposant que les données tombent sur une ligne droite (plus moins un peu de bruit), et donc la valeur de y est égale à la valeur de multipliée par la pente de la ligne. En d'autres termes, l'expression linéaire modélise les données sous forme de ligne droite.x f ( x )y=f(x)xf(x)

Maintenant, les méthodes du plus proche voisin ne se soucient pas de savoir à quoi ressemblent les données (ne modélise pas les données), c'est-à-dire qu'elles ne se soucient pas s'il s'agit d'une ligne, d'une parabole, d'un cercle, etc. Tout ce qu'elle suppose, c'est que et seront similaires, si et sont similaires. Notez que cette hypothèse est à peu près vraie pour presque tous les modèles, y compris tous ceux que j'ai mentionnés ci-dessus. Cependant, une méthode NN ne peut pas dire comment la valeur de est liée à (que ce soit une ligne, une parabole, etc.), car elle n'a pas de modèle de cette relation, elle suppose simplement qu'elle peut être approximée par regarder dans les points proches.f ( x 2 ) x 1 x 2 f ( x ) xf(x1)f(x2)x1x2f(x)x


"on modélise spécifiquement le f (x)" Qu'est-ce que cela signifie? Il semble que l'on pourrait formaliser l'hypothèse que f est localement constant. Est-ce juste que KNN ne peut pas être dérivé d'une telle formalisation?
Alec

"la régression linéaire aura souvent une bonne idée de la valeur de f (x) pour certains x invisibles à partir de la valeur du x" Je ne sais pas trop ce que vous entendez par là non plus ... vous avez toujours besoin des paramètres du modèle linéaire, juste car vous auriez besoin de paramètres pour KNN (bien que ses paramètres soient plus impliqués)
Alec

Bons points, j'ai essayé de modifier ma réponse pour la rendre plus claire et j'espère répondre à vos points (la limite de caractères pour les commentaires est faible).
Saulius Lukauskas

+1, cela est bien expliqué. «la différence entre« modéliser f (x) »et« avoir des hypothèses sur f (x) »», reflète très bien l'idée, OMI. Une autre façon de le dire est peut-être de considérer que la modélisation f (x) revient à faire des hypothèses sur le processus de génération de données , alors que knn ne le fait pas, mais se contente de penser que la valeur d'une donnée donnée pourrait être similaire à la valeur de proximité Les données.
gung - Rétablir Monica

HM OK. Votre montage le rend certainement un peu plus clair, mais j'ai toujours du mal à voir une distinction formelle. Il semble que par "modélisation" vous voulez dire "avoir une bonne idée de la forme de f globalement", alors que KNN ne se soucie que du comportement local. C'est donc cette différence entre global et local qui rend la modélisation de régression linéaire et KNN non?
Alec

5

La régression linéaire est basée sur un modèle car elle fait une hypothèse sur la structure des données afin de générer un modèle. Lorsque vous chargez un ensemble de données dans un programme statistique et l' utiliser pour exécuter une régression linéaire la sortie est en fait un modèle: . Vous pouvez introduire de nouvelles données dans ce modèle et obtenir une sortie prévue car vous avez fait des hypothèses sur la façon dont la variable de sortie est réellement générée.f^(X)=β^X

Avec KNN, il n'y a pas vraiment de modèle du tout - on suppose simplement que les observations qui sont proches les unes des autres dans Space se comporteront probablement de la même manière en termes de variable de sortie. Vous n'alimentez pas une nouvelle observation dans un `` modèle KNN '', vous déterminez simplement quelles observations existantes sont les plus similaires à une nouvelle observation et prédisez la variable de sortie pour la nouvelle observation à partir des données d'entraînement.X


Bien que je comprenne intuitivement ce que vous voulez dire, la distinction me semble encore fragile ... ne pouvez-vous pas voir KNN comme étant paramétré par une partition de R ^ d et des poids attribués aux partitions?
Alec

1
Si quelqu'un vous a demandé de justifier vos prédictions, vous pouvez le faire si vous avez utilisé la régression linéaire en expliquant les relations entre les entrées et les sorties que votre modèle suppose. Un modèle tente d'expliquer la relation entrées / sorties n / b. KNN n'essaie pas d'expliquer la relation entrées / sorties n / b, il n'y a donc pas de modèle.
tjnel

4

Le terme basé sur le modèle est synonyme de "basé sur la distribution" lorsque l'on parle de méthodes de clustering. La régression linéaire fait des hypothèses de distribution (que les erreurs sont gaussiennes). KNN ne fait aucune hypothèse de distribution. Telle est la distinction.


1
Jusqu'à présent, cela a le plus de sens en termes de distinction formelle, bien qu'ESL n'ait pas vraiment présenté de régression linéaire de cette façon. Ils ont introduit la fonction de coût d'erreur au carré en premier, de manière arbitraire (au lieu de faire un MLE pour un gaussien), l'ont utilisée pour trouver que nous devrions prédire f (x) = E (Y | X = x), ont expliqué comment KNN se rapproche ceci sous certaines hypothèses, puis a supposé que f était linéaire pour obtenir une régression linéaire.
Alec

Proposition intéressante, mais ce serait beaucoup mieux si nous avions des références à ce sujet.
ivanmp

0

kNN est basé sur une instance

Afin de faire une prédiction pour une nouvelle observation, vous devez conserver tout le jeu de données d'apprentissage, car il n'y a pas de modèle sur le jeu de données.

Voici comment fonctionne kNN: étant donné une nouvelle observation, nous calculerons la distance entre cette nouvelle observation et toutes les autres observations du jeu de données d'apprentissage. Ensuite, vous obtenez les voisins (ceux qui sont les plus proches de la nouvelle observation).

Si , alors nous regardons les 5 observations les plus proches. "une fonction localement constante" signifie qu'après avoir choisi ces 5 observations, nous ne nous soucions pas des distances. Ce sont les mêmes, ils ont la même importance pour la prédiction.k=5

Comment trouver un modèle?

Maintenant, si nous essayons de trouver une fonction qui n'est pas "localement constante", ce serait une distribution normale. Dans ce cas, vous obtiendrez un algorithme appelé Linear Discriminant Analysis ou Naive Bayes (en fonction d'autres hypothèses).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.