Comment réparer : ValueError : type d’étiquette inconnu : ‘ continu ’



Une erreur courante que vous pouvez rencontrer en Python est :

ValueError: Unknown label type: 'continuous'

Cette erreur se produit généralement lorsque vous tentez d’utiliser sklearn pour ajuster un modèle de classification tel que la régression logistique et que les valeurs que vous utilisez pour la variable de réponse sont continues au lieu de catégorielles.

L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.

Comment reproduire l’erreur

Supposons que nous essayions d’utiliser le code suivant pour ajuster un modèle de régression logistique :

import numpy as np
from sklearn.linear_model import LogisticRegression

#define values for predictor and response variables
x = np.array([[2, 2, 3], [3, 4, 3], [5, 6, 6], [7, 5, 5]])
y = np.array([0, 1.02, 1.02, 0])

#attempt to fit logistic regression model
classifier = LogisticRegression()
classifier.fit(x, y)

ValueError: Unknown label type: 'continuous'

Nous recevons une erreur car actuellement les valeurs de notre variable de réponse sont continues.

Rappelons qu’un modèle de régression logistique nécessite que les valeurs de la variable de réponse soient catégoriques telles que :

  • 0 ou 1
  • « Oui ou non »
  • « Réussir ou échouer »

Actuellement, notre variable de réponse contient des valeurs continues telles que 0 et 1.02 .

Comment réparer l’erreur

La façon de résoudre cette erreur consiste simplement à convertir les valeurs continues de la variable de réponse en valeurs catégorielles à l’aide de la fonction LabelEncoder() de sklearn :

from sklearn import preprocessing
from sklearn import utils

#convert y values to categorical values
lab = preprocessing.LabelEncoder()
y_transformed = lab.fit_transform(y)

#view transformed values
print(y_transformed)

[0 1 1 0]

Chacune des valeurs d’origine est désormais codée sous la forme 0 ou 1 .

Nous pouvons maintenant adapter le modèle de régression logistique :

#fit logistic regression model
classifier = LogisticRegression()
classifier.fit(x, y_transformed)

Cette fois, nous ne recevons aucune erreur car les valeurs de réponse du modèle sont catégoriques.

Ressources additionnelles

Les didacticiels suivants expliquent comment corriger d’autres erreurs courantes en Python :

Comment réparer : ValueError : l’index contient des entrées en double, ne peut pas être remodelé
Comment réparer : erreur de type : chaîne attendue ou objet de type octets
Comment réparer : TypeError : l’objet ‘numpy.float64’ n’est pas appelable

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *