Pourquoi quelqu'un utiliserait-il KNN pour la régression?

26

D'après ce que je comprends, nous ne pouvons construire qu'une fonction de régression qui se situe dans l'intervalle des données d'entraînement.

Par exemple (un seul des panneaux est nécessaire): entrez la description de l'image ici

Comment pourrais-je prédire l'avenir en utilisant un régresseur KNN? Encore une fois, il semble ne se rapprocher que d'une fonction qui se situe dans l'intervalle des données d'entraînement.

Ma question: Quels sont les avantages d'utiliser un régresseur KNN? Je comprends que c'est un outil très puissant pour la classification, mais il semble qu'il fonctionnerait mal dans un scénario de régression.

gung - Réintégrer Monica
la source
Pouvez-vous clarifier ce que vous entendez par «prédire l'avenir»? Avez-vous des séries chronologiques et vous voulez faire des prévisions, ou essayez-vous d'adapter une relation entre 2 variables et souhaitez-vous l'utiliser à l'avenir pour deviner une valeur Y à partir d'une valeur X connue?
gung - Réintègre Monica
1
Par exemple, si je voulais prédire la valeur Y telle que X = 15 à partir de l'image ci-dessus. Un régresseur KNN ne couperait pas ça?
1
Je serais d'accord avec vous que si vous vous entraîniez sur un ensemble avec mais que vous vous attendiez à voir des valeurs de x bien au-delà de ce qui est dans vos données, les méthodes locales non paramétriques pourraient ne pas être idéales. Au lieu de cela, vous souhaiterez peut-être utiliser cette connaissance du domaine et définir un modèle paramétrique qui inclut votre connaissance de la manière dont « x non observé» devrait se comporter. x[0,5]XX
Meadowlark Bradsher
1
Un exemple de KNN utilisé avec succès pour la régression est le truc de prédiction de baseball PECOTA de Nate Silver. Vous pouvez lire les avantages et les inconvénients de l'article Wikipedia sur PECOTA ou d'articles de journaux comme celui-ci: macleans.ca/authors/colby-cosh/…
Flounderer
6
De plus, pour faire un point plus général, à mesure que vous vous familiariserez avec les statistiques (ou l'exploration de données / l'apprentissage automatique, etc.), vous constaterez que les réponses à des questions très générales telles que la vôtre seront souvent une version paraphrasée de `` ça dépend ''. Savoir de quoi «ça dépend» et pourquoi est la connaissance.
Meadowlark Bradsher

Réponses:

17

Les méthodes locales comme K-NN ont du sens dans certaines situations.

Un exemple que j'ai fait dans le travail scolaire avait à voir avec la prévision de la résistance à la compression de divers mélanges d'ingrédients de ciment. Tous ces ingrédients étaient relativement non volatils par rapport à la réponse ou l'un à l'autre et KNN a fait des prédictions fiables à ce sujet. En d'autres termes, aucune des variables indépendantes n'avait de variance disproportionnée à conférer au modèle individuellement ou éventuellement par interaction mutuelle.

Prenez cela avec un grain de sel parce que je ne connais pas de technique d'enquête de données qui le montre de manière concluante mais intuitivement il semble raisonnable que si vos caractéristiques présentent un certain degré de variances proportionnelles, je ne sais pas quelle proportion, vous pourriez avoir un Candidat KNN. J'aimerais certainement savoir s'il y a eu des études et des techniques résultantes développées à cet effet.

Si vous y réfléchissez dans une perspective de domaine généralisé, il existe une large classe d'applications où des «recettes» similaires donnent des résultats similaires. Cela semblait certainement décrire la situation de prédire les résultats du mélange de ciment. Je dirais que si vous aviez des données qui se comportaient selon cette description et en plus votre mesure de distance était également naturelle pour le domaine en question et enfin que vous aviez suffisamment de données, j'imagine que vous devriez obtenir des résultats utiles de KNN ou d'une autre méthode locale .

Vous bénéficiez également d'un biais extrêmement faible lorsque vous utilisez des méthodes locales. Parfois, les modèles additifs généralisés (GAM) équilibrent le biais et la variance en ajustant chaque variable individuelle à l'aide de KNN de telle sorte que:

y^=f1(x1)+f2(x2)++Fn(Xn)+ϵ

Fn(Xn)

Je n'écrirais pas KNN aussi rapidement. Elle a sa place.

Meadowlark Bradsher
la source
1
Cette réponse sur la mise à l'échelle des données pour knn pourrait aider à exprimer ce que vous entendez par «degré proportionnel de variances». stats.stackexchange.com/questions/287425/…
eric_kernfeld
5

Je n'aime pas le dire, mais en fait, la réponse courte est que "prédire dans le futur" n'est pas vraiment possible, ni avec un knn ni avec aucun autre classificateur ou régresseur existant actuellement.

Bien sûr, vous pouvez extrapoler la ligne d'une régression linéaire ou l'hyperplan d'un SVM mais à la fin vous ne savez pas ce que sera l'avenir, pour tout ce que nous savons, la ligne pourrait juste être une petite partie d'une réalité sinueuse. Cela devient évident lorsque vous regardez des méthodes bayésiennes comme les processus gaussiens par exemple, vous remarquerez une grande incertitude dès que vous quittez le "domaine d'entrée connu".

Bien sûr, vous pouvez essayer de généraliser de ce qui s'est passé aujourd'hui à ce qui se passera probablement demain, ce qui peut facilement être fait avec un régresseur tricoté (par exemple, les numéros de client de l'année dernière pendant la période de Noël peuvent vous donner une bonne idée des chiffres de cette année). Bien sûr, d'autres méthodes peuvent intégrer des tendances, etc., mais à la fin, vous pouvez voir à quel point cela fonctionne en matière de marché boursier ou de prévisions météorologiques à long terme.

Miaou
la source
+1 pour prudence contre l'extrapolation et pour discuter du comportement (relativement conservateur) de KNN lors de l'extrapolation.
eric_kernfeld
KNN est plus conservateur que la régression linéaire lors de l'extrapolation exactement en raison du comportement noté par OP: il ne peut produire que des prédictions dans la plage des valeurs Y déjà observées. Cela pourrait être un avantage dans de nombreuses situations.
eric_kernfeld
1

D'abord un exemple pour "Comment pourrais-je prédire l'avenir en utilisant un régresseur KNN?".

sunt+1sunt..sunt-6
sunt (dans une ville) au cours des 10 dernières années, 3650 numéros.

weektsunt..sunt-6tomorrow(weekt))sunt+1

weekt
week
tomorrow0..tomorrow9
preject(week)tomorrow0..tomorrow9

Ajustez les poids, voir par exemple inverse de la distance pondérée-IDW-interpolation avec python- ,
et la distance métrique pour " le plus proche voisin" dans 7d.

"Quels sont les avantages de l'utilisation d'un régresseur KNN?"
Aux bons commentaires des autres, j'ajouterais facile à coder et à comprendre, et évolue jusqu'au big data.
Inconvénients: sensible aux données et au réglage, peu de compréhension .




XOui
Ouit=b0Xt+b1Xt-1+...
Ouit+1
Ouit+1=une0Ouit+une1Ouit-1+...
Les prévisionnistes appellent cela un modèle ARMA, Autoregressive moving-average_model ou Autoregressive . Voir aussi Analyse de régression .

Ainsi, votre première ligne "nous ne pouvons construire qu'une fonction de régression qui se situe dans l'intervalle des données d'entraînement" semble concerner le mot déroutant "régression".)

denis
la source
1

From An Introduction to Statistical Learning, section 3.5:

Dans une situation réelle où la vraie relation est inconnue, on pourrait conclure que KNN devrait être privilégié par rapport à la régression linéaire car il sera au pire légèrement inférieur à la régression linéaire si la vraie relation est linéaire, et peut donner sensiblement mieux résultats si la vraie relation est non linéaire.

Mais il y a des contraintes (pas du manuel, juste ce que j'ai conclu):

  1. un nombre suffisant d'observations par prédicteur.
  2. le nombre de prédicteurs ne doit pas être trop important.
Hangyu Tian
la source