วิธีแก้ไข: 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’ ได้