Fornecendo latitude e longitude para um modelo de preço de casa

Aug 16 2020

Sou novo no aprendizado de máquina e estou tentando entender como você otimiza dados para um modelo. Estou seguindo este tutorial oficial do Kaggle , que ensina os fundamentos do aprendizado de máquina por meio da previsão de preços de imóveis. Eles usam uma árvore de decisão, mas achei estranho quais recursos eles alimentam no modelo para prever o preço de uma casa:

house_price_features = ['Rooms', 'Bathroom', 'Landsize', 'Latitude', 'Longitude']

Quartos, banheiros e tamanho do terreno fazem sentido para mim - mas latitude e longitude? Obviamente existe uma correlação entre localização e preço, mas não vai seguir uma curva legal. Às vezes, subir um bloco aumentará os preços das casas em dobro; às vezes, não terá efeito algum. Intuitivamente, sinto que tudo o que um modelo pode fazer com esses recursos na previsão de preço é overfit. Então, minha pergunta é dupla:

  1. Eles estavam certos em dar latitude e longitude a este modelo para prever o preço, ou esta é uma informação estranha que só pode prejudicar o modelo? Por quê?
  2. Se a resposta acima for "não", há alguma transformação dos dados de latitude e longitude (ou seja, em IDs de vizinhança) que tornaria os dados mais úteis?

Respostas

9 MichaelM Aug 15 2020 at 23:56

A resposta é sim , porque a localização geralmente é o principal fator dos preços das casas por metro quadrado. Abandoná-lo iria deteriorar o desempenho do modelo provavelmente de forma dramática.

Com base em lat/lon, os métodos baseados em árvore dividem o mapa em partes retangulares. Quanto mais forte o efeito e mais dados em uma determinada área, menores serão as peças. Em regiões menos densas, os pedaços não seriam muito pequenos.

Você não os adicionaria como efeitos lineares em uma regressão linear. Lá, você precisaria considerar diferentes abordagens. Um simples seria representar lat/lon cada um por uma spline cúbica e adicionar termos de interação entre eles.