Python KNN: Dominando a regressão de vizinhos mais próximos com sklearn
Published 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.
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!