Oplossing: valueerror: onbekend labeltype: 'continu'
Een veel voorkomende fout die je in Python kunt tegenkomen is:
ValueError : Unknown label type: 'continuous'
Deze fout treedt meestal op wanneer u sklearn probeert te gebruiken om een classificatiemodel zoals logistische regressie aan te passen en de waarden die u gebruikt voor de responsvariabele continu zijn in plaats van categorisch.
Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.
Hoe de fout te reproduceren
Stel dat we de volgende code proberen te gebruiken om in een logistisch regressiemodel te passen:
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'
We ontvangen een foutmelding omdat de waarden van onze responsvariabele momenteel continu zijn.
Bedenk dat een logistisch regressiemodel vereist dat de waarden van de responsvariabelecategorisch zijn, zodat:
- 0 of 1
- „Ja of nee“
- “Slagen of falen”
Momenteel bevat onze responsvariabele continue waarden zoals 0 en 1.02 .
Hoe u de fout kunt oplossen
De manier om deze fout op te lossen is door eenvoudigweg de continue waarden van de responsvariabele naar categorische waarden te converteren met behulp van de functie LabelEncoder() van 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]
Elk van de oorspronkelijke waarden is nu gecodeerd als 0 of 1 .
We kunnen nu het logistische regressiemodel aanpassen:
#fit logistic regression model
classifier = LogisticRegression()
classify. fit (x,y_transformed)
Deze keer ontvangen we geen fouten omdat de modelantwoordwaarden categorisch zijn.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende fouten in Python kunt oplossen:
Oplossing: ValueError: Index bevat dubbele vermeldingen en kan niet worden aangepast
Oplossing: Typefout: verwacht tekenreeks- of bytesobject
Oplossing: TypeError: Object ’numpy.float64′ kan niet worden opgevraagd