迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

Python 错误 ValueError: Unknown Label Type: 'continuous'

作者:迹忆客 最近更新:2023/05/16 浏览次数:

本文将解决 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 中的浮点值表明问题出在回归上。 该模型必须预测输入变量的值而不是其类别。

训练线性回归模型并预测新数据的结果值。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

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 中错误 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 中。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便