Python ValueError: Desconocido Tipo de etiqueta: 'continuo'
-
Causas de
ValueError: Tipo de etiqueta desconocido: 'continuo'
en Python -
Utilice la función
LabelEncoder()
de Scikit para corregirValueError: tipo de etiqueta desconocido: 'continuo'
-
Evalúe los datos para corregir
ValueError: tipo de etiqueta desconocido: 'continuo'
Este artículo abordará las causas y soluciones del error ValueError: Unknown label type: 'continuous'
en Python.
Causas de ValueError: Tipo de etiqueta desconocido: 'continuo'
en Python
El intérprete de Python arroja este error cuando intentamos entrenar el clasificador importado de sklearn en la variable de destino continua.
Clasificadores como K Vecino más cercano, Árbol de decisión, Regresión logística, etc., predicen la clase de variables de entrada. Las variables de clase están en formas discretas o categóricas tales como “0 o 1”, “Verdadero o Falso” y “Aprobado o Reprobado”.
Si sklearn importó el algoritmo de clasificación, es decir, la regresión logística se entrena en la variable objetivo continua, arroja ValueError: Unknown label type:'continuous'
.
Código:
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)
Producción :
---------------------------------------------------------------------------
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'
Los valores flotantes como etiqueta de destino y se pasan al clasificador de regresión logística, que acepta etiquetas de clase categóricas o discretas. Como resultado, el código arroja un error en la función lr.fit()
y el modelo se niega a entrenar con los datos proporcionados.
Utilice la función LabelEncoder()
de Scikit para corregir ValueError: tipo de etiqueta desconocido: 'continuo'
La función LabelEncoder()
codifica las variables objetivo continuas en etiquetas discretas o categóricas.
El clasificador ahora acepta estos valores. El clasificador se entrena con los datos proporcionados y predice la clase de salida.
Código:
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)
Producción :
[1 0]
[1 0]
Los valores flotantes de la variable de destino target_var
se codifican en valores discretos o categóricos, es decir, encoded_target
mediante la función LabelEncoder()
.
El clasificador ahora acepta estos valores. El clasificador está entrenado para predecir la clase de nuevos datos, denotada por predict_var
.
Evalúe los datos para corregir ValueError: tipo de etiqueta desconocido: 'continuo'
A veces, los datos deben examinarse cuidadosamente para determinar si el problema es de regresión o de clasificación. Algunas variables de producción, como el precio de la vivienda, no pueden clasificarse ni discretizarse.
En tales casos, el problema es uno de regresión. Dado que el modelo de regresión acepta variables objetivo continuas, no es necesario codificar la variable objetivo.
Código:
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)
Producción :
[ 1.6 -0.05263158]
Los valores flotantes en la variable de salida target_var
muestran que el problema es la regresión. El modelo debe predecir el valor de la variable de entrada en lugar de su clase.
Se entrena un modelo de regresión lineal y predice el valor de resultado de los nuevos datos.
Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.
LinkedInArtículo relacionado - Python Error
- Administrar fallas de segmentación en Python
- Archivo <Stdin>, Línea 1, en <Módulo> Error en Python
- Arreglar AttributeError: el objeto 'generador' no tiene atributo 'siguiente' en Python
- Arreglar el comando cl.exe falló: no existe tal archivo o directorio en Windows
- Arreglar NameError: la variable no está definida en Python
- Arreglar Socket.Gaierror: [Errno 8] Nodename ni Servname proporcionado, o desconocido en Python