Python 错误 ValueError: Unknown Label Type: 'continuous'
本文将解决 Python 中出现 ValueError: Unknown label type: 'continuous' 错误的原因和解决方案。
ValueError: Unknown Label Type: 'continuous' 错误原因
当我们尝试在连续目标变量上训练 sklearn 导入的分类器时,Python 解释器会抛出此错误。
K 最近邻、决策树、逻辑回归等分类器预测输入变量的类别。 类变量采用离散或分类形式,例如 0 或 1、True 或 False,以及 Pass 或 Fail。
如果 sklearn 导入的分类算法,即逻辑回归是在连续目标变量上训练的,它会抛出 ValueError: Unknown label type:'continuous' 。
代码:
import numpy as np
from sklearn.linear_model import LogisticRegression
input_var=np.array([[1.1,1.2,1.5,1.6],[0.5,0.9,0.6,0.8]])
target_var=np.array([1.4,0.4])
classifier_logistic_regression=LogisticRegression()
classifier_logistic_regression.fit(input_var,target_var)
输出:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
Input In [6], in <module>
----> 1 lr.fit(x,y)
File c:\users\hp 840 g3\appdata\local\programs\python\python39\lib\site-packages\sklearn\linear_model\_logistic.py:1516, in LogisticRegression.fit(self, X, y, sample_weight)
1506 _dtype = [np.float64, np.float32]
1508 X, y = self._validate_data(
1509 X,
1510 y,
(...)
1514 accept_large_sparse=solver not in ["liblinear", "sag", "saga"],
1515 )
-> 1516 check_classification_targets(y)
1517 self.classes_ = np.unique(y)
1519 multi_class = _check_multi_class(self.multi_class, solver, len(self.classes_))
File c:\users\hp 840 g3\appdata\local\programs\python\python39\lib\site-packages\sklearn\utils\multiclass.py:197, in check_classification_targets(y)
189 y_type = type_of_target(y)
190 if y_type not in [
191 "binary",
192 "multiclass",
(...)
195 "multilabel-sequences",
196 ]:
--> 197 raise ValueError("Unknown label type: %r" % y_type)
ValueError: Unknown label type: 'continuous'
作为目标标签 y 的浮点值被传递给逻辑回归分类器,它接受分类或离散类标签。 结果,代码在 lr.fit()
函数中抛出错误,并且模型拒绝对给定数据进行训练。
使用 Scikit 的 LabelEncoder() 函数修复 ValueError: Unknown label type: 'continuous'
LabelEncoder()
函数将连续的目标变量编码为离散或分类标签。
分类器现在接受这些值。 分类器对给定数据进行训练并预测输出类别。
代码:
import numpy as np
from sklearn.linear_model import LogisticRegression
from sklearn import preprocessing
from sklearn import utils
input_var=np.array([[1.1,1.2,1.5,1.6],[0.5,0.9,0.6,0.8]])
target_var=np.array([1.4,0.4])
predict_var=np.array([ [1.3, 1.7, 1.8,1.4], [0.2, 0.6, 0.3, 0.4] ])
encoded = preprocessing.LabelEncoder()
encoded_target= encoded.fit_transform(target_var)
print(encoded_target)
classifier_logistic_regression=LogisticRegression()
classifier_logistic_regression.fit(input_var,encoded_target)
predict=classifier_logistic_regression.predict(predict_var)
print(predict)
输出:
[1 0]
[1 0]
使用 LabelEncoder()
函数将目标变量 target_var 的浮点值编码为离散或分类,即 encoded_target 值。
分类器现在接受这些值。 分类器被训练来预测新数据的类别,用 predict_var 表示。
评估数据以修复 ValueError: Unknown label type: 'continuous'
有时必须仔细检查数据以确定问题是回归问题还是分类问题。 一些输出变量,如房价,无法分类或离散化。
在这种情况下,问题是回归之一。 因为回归模型接受连续的目标变量,所以目标变量不需要编码。
代码:
import numpy as np
from sklearn.linear_model import LinearRegression
input_var=np.array([[1.1,1.2,1.5,1.6],[0.5,0.9,0.6,0.8]])
target_var=np.array([1.4,0.4])
predict_var=np.array([ [1.3, 1.7, 1.8,1.4], [0.2, 0.6, 0.3, 0.4] ])
linear_Regressor_model=LinearRegression()
linear_Regressor_model.fit(input_var,target_var)
predict=linear_Regressor_model.predict(predict_var)
print(predict)
输出:
[ 1.6 -0.05263158]
输出变量 target_var 中的浮点值表明问题出在回归上。 该模型必须预测输入变量的值而不是其类别。
训练线性回归模型并预测新数据的结果值。
相关文章
Python 中错误 ValueError: Invalid Literal for Float()
发布时间:2023/05/17 浏览次数:53 分类:Python
-
Python 中 ValueError: invalid literal for float()。 float() 函数无法将字符串类型转换为浮点数。 相反,它会抛出一个 ValueError,它可能会因您的 Python 版本而异。
Python 错误 TypeError: Unhashable Type: List
发布时间:2023/05/17 浏览次数:95 分类:Python
-
本文将讨论 TypeError: unhashable type: 'list' 以及如何在 Python 中修复它。因为 Python 字典只接受可散列数据类型作为它们的键,而列表是不可散列的。
Python 中错误 AttributeError: __Exit__
发布时间:2023/05/17 浏览次数:113 分类:Python
-
尝试用 Python 开发新程序时出错是很常见的。 AttributeError 是 Python 中最常见的错误之一。在本文中,我们将看看如何解决这个 AttributeError: __exit__ 错误,并且我们将通过相关示例和解释来讨论这
Python 错误 TypeError: __str__ Returned Non-String but Printing Output
发布时间:2023/05/17 浏览次数:142 分类:Python
-
本文旨在解决当我们尝试打印字符串而不是在函数中使用 return 语句时出现的问题。Python 错误TypeError: __str__ Returned Non-String but Printing Output
Python 中错误 Path Python3 (From --Python=Python3) Does Not Exist
发布时间:2023/05/17 浏览次数:141 分类:Python
-
错误 The path python3 (from --python=python3) does not exist 可能有几个原因。一种可能是您的系统上没有安装 Python 3。 另一种可能是您安装了多个版本的 Python,而您尝试使用的版本不在您的 PATH 中。
如何解决 Python 中 Urllib HTTP Error 403 Forbidden Message 错误
发布时间:2023/05/17 浏览次数:140 分类:Python
-
今天的文章解释了如何处理错误消息(异常),urllib.error.HTTPError: HTTP Error 403: Forbidden,当它遇到一个被禁止的资源时,由错误类代表请求类产生。Python 中的 urllib 模块
如何解决 Python 错误 ValueError: I/O Operation on Closed File
发布时间:2023/05/17 浏览次数:188 分类:Python
-
本文着眼于 Python 中的一个错误:ValueError: I/O operation on closed file。 解决 Python 中由于缩进不当发生的错误 ValueError: I/O operation on closed file
如何解决 Python 中错误 NameError: Global Name 'unicode' Is Not Defined
发布时间:2023/05/17 浏览次数:198 分类:Python
-
本文将讨论 Python 中错误 NameError: global name 'unicode' is not defined 的原因和解决方法。Python 中 NameError: global name 'unicode' is not defined 的原因
如何解决 Python 中错误 ModuleNotFoundError: No Module Named 'cPickle'
发布时间:2023/05/17 浏览次数:55 分类:Python
-
本文讨论 Python ModuleNotFoundError: No module named 'cPickle' 错误的可能原因及解决方法。解决Python ModuleNotFoundError: No module named 'cPickle' 错误