Forum EduPython

Echanges autour d'EduPython.

Vous n'êtes pas identifié(e).

#1 2021-08-27 20:40:09

pierre
Membre
Inscription : 2017-12-29
Messages : 12

Knn regressor

Je n'arrive pas à comprendre le message d'erreur lors de l’exécution de ce petit bout de programme.

je suis preneur de toute remarque. merci d'avance.

import pandas as pd
from sklearn.neighbors import KNeighborsRegressor
from sklearn.model_selection import train_test_split

df = pd.read_csv ('IRIS.csv')
print(df.head())
print(df.info)
# definition des variables caractéristiques et cibles
a = df.loc[:,"petal_length"]
b = df.loc[:,"petal_width"]
x = list(zip(a, b))
y = df.loc[:,"species"]

# fractionner le data
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size= 0.20)

# Instanciation
knnr = KNeighborsRegressor ( n_neighbors = 3, metric = 'euclidean')

# Entrainement
knnr.fit(x_train, y_train)

# prediction
longueur = 2.5
largeur = 0.75
prediction = knnr.predict([[longueur, largeur]])

Hors ligne

#2 2021-08-28 08:57:48

magicvinni
Administrateur
Inscription : 2017-12-22
Messages : 308

Re : Knn regressor

Bonjour,

   Pourriez-vous joindre le fichier IRIS.csv pour que l'on puisse tester et éventuellement copier le message d'erreur que vous avez ?

Merci,
Vincent

Hors ligne

#3 2021-08-28 17:54:48

pierre
Membre
Inscription : 2017-12-29
Messages : 12

Re : Knn regressor

Merci, à force de penser, il s'avère que  KNN regressor, n'accepte que des valeurs numériques.
Le data IRIs est celui du dataset de sickit learn.

Pas moyen de coller les datas.
Bref, j'ai ajouter un colonne pour remplacer les noms des iris par un chiffre. les species sont donc des chiffres. Et là cela fonctionne.

Merci de votre réponse.
cordialement.

import numpy as np
import pandas as pd
from sklearn.neighbors import KNeighborsRegressor
from sklearn.model_selection import train_test_split

df = pd.read_csv ('IRIS_1.csv')
print(df.head())
print(df.info())
# definition des variables caractéristiques et cibles
a = df.loc[:,"petal_length"]
b = df.loc[:,"petal_width"]
x = list(zip(a, b))
y = df.loc[:,"species"]

# fractionner le data
x_train, x_test, y_train, y_test = train_test_split(x, y, random_state=0,test_size= 0.20)

# Instanciation
knnr = KNeighborsRegressor ( n_neighbors = 3, metric = 'euclidean')

# Entrainement
knnr.fit(x_train, y_train)

# Précision
precision = knnr.score(x_test, y_test)
print("La précision pour KNN_R est :",precision)

# prediction
longueur = 6.9
largeur = 3.3
prediction = knnr.predict([[longueur, largeur]])
print(prediction )

# Affichage du résultat
resultat =" La prediction pour KNN_R est:"
if prediction[0] == 0:
    resultat = resultat + "Setosa"
    print(resultat)
if prediction[0] == 1:
    resultat = resultat + "Versicolor"
    print(resultat)
if prediction[0] == 2:
    resultat = resultat + "Virginica"
    print(resultat)

Hors ligne

Pied de page des forums