Как исправить: 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: индекс содержит повторяющиеся записи, его форму невозможно изменить.
Как исправить: Ошибка типа: ожидаемый строковый или байтовый объект
Как исправить: Ошибка типа: объект «numpy.float64» не может быть вызван

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *