Python KNN: Maîtriser la régression K plus proches voisins avec sklearn
Published on
Dans le monde de l'apprentissage automatique, un algorithme qui a gagné une popularité significative est l'algorithme des K plus proches voisins (KNN). Lorsqu'il est appliqué à des problèmes de régression, cet algorithme est souvent appelé régression KNN. Aujourd'hui, nous allons explorer comment implémenter la régression KNN en utilisant sklearn en Python, en nous concentrant spécifiquement sur la classe KNeighborsRegressor
.
Vous souhaitez créer rapidement une visualisation de données à partir d'un dataframe Python Pandas sans code ?
PyGWalker est une bibliothèque Python pour l'analyse exploratoire des données avec visualisation. PyGWalker (opens in a new tab) peut simplifier votre workflow d'analyse et de visualisation des données dans Jupyter Notebook, en transformant votre dataframe pandas (et dataframe polars) en une interface utilisateur de style Tableau pour une exploration visuelle.
Qu'est-ce que la régression KNN ?
La régression des K plus proches voisins est une méthode non paramétrique utilisée pour les problèmes de prédiction. Elle repose sur le principe que des valeurs d'entrée similaires produisent probablement des valeurs de sortie similaires. Dans le contexte de la régression, KNN prend un nombre spécifié (K) des points de données les plus proches (voisins) et fait la moyenne de leurs valeurs pour faire une prédiction.
Le régression KNN avec Sklearn
Sklearn, ou Scikit-learn, est une bibliothèque Python largement utilisée pour l'apprentissage automatique. Elle fournit des implémentations faciles à utiliser de nombreux algorithmes populaires, et le régression KNN ne fait pas exception. Dans Sklearn, la régression KNN est implémentée à travers la classe KNeighborsRegressor
.
Pour utiliser KNeighborsRegressor
, nous l'importons d'abord :
from sklearn.neighbors import KNeighborsRegressor
Ensuite, nous créons une instance de la classe, en passant le nombre souhaité de voisins en tant qu'argument :
knn_regressor = KNeighborsRegressor(n_neighbors=3)
Enfin, nous pouvons ajuster notre modèle aux données et faire des prédictions :
knn_regressor.fit(X_train, y_train)
predictions = knn_regressor.predict(X_test)
Ajustement du modèle régression KNN avec Sklearn
Un aspect important de l'utilisation de KNN avec sklearn est de choisir le bon nombre de voisins (K). Trop peu de voisins peuvent entraîner un surajustement, tandis que trop nombreux peuvent entraîner un sous-ajustement. Il est souvent préférable d'expérimenter avec différentes valeurs de K et de comparer les résultats.
for k in range(1, 10):
knn_regressor = KNeighborsRegressor(n_neighbors=k)
knn_regressor.fit(X_train, y_train)
print(f'Score pour k={k} : {knn_regressor.score(X_test, y_test)}')
Cela affichera le score de précision pour chaque valeur de K, nous permettant de choisir la meilleure.
Régression KNN avec Sklearn en pratique
Maintenant, voyons un exemple complet de régression KNN en Python avec sklearn. Nous utiliserons l'ensemble de données Boston Housing, un ensemble de données populaire pour les problèmes de régression.
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
# Charger l'ensemble de données
boston = load_boston()
X = boston.data
y = boston.target
# Diviser l'ensemble de données en ensembles d'entraînement et de test
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Appliquer la régression KNN
knn_regressor = KNeighborsRegressor(n_neighbors=3)
knn_regressor.fit(X_train, y_train)
predictions = knn_regressor.predict(X_test)
# Évaluer le modèle
print('Score :', knn_regressor.score(X_test, y_test))
La méthode score()
nous donne le coefficient de détermination R^2 de la prédiction.
Conclusion
Comprendre la régression KNN et comment l'implémenter en Python en utilisant le KNeighborsRegressor
de sklearn est une compétence précieuse pour tout data scientist. En utilisant cet outil puissant, vous pouvez exploiter la puissance de l'apprentissage basé sur les voisins pour faire des prédictions précises sur vos données.
Bien que nous ayons introduit les bases ici, il y a beaucoup plus à explorer avec sklearn et la régression KNN. Bonnes expériences, et que vos voisins vous guident toujours vers les bonnes prédictions !