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

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *