วิธีแก้ไข: valueerror: ประเภทป้ายกำกับที่ไม่รู้จัก: 'ต่อเนื่อง'


ข้อผิดพลาดทั่วไปที่คุณอาจพบใน Python คือ:

 ValueError : Unknown label type: 'continuous'

ข้อผิดพลาดนี้มักเกิดขึ้นเมื่อคุณพยายามใช้ sklearn เพื่อให้เหมาะสมกับ โมเดลการจำแนกประเภท เช่น การถดถอยโลจิสติก และค่าที่คุณใช้สำหรับตัวแปรตอบสนองจะเป็นแบบต่อเนื่องแทนที่จะเป็นแบบเด็ดขาด

ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ

วิธีการทำซ้ำข้อผิดพลาด

สมมติว่าเรากำลังพยายามใช้โค้ดต่อไปนี้เพื่อให้พอดีกับแบบจำลองการถดถอยโลจิสติก:

 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'

เราได้รับข้อผิดพลาดเนื่องจากปัจจุบันค่าของตัวแปรการตอบสนองของเรามีความต่อเนื่อง

โปรดจำไว้ว่า แบบจำลองการถดถอยโลจิสติก ต้องการให้ค่าของตัวแปรตอบสนองเป็น หมวดหมู่ ดังนี้:

  • 0 หรือ 1
  • “ใช่หรือไม่”
  • “สำเร็จหรือล้มเหลว”

ปัจจุบันตัวแปรตอบสนองของเรามีค่าต่อเนื่อง เช่น 0 และ 1.02

วิธีการแก้ไขข้อผิดพลาด

วิธีแก้ไขข้อผิดพลาดนี้คือเพียงแปลงค่าต่อเนื่องของตัวแปรตอบสนองเป็นค่าหมวดหมู่โดยใช้ฟังก์ชัน LabelEncoder() ของ 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]

ตอนนี้ค่าดั้งเดิมแต่ละค่าถูกเข้ารหัสเป็น 0 หรือ 1

ตอนนี้เราสามารถปรับแบบจำลองการถดถอยโลจิสติกได้:

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

ครั้งนี้เราไม่ได้รับข้อผิดพลาดใดๆ เนื่องจากค่าการตอบสนองของโมเดลเป็นแบบเด็ดขาด

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีแก้ไขข้อผิดพลาดทั่วไปอื่นๆ ใน Python:

วิธีแก้ไข: ValueError: ดัชนีมีรายการที่ซ้ำกัน ไม่สามารถเปลี่ยนรูปร่างได้
วิธีแก้ไข: ข้อผิดพลาดประเภท: สตริงที่คาดหวังหรือวัตถุไบต์
วิธีแก้ไข: TypeError: ไม่สามารถเรียกวัตถุ ‘numpy.float64’ ได้

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *