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