如何修复: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
  • “是还是不是”
  • “成功或失败”

目前,我们的响应变量包含连续值,例如01.02

如何修复错误

解决此错误的方法是简单地使用sklearnLabelEncoder()函数将响应变量的连续值转换为分类值:

 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]

每个原始值现在都编码为01

我们现在可以调整逻辑回归模型:

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

这次我们没有收到任何错误,因为模型响应值是分类的。

其他资源

以下教程解释了如何修复 Python 中的其他常见错误:

如何修复:ValueError:索引包含重复条目,无法重塑
如何修复:类型错误:预期字符串或字节对象
如何修复:类型错误:对象“numpy.float64”不可调用

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注