Imagine que você precisa precificar um apartamento que acabou de chegar ao mercado. Naturalmente, você analisa imóveis similares vendidos recentemente na região. Se três apartamentos com características parecidas foram vendidos por R$ 450.000, R$ 460.000 e R$ 455.000, um valor around de R$ 455.000 parece razoável. Este processo intuitivo de estimar valores baseando-se em exemplos similares é exatamente o que o algoritmo de Regressão dos Vizinhos Mais Próximos faz computacionalmente.
Como isso funciona na prática?
O KNN Regressor opera de maneira surpreendentemente simples e intuitiva. Primeiramente, você precisa de dados históricos – pense nisso como seu registro completo de transações imobiliárias. Quando um novo imóvel precisa ser avaliado, o algoritmo identifica os ‘K’ propriedades mais similares no banco de dados. Posteriormente, ele calcula a média dos valores desses vizinhos para gerar a estimativa. Similarmente ao classificador, este algoritmo também é considerado “preguiçoso”.
Mãos na massa: estimando o preço de um apartamento
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
""" Regressão com K-Nearest Neighbors para precificação de imóveis Estimativa de valores baseada em características similares """ from sklearn.neighbors import KNeighborsRegressor import numpy as np # Dados de imóveis vendidos: [m², quartos, banheiros, ano] caracteristicas_imoveis = np.array([ [75, 2, 1, 1995], [120, 3, 2, 2010], [85, 2, 1, 2005], [150, 4, 3, 2015], [95, 3, 2, 2008], [180, 4, 3, 2020] ]) # Preços reais de venda (em R$ mil) precos_venda = np.array([380, 550, 420, 720, 480, 850]) # Criando regressor com 3 vizinhos regressor = KNeighborsRegressor(n_neighbors=3) regressor.fit(caracteristicas_imoveis, precos_venda) # Novo apartamento para avaliar novo_apartamento = np.array([[90, 2, 1, 2007]]) # Estimando o preço preco_estimado = regressor.predict(novo_apartamento) print(f"Preço estimado: R$ {preco_estimado[0]:.0f}.000") |
Os detalhes que fazem diferença
Escolher o valor de ‘K’ impacta diretamente a precisão das estimativas. Um K muito baixo torna o modelo sensível a outliers. Contudo, um K muito alto pode suavizar excessivamente as previsões. A normalização dos dados também é essencial quando características têm escalas diferentes.
- Escolha de K: Comece com K=3-5 e ajuste conforme necessário
- Ponderação: Use weights=’distance’ para valorizar vizinhos próximos
- Normalização: Sempre escale dados com unidades diferentes
- Métricas: Use RMSE e R² para avaliação
Perguntas que os iniciantes fazem
Você deve estar se perguntando: “Qual a diferença entre classificação e regressão KNN?” Enquanto a classificação prevê categorias, a regressão estima valores contínuos. Outra dúvida comum: “E se os dados tiverem escalas diferentes?” Use StandardScaler antes de aplicar o KNN.
Para onde ir agora?
Experimente aplicar o KNN Regressor em seus próprios dados. Teste diferentes valores de K e compare os resultados. Pratique a normalização e observe como melhora a precisão.
Assuntos relacionados
- Estatística: médias, variância, correlação
- Geometria: distâncias em espaços multidimensionais
- Álgebra linear: normalização de vetores
- Otimização: seleção de parâmetros ideais