Nasıl düzeltilir? valueerror: bilinmeyen etiket türü: 'sürekli'
Python’da karşılaşabileceğiniz yaygın bir hata:
ValueError : Unknown label type: 'continuous'
Bu hata genellikle sklearn’ü lojistik regresyon gibi bir sınıflandırma modeline uyacak şekilde kullanmaya çalıştığınızda ve yanıt değişkeni için kullandığınız değerlerin kategorik yerine sürekli olması durumunda ortaya çıkar.
Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.
Hata nasıl yeniden oluşturulur?
Lojistik regresyon modeline uymak için aşağıdaki kodu kullanmaya çalıştığımızı varsayalım:
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'
Şu anda yanıt değişkenimizin değerleri sürekli olduğundan hata alıyoruz.
Lojistik regresyon modelinin, yanıt değişkeninin değerlerinin şu şekilde kategorik olmasını gerektirdiğini hatırlayın:
- 0 veya 1
- “Evet veya hayır”
- “Başarılı ya da başarısız”
Şu anda yanıt değişkenimiz 0 ve 1,02 gibi sürekli değerler içeriyor.
Hata nasıl düzeltilir?
Bu hatayı çözmenin yolu, yanıt değişkeninin sürekli değerlerini sklearn’in LabelEncoder() işlevini kullanarak kategorik değerlere dönüştürmektir:
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]
Orijinal değerlerin her biri artık 0 veya 1 olarak kodlanmıştır.
Artık lojistik regresyon modelini uyarlayabiliriz:
#fit logistic regression model
classifier = LogisticRegression()
classify. fit (x,y_transformed)
Model yanıt değerleri kategorik olduğundan bu sefer herhangi bir hata almıyoruz.
Ek kaynaklar
Aşağıdaki eğitimlerde Python’daki diğer yaygın hataların nasıl düzeltileceği açıklanmaktadır:
Nasıl Onarılır: ValueError: Dizin yinelenen girişler içeriyor, yeniden şekillendirilemez
Nasıl Onarılır: Tür Hatası: Beklenen Dize veya Bayt Nesnesi
Nasıl düzeltilir: TypeError: ‘numpy.float64’ nesnesi çağrılabilir değil