Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Implémentation de k-NN | Classificateur k-NN
Quizzes & Challenges
Quizzes
Challenges
/
Classification avec Python

bookImplémentation de k-NN

KNeighborsClassifier

L’implémentation des k-plus proches voisins est relativement simple. Il suffit d’importer et d’utiliser la classe KNeighborsClassifier.

Une fois la classe importée et un objet créé comme suit :

# Importing the class
from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier(n_neighbors=3)

Il faut fournir les données d’entraînement à l’aide de la méthode .fit() :

knn.fit(X_scaled, y)

Et c’est tout ! Il est maintenant possible de prédire de nouvelles valeurs.

y_pred = knn.predict(X_new_scaled)

Mise à l’échelle des données

Cependant, il est important de rappeler que les données doivent être mises à l’échelle. StandardScaler est couramment utilisé à cet effet :

Vous devez calculer xˉ\bar x et ss uniquement sur l'ensemble d'entraînement en utilisant .fit() ou .fit_transform(). Ensuite, utilisez .transform() sur l'ensemble de test afin que les deux ensembles soient mis à l'échelle de manière identique :

from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)

Utiliser des valeurs de mise à l'échelle différentes pour l'entraînement et le test nuit aux prédictions.

Exemple

Nous prédisons si une personne apprécie Star Wars VI en utilisant ses notes pour les épisodes IV et V (provenant de The Movies Dataset). Après l'entraînement, nous testons deux utilisateurs : l'un a noté IV/V comme 5 et 5, l'autre comme 4.5 et 4.

123456789101112131415161718192021222324252627
from sklearn.neighbors import KNeighborsClassifier from sklearn.preprocessing import StandardScaler import numpy as np import pandas as pd import warnings warnings.filterwarnings('ignore') df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b71ff7ac-3932-41d2-a4d8-060e24b00129/starwars_binary.csv') # Dropping the target column and leaving only features as `X_train` X_train = df.drop('StarWars6', axis=1) # Storing target column as `y_train`, which contains 1 (liked SW 6) or 0 (didn't like SW 6) y_train = df['StarWars6'] # Test set of two people X_test = np.array([[5, 5], [4.5, 4]]) # Scaling the data scaler = StandardScaler() X_train = scaler.fit_transform(X_train) X_test = scaler.transform(X_test) # Building a model and predict new instances knn = KNeighborsClassifier(n_neighbors=13).fit(X_train, y_train) y_pred = knn.predict(X_test) print(y_pred)
copy
question mark

Lesquels des noms de classes suivants de scikit-learn sont utilisés pour implémenter le classificateur des k plus proches voisins et pour normaliser les caractéristiques lors de la préparation des données pour k-NN ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 4

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Awesome!

Completion rate improved to 4.17

bookImplémentation de k-NN

Glissez pour afficher le menu

KNeighborsClassifier

L’implémentation des k-plus proches voisins est relativement simple. Il suffit d’importer et d’utiliser la classe KNeighborsClassifier.

Une fois la classe importée et un objet créé comme suit :

# Importing the class
from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier(n_neighbors=3)

Il faut fournir les données d’entraînement à l’aide de la méthode .fit() :

knn.fit(X_scaled, y)

Et c’est tout ! Il est maintenant possible de prédire de nouvelles valeurs.

y_pred = knn.predict(X_new_scaled)

Mise à l’échelle des données

Cependant, il est important de rappeler que les données doivent être mises à l’échelle. StandardScaler est couramment utilisé à cet effet :

Vous devez calculer xˉ\bar x et ss uniquement sur l'ensemble d'entraînement en utilisant .fit() ou .fit_transform(). Ensuite, utilisez .transform() sur l'ensemble de test afin que les deux ensembles soient mis à l'échelle de manière identique :

from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)

Utiliser des valeurs de mise à l'échelle différentes pour l'entraînement et le test nuit aux prédictions.

Exemple

Nous prédisons si une personne apprécie Star Wars VI en utilisant ses notes pour les épisodes IV et V (provenant de The Movies Dataset). Après l'entraînement, nous testons deux utilisateurs : l'un a noté IV/V comme 5 et 5, l'autre comme 4.5 et 4.

123456789101112131415161718192021222324252627
from sklearn.neighbors import KNeighborsClassifier from sklearn.preprocessing import StandardScaler import numpy as np import pandas as pd import warnings warnings.filterwarnings('ignore') df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b71ff7ac-3932-41d2-a4d8-060e24b00129/starwars_binary.csv') # Dropping the target column and leaving only features as `X_train` X_train = df.drop('StarWars6', axis=1) # Storing target column as `y_train`, which contains 1 (liked SW 6) or 0 (didn't like SW 6) y_train = df['StarWars6'] # Test set of two people X_test = np.array([[5, 5], [4.5, 4]]) # Scaling the data scaler = StandardScaler() X_train = scaler.fit_transform(X_train) X_test = scaler.transform(X_test) # Building a model and predict new instances knn = KNeighborsClassifier(n_neighbors=13).fit(X_train, y_train) y_pred = knn.predict(X_test) print(y_pred)
copy
question mark

Lesquels des noms de classes suivants de scikit-learn sont utilisés pour implémenter le classificateur des k plus proches voisins et pour normaliser les caractéristiques lors de la préparation des données pour k-NN ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 4
some-alt