So beheben sie: valueerror: unbekannter etikettentyp: „kontinuierlich“


Ein häufiger Fehler, der in Python auftreten kann, ist:

 ValueError : Unknown label type: 'continuous'

Dieser Fehler tritt normalerweise auf, wenn Sie versuchen, sklearn zur Anpassung an ein Klassifizierungsmodell wie die logistische Regression zu verwenden, und die Werte, die Sie für die Antwortvariable verwenden, kontinuierlich statt kategorisch sind.

Das folgende Beispiel zeigt, wie diese Syntax in der Praxis verwendet wird.

So reproduzieren Sie den Fehler

Angenommen, wir versuchen, den folgenden Code zu verwenden, um ein logistisches Regressionsmodell anzupassen:

 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'

Wir erhalten eine Fehlermeldung, da die Werte unserer Antwortvariablen derzeit kontinuierlich sind.

Denken Sie daran, dass ein logistisches Regressionsmodell erfordert, dass die Werte der Antwortvariablen kategorisch sind, sodass:

  • 0 oder 1
  • „Ja oder nein“
  • „Erfolg haben oder scheitern“

Derzeit enthält unsere Antwortvariable kontinuierliche Werte wie 0 und 1,02 .

So beheben Sie den Fehler

Die Möglichkeit, diesen Fehler zu beheben, besteht darin, einfach die kontinuierlichen Werte der Antwortvariablen mithilfe der LabelEncoder()- Funktion von sklearn in kategoriale Werte umzuwandeln:

 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]

Jeder der Originalwerte wird nun als 0 oder 1 kodiert.

Wir können nun das logistische Regressionsmodell anpassen:

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

Dieses Mal erhalten wir keine Fehler, da die Antwortwerte des Modells kategorisch sind.

Zusätzliche Ressourcen

Die folgenden Tutorials erklären, wie Sie andere häufige Fehler in Python beheben:

So beheben Sie: ValueError: Der Index enthält doppelte Einträge und kann nicht umgestaltet werden
So beheben Sie: Typfehler: Erwarteter String oder Bytes-Objekt
So beheben Sie: TypeError: Das Objekt „numpy.float64“ kann nicht aufgerufen werden

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert