Scikit Learn - RadiusNeighborsClassifier

Le rayon dans le nom de ce classificateur représente les voisins les plus proches dans un rayon spécifié r, où r est une valeur à virgule flottante spécifiée par l'utilisateur. Par conséquent, comme son nom l'indique, ce classificateur met en œuvre un apprentissage basé sur le nombre de voisins dans un rayon fixe r de chaque point d'apprentissage. Comprenons-le davantage avec l'aide si un exemple d'implémentation -

Exemple d'implémentation

Dans cet exemple, nous allons implémenter KNN sur un jeu de données nommé Iris Flower à l'aide de scikit-learn RadiusNeighborsClassifer -

Tout d'abord, importez le jeu de données iris comme suit -

from sklearn.datasets import load_iris
iris = load_iris()

Maintenant, nous devons diviser les données en données d'entraînement et de test. Nous utiliserons Sklearntrain_test_split fonction pour diviser les données dans le rapport de 70 (données d'entraînement) et 20 (données de test) -

X = iris.data[:, :4]
y = iris.target
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.20)

Ensuite, nous ferons la mise à l'échelle des données à l'aide du module de prétraitement Sklearn comme suit -

from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
scaler.fit(X_train)
X_train = scaler.transform(X_train)
X_test = scaler.transform(X_test)

Ensuite, importez le RadiusneighborsClassifier classe de Sklearn et fournissez la valeur de rayon comme suit -

from sklearn.neighbors import RadiusNeighborsClassifier
rnc = RadiusNeighborsClassifier(radius = 5)
rnc.fit(X_train, y_train)

Exemple

Maintenant, créez et prédisez la classe de deux observations comme suit -

classes = {0:'setosa',1:'versicolor',2:'virginicia'}
x_new = [[1,1,1,1]]
y_predict = rnc.predict(x_new)
print(classes[y_predict[0]])

Production

versicolor

Programme complet de travail / exécutable

from sklearn.datasets import load_iris
iris = load_iris()
X = iris.data[:, :4]

y = iris.target
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.20)

from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
scaler.fit(X_train)
X_train = scaler.transform(X_train)
X_test = scaler.transform(X_test)

from sklearn.neighbors import RadiusNeighborsClassifier
rnc = RadiusNeighborsClassifier(radius = 5)
rnc.fit(X_train, y_train)

classes = {0:'setosa',1:'versicolor',2:'virginicia'}
x_new = [[1,1,1,1]]
y_predict = rnc.predict(x_new)
print(classes[y_predict[0]])