Come risolvere il problema: valueerror: tipo di etichetta sconosciuto: 'continua'


Un errore comune che potresti riscontrare in Python è:

 ValueError : Unknown label type: 'continuous'

Questo errore si verifica in genere quando si tenta di utilizzare sklearn per adattare unmodello di classificazione comela regressione logistica e i valori utilizzati per la variabile di risposta sono continui anziché categorici.

L’esempio seguente mostra come utilizzare questa sintassi nella pratica.

Come riprodurre l’errore

Supponiamo di provare a utilizzare il seguente codice per adattare un modello di regressione logistica:

 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()
classify. fit (x,y)

ValueError : Unknown label type: 'continuous'

Stiamo ricevendo un errore perché attualmente i valori della nostra variabile di risposta sono continui.

Ricordiamo che un modello di regressione logistica richiede che i valori della variabile di risposta siano categoriali tali che:

  • 0 o 1
  • “Sì o no”
  • “Riuscire o fallire”

Attualmente, la nostra variabile di risposta contiene valori continui come 0 e 1.02 .

Come correggere l’errore

Il modo per risolvere questo errore è semplicemente convertire i valori continui della variabile di risposta in valori categoriali utilizzando la funzione LabelEncoder() di 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 values transformed
print (y_transformed)

[0 1 1 0]

Ciascuno dei valori originali è ora codificato come 0 o 1 .

Possiamo ora adattare il modello di regressione logistica:

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

Questa volta non riceviamo alcun errore perché i valori di risposta del modello sono categoriali.

Risorse addizionali

I seguenti tutorial spiegano come correggere altri errori comuni in Python:

Come risolvere il problema: ValueError: l’indice contiene voci duplicate, non può essere rimodellato
Come risolvere il problema: Errore di tipo: oggetto stringa o byte previsto
Come risolvere il problema: TypeError: l’oggetto “numpy.float64” non è richiamabile

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *