Por que alguém usaria o KNN para regressão?

26

Pelo que entendi, só podemos criar uma função de regressão que esteja dentro do intervalo dos dados de treinamento.

Por exemplo (apenas um dos painéis é necessário): insira a descrição da imagem aqui

Como eu previa o futuro usando um regressor KNN? Novamente, parece aproximar apenas uma função que fica dentro do intervalo dos dados de treinamento.

Minha pergunta: quais são as vantagens de usar um regressor KNN? Entendo que é uma ferramenta muito poderosa para classificação, mas parece que o desempenho seria ruim em um cenário de regressão.

- Reinstate Monica
fonte
Você pode esclarecer o que você quer dizer com "prever no futuro"? Você tem séries temporais e deseja fazer previsões ou está tentando ajustar um relacionamento entre duas variáveis ​​e deseja usá-lo no futuro para adivinhar um valor Y a partir de um valor X conhecido?
gung - Restabelece Monica
11
Por exemplo, se eu quisesse prever o valor Y tal que X = 15 da imagem acima. Um regressor KNN não daria certo?
11
Concordo com você que, se você treinou em um conjunto com mas esperava ver valores de muito além do que está em seus dados, métodos locais não paramétricos podem não ser o ideal. Em vez disso, convém usar esse conhecimento de domínio e definir um modelo paramétrico que inclua seu conhecimento de como se espera que o 'não observado' se comporte. x xx[0,5]xx
Meadowlark Bradsher
11
Um exemplo de KNN sendo usado com sucesso para regressão é a previsão de beisebol PECOTA de Nate Silver. Você pode ler sobre os prós e contras do artigo da Wikipedia sobre PECOTA ou artigos de jornal como este: macleans.ca/authors/colby-cosh/…
Flounderer
6
Também para enfatizar mais geral, à medida que você se familiariza com estatística (ou mineração de dados / aprendizado de máquina, etc.), você encontrará respostas para perguntas muito gerais, como a sua, em geral uma versão parafraseada de 'depende'. Saber do que 'depende' e por que é o conhecimento.
precisa

Respostas:

17

Métodos locais como o K-NN fazem sentido em algumas situações.

Um exemplo que fiz no trabalho da escola tinha a ver com a previsão da resistência à compressão de várias misturas de ingredientes de cimento. Todos esses ingredientes eram relativamente não voláteis em relação à resposta ou entre si, e a KNN fez previsões confiáveis. Em outras palavras, nenhuma das variáveis ​​independentes apresentou variação desproporcionalmente grande para conferir ao modelo individualmente ou possivelmente por interação mútua.

Tome isso com um pouco de sal, porque não conheço uma técnica de investigação de dados que mostre isso conclusivamente, mas intuitivamente parece razoável que, se seus recursos tiverem um grau proporcional de variações, não sei qual proporção, você pode ter uma Candidato KNN. Eu certamente gostaria de saber se existem alguns estudos e técnicas resultantes desenvolvidas para esse efeito.

Se você pensar sobre isso de uma perspectiva de domínio generalizada, há uma ampla classe de aplicativos em que 'receitas' semelhantes produzem resultados semelhantes. Isso certamente parecia descrever a situação de previsão dos resultados da mistura de cimento. Eu diria que se você tivesse dados que se comportassem de acordo com esta descrição e, além disso, sua medida de distância também fosse natural para o domínio em questão e, por último, que você tivesse dados suficientes, eu imaginaria que você deveria obter resultados úteis do KNN ou outro método local .

Você também está obtendo o benefício de um viés extremamente baixo ao usar métodos locais. Às vezes, os modelos aditivos generalizados (GAM) equilibram o viés e a variação ajustando cada variável individual usando o KNN, de modo que:

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

fn(xn)

Eu não descartaria o KNN tão rapidamente. Tem o seu lugar.

Meadowlark Bradsher
fonte
11
Esta resposta sobre a escala de dados para knn pode ajudar a expressar o que você quer dizer com "grau proporcional de variações". stats.stackexchange.com/questions/287425/…
eric_kernfeld 25/03
5

Não gosto de dizer isso, mas na verdade a resposta curta é que "prever o futuro" não é realmente possível, nem com um conhecimento nem com qualquer outro classificador ou regressor atualmente existente.

Claro que você pode extrapolar a linha de uma regressão linear ou o hiperplano de um SVM, mas no final você não sabe qual será o futuro, pelo que sabemos, a linha pode ser apenas uma pequena parte de uma realidade curvilínea. Isso se torna aparente quando você olha métodos bayesianos, como processos gaussianos, por exemplo, notará uma grande incerteza assim que sair do "domínio de entrada conhecido".

É claro que você pode tentar generalizar do que aconteceu hoje para o que provavelmente acontecerá amanhã, o que pode ser feito facilmente com um regressor knn (por exemplo, os números de clientes do ano passado durante o Natal podem dar uma boa dica sobre os números deste ano). Certamente, outros métodos podem incorporar tendências e assim por diante, mas no final você pode ver como isso funciona quando se trata do mercado de ações ou de previsões meteorológicas de longo prazo.

Miau
fonte
+1 por precaução contra extrapolação e por discutir o comportamento (relativamente conservador) do KNN ao extrapolar.
eric_kernfeld 25/03
O KNN é mais conservador do que a regressão linear ao extrapolar exatamente por causa do comportamento observado pelo OP: ele só pode produzir previsões dentro da faixa dos valores Y já observados. Isso pode ser uma vantagem em muitas situações.
eric_kernfeld 25/03
1

Primeiro, um exemplo para "Como eu previa o futuro usando um regressor KNN?".

sunt+1sunt..sunt6
svocênt

Indique Weektsvocênt..svocênt-6tomorroW(Weekt))svocênt+1 1

Weekt
Week
tomorroW0 0..tomorroW9
predict(week)tomorrow0..tomorrow9

Ajustar os pesos, por exemplo, ver -inverso distância ponderadas-idw-interpolação-com-pitão ,
e a distância métrica para "vizinho mais próximo" em 7d.

"Quais são as vantagens de usar um regressor KNN?"
Para os bons comentários de outras pessoas, eu adicionaria fácil codificar e entender, além de escalar para big data.
Desvantagens: sensível a dados e ajustes, pouco entendimento .




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

Portanto, sua primeira linha "só podemos construir uma função de regressão que se encontra dentro do intervalo dos dados de treinamento" parece ser sobre a palavra confusa "regressão".)

denis
fonte
1

Em Introdução à aprendizagem estatística , seção 3.5:

Em uma situação da vida real em que o verdadeiro relacionamento é desconhecido, pode-se concluir que o KNN deve ser favorecido em relação à regressão linear, porque na pior das hipóteses será ligeiramente inferior ao da regressão linear se o verdadeiro relacionamento for linear e pode dar substancialmente melhor resulta se o verdadeiro relacionamento for não linear.

Mas existem restrições (não do livro, exatamente o que eu concluí):

  1. um número suficiente de observações por preditor.
  2. o número de preditores não deve ser muito grande.
Hangyu Tian
fonte