Perché qualcuno dovrebbe usare KNN per la regressione?


26

Da quello che ho capito, possiamo solo costruire una funzione di regressione che rientri nell'intervallo dei dati di allenamento.

Ad esempio (è necessario solo uno dei pannelli): inserisci qui la descrizione dell'immagine

Come potrei prevedere in futuro usando un regressore KNN? Ancora una volta, sembra approssimare solo una funzione che rientra nell'intervallo dei dati di allenamento.

La mia domanda: quali sono i vantaggi dell'utilizzo di un regressore KNN? Capisco che si tratta di uno strumento molto potente per la classificazione, ma sembra che avrebbe funzionato male in uno scenario di regressione.


Puoi chiarire cosa intendi per "prevedere nel futuro"? Hai serie temporali e vuoi fare previsioni o stai cercando di adattare una relazione tra 2 variabili e vuoi usarla in futuro per indovinare un valore Y da un valore X noto?
gung - Ripristina Monica

1
Ad esempio, se volessi prevedere il valore Y in modo tale che X = 15 dall'immagine sopra. Un regressore KNN non lo taglierebbe nel modo giusto?

1
Concordo con te sul fatto che se ti allenassi su un set con ma ti aspettassi di vedere valori di x molto al di là di ciò che è nei tuoi dati, i metodi locali non parametrici potrebbero non essere l'ideale. Invece potresti voler usare quella conoscenza del dominio e definire un modello parametrico che includa la tua conoscenza di come si prevede che x "non osservato" si comporterà. x[0,5]xx
Meadowlark Bradsher il

1
Un esempio di KNN utilizzato con successo per la regressione è la previsione del baseball PECOTA di Nate Silver. Puoi leggere i pro ei contro dall'articolo di Wikipedia su PECOTA o articoli di giornale come questo: macleans.ca/authors/colby-cosh/…
Flounderer

6
Inoltre, per fare un punto più generale, man mano che acquisisci conoscenza delle statistiche (o del data mining / machine learning ecc.) Scoprirai che le risposte a domande molto generali come la tua saranno spesso una versione parafrasata di "dipende". Sapere da cosa "dipende" e perché è la conoscenza.
Meadowlark Bradsher il

Risposte:


17

Metodi locali come K-NN hanno senso in alcune situazioni.

Un esempio che ho fatto a scuola ha avuto a che fare con la previsione della resistenza a compressione di varie miscele di ingredienti di cemento. Tutti questi ingredienti erano relativamente non volatili rispetto alla risposta o l'uno all'altro e KNN ha fatto previsioni affidabili su di esso. In altre parole, nessuna delle variabili indipendenti presentava una varianza sproporzionatamente grande da conferire al modello individualmente o possibilmente per interazione reciproca.

Prendi questo con un pizzico di sale perché non conosco una tecnica di indagine dei dati che lo dimostra in modo conclusivo ma intuitivamente sembra ragionevole che se le tue caratteristiche hanno un certo grado di varianze, non so quale proporzione, potresti avere un Candidato KNN. Mi piacerebbe sicuramente sapere se ci sono stati alcuni studi e le tecniche risultanti sviluppate in tal senso.

Se ci pensate da una prospettiva di dominio generalizzata, esiste un'ampia classe di applicazioni in cui "ricette" simili producono risultati simili. Ciò sembrava certamente descrivere la situazione della previsione degli esiti della miscelazione del cemento. Direi che se avessi dati che si sono comportati secondo questa descrizione e inoltre la tua misura della distanza era naturale anche per il dominio a portata di mano e, infine, che disponevi di dati sufficienti, immagino che dovresti ottenere risultati utili da KNN o da un altro metodo locale .

Stai anche ottenendo il vantaggio di una propensione estremamente bassa quando usi metodi locali. A volte i modelli di additivi generalizzati (GAM) bilanciano la deviazione e la varianza adattando ogni singola variabile usando KNN in modo tale che:

y^=f1(x1)+f2(x2)++fn(xn)+ϵ

fn(xn)

Non cancellerei KNN così in fretta. Ha il suo posto.


1
Questa risposta sul ridimensionamento dei dati per knn potrebbe aiutare a esprimere ciò che intendi per "grado di variazione proporzionale". stats.stackexchange.com/questions/287425/…
eric_kernfeld

5

Non mi piace dirlo, ma in realtà la risposta breve è che "predire nel futuro" non è realmente possibile né con un nodo né con nessun altro classificatore o regressore attualmente esistente.

Sicuramente puoi estrapolare la linea di una regressione lineare o l'iper-piano di un SVM ma alla fine non sai quale sarà il futuro, per quanto ne sappiamo, la linea potrebbe essere solo una piccola parte di una realtà sinuosa. Ciò diventa evidente quando si osservano metodi bayesiani come i processi gaussiani, ad esempio, si noterà una grande incertezza non appena si esce dal "dominio di input noto".

Ovviamente puoi provare a generalizzare da ciò che è accaduto oggi a ciò che probabilmente accadrà domani, cosa che può essere facilmente fatta con un noto regressore (ad esempio, i numeri dei clienti dell'anno scorso durante il periodo natalizio possono darti un buon suggerimento sui numeri di quest'anno). Sicuramente altri metodi possono incorporare tendenze e così via, ma alla fine puoi vedere quanto funziona bene quando si tratta di borsa o previsioni meteorologiche a lungo termine.


+1 per cautela contro l'estrapolazione e per discutere del comportamento (relativamente conservativo) di KNN durante l'estrapolazione.
Eric_kernfeld,

KNN è più conservativo della regressione lineare quando estrapola esattamente a causa del comportamento osservato da OP: può solo produrre previsioni nell'intervallo di valori Y già osservati. Questo potrebbe essere un vantaggio in molte situazioni.
eric_kernfeld,

1

Innanzitutto un esempio di "Come potrei prevedere in futuro usando un regressore KNN?".

sunt+1sunt..sunt6
sunt

weektsunt..sunt6tomorrow(weekt))sunt+1

weekt
week
tomorrow0..tomorrow9
predict(week)tomorrow0..tomorrow9

Ottimizza i pesi, vedi ad esempio interpolazione-idw-ponderata-interpolazione-id-con-pitone ,
e la metrica della distanza per "Il vicino più vicino" in 7d.

"Quali sono i vantaggi dell'utilizzo di un regressore KNN?"
Ai buoni commenti degli altri aggiungerei facile da codificare e comprendere e scalare fino ai big data.
Svantaggi: sensibile ai dati e all'ottimizzazione, non molta comprensione .




XY
Yt=b0Xt+b1Xt1+...
Yt+1
Yt+1=a0Yt+a1Yt1+...

Quindi la tua prima riga "possiamo solo costruire una funzione di regressione che si trova nell'intervallo dei dati di allenamento" sembra riguardare la parola confusa "regressione".)


1

Da un'introduzione all'apprendimento statistico , sezione 3.5:

In una situazione di vita reale in cui la vera relazione è sconosciuta, si potrebbe trarre la conclusione che KNN dovrebbe essere favorito rispetto alla regressione lineare perché nella peggiore delle ipotesi sarà leggermente inferiore alla regressione lineare se la vera relazione è lineare e potrebbe dare sostanzialmente risulta se la relazione vera non è lineare.

Ma ci sono dei vincoli (non dal libro di testo, proprio quello che ho concluso):

  1. un numero sufficiente di osservazioni per predittore.
  2. il numero di predittori non dovrebbe essere troppo grande.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.