Skip to content

Python KNN: Dominando a regressão de vizinhos mais próximos com sklearn

Updated on

No mundo do aprendizado de máquina, um algoritmo que tem ganhado grande popularidade é o algoritmo K Nearest Neighbors (KNN). Quando aplicado a problemas de regressão, esse algoritmo é frequentemente referido como regressão KNN. Hoje, vamos explorar como implementar a regressão KNN usando a biblioteca sklearn em Python, focando especificamente na classe KNeighborsRegressor.

Quer criar rapidamente visualizações de dados a partir de um dataframe do Pandas em Python sem escrever código?

PyGWalker é uma biblioteca em Python para análise exploratória de dados com visualização de dados. PyGWalker (opens in a new tab) pode simplificar seu fluxo de trabalho de análise e visualização de dados do Jupyter Notebook, transformando seu dataframe do pandas (e dataframe do polars) em uma interface de usuário tipo Tableau para exploração visual.

PyGWalker para visualização de dados (opens in a new tab)

O que é a Regressão KNN?

A Regressão K Nearest Neighbor é um método não-paramétrico usado para problemas de previsão. Ele funciona com base no pressuposto de que valores de entrada semelhantes provavelmente produzem valores de saída semelhantes. No contexto de regressão, o KNN pega um número especificado (K) dos pontos de dados mais próximos (vizinhos) e faz a média de seus valores para fazer uma previsão.

O Regressor Sklearn KNN

Sklearn, ou Scikit-learn, é uma biblioteca Python amplamente utilizada para aprendizado de máquina. Ele fornece implementações fáceis de usar de muitos algoritmos populares e o regressor KNN não é exceção. No Sklearn, a regressão KNN é implementada por meio da classe KNeighborsRegressor.

Para usar o KNeighborsRegressor, primeiro o importamos:

from sklearn.neighbors import KNeighborsRegressor

Em seguida, criamos uma instância da classe, passando o número desejado de vizinhos como argumento:

knn_regressor = KNeighborsRegressor(n_neighbors=3)

Finalmente, podemos ajustar nosso modelo aos dados e fazer previsões:

knn_regressor.fit(X_train, y_train)
previsões = knn_regressor.predict(X_test)

Ajustando o modelo de regressão Sklearn KNN

Um aspecto importante de usar KNN com Sklearn é escolher o número certo de vizinhos (K). Poucos vizinhos podem levar a overfitting, enquanto muitos vizinhos podem levar a underfitting. É frequentemente uma boa ideia experimentar diferentes valores de K e comparar os resultados.

para k in range(1, 10):
    knn_regressor = KNeighborsRegressor(n_neighbors=k)
    knn_regressor.fit(X_train, y_train)
    print(f'Pontuação para k={k}: {knn_regressor.score(X_test, y_test)}')

. Não traduza códigos que começam com import. Se houver um cabeçalho, traduza o conteúdo do cabeçalho, não os parâmetros. Se houver um componente jsonld, certifique-se de traduzir o conteúdo json-ld também. Este arquivo markdown irá gerar a pontuação de precisão para cada valor de K, permitindo-nos escolher o melhor.

Regressão KNN do Sklearn na Prática

Agora, vamos ver um exemplo completo de regressão KNN em Python com o sklearn. Usaremos o conjunto de dados Boston Housing, um conjunto popular de dados para problemas de regressão.

from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
 
# Carregue o conjunto de dados
boston = load_boston ()
X = boston.data
y = boston.target
 
# Divida o conjunto de dados em conjuntos de treinamento e teste
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
 
# Aplicar regressão KNN
knn_regressor = KNeighborsRegressor(n_neighbors=3)
knn_regressor.fit(X_train, y_train)
predictions = knn_regressor.predict(X_test)
 
# Avalie o modelo
print('Pontuação:', knn_regressor.score(X_test, y_test))

O método score() nos dá o coeficiente de determinação R ^ 2 da previsão.

Conclusão

Compreender a regressão KNN e como implementá-la em Python usando o KNeighborsRegressor do sklearn é uma habilidade valiosa para qualquer cientista de dados. Ao aproveitar essa ferramenta poderosa, você pode aproveitar o aprendizado baseado em vizinhos para fazer previsões precisas em seus dados.

Embora tenhamos apresentado o básico aqui, há muito mais para explorar com o sklearn e a regressão KNN. Experimente e que seus vizinhos sempre o guiem para as previsões corretas!