Jak naprawić: błąd wartości: nieznany typ etykiety: „ciągły”
Typowym błędem, jaki możesz napotkać w Pythonie jest:
ValueError : Unknown label type: 'continuous'
Ten błąd zwykle występuje, gdy próbujesz użyć sklearn do dopasowania modelu klasyfikacji , takiego jak regresja logistyczna , a wartości użyte dla zmiennej odpowiedzi są ciągłe, a nie kategoryczne.
Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.
Jak odtworzyć błąd
Załóżmy, że próbujemy użyć następującego kodu, aby dopasować model regresji logistycznej:
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'
Otrzymujemy błąd, ponieważ obecnie wartości naszej zmiennej odpowiedzi są ciągłe.
Przypomnijmy, że model regresji logistycznej wymaga, aby wartości zmiennej odpowiedzi były kategoryczne , takie jak:
- 0 lub 1
- „Tak lub nie”
- „Sukces czy porażka”
Obecnie nasza zmienna odpowiedzi zawiera wartości ciągłe, takie jak 0 i 1,02 .
Jak naprawić błąd
Sposobem na rozwiązanie tego błędu jest po prostu konwersja wartości ciągłych zmiennej odpowiedzi na wartości kategoryczne za pomocą funkcji LabelEncoder() sklearna :
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]
Każda z oryginalnych wartości jest teraz kodowana jako 0 lub 1 .
Możemy teraz dostosować model regresji logistycznej:
#fit logistic regression model
classifier = LogisticRegression()
classify. fit (x,y_transformed)
Tym razem nie otrzymaliśmy żadnych błędów, ponieważ wartości odpowiedzi modelu są kategoryczne.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak naprawić inne typowe błędy w Pythonie:
Jak naprawić: Błąd wartości: Indeks zawiera zduplikowane wpisy, nie można go zmienić
Jak naprawić: Błąd typu: Oczekiwany obiekt typu String lub Bytes
Jak naprawić: TypeError: Obiekt „numpy.float64” nie jest wywoływalny