Одна распространенная ошибка, с которой вы можете столкнуться в 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()
classifier. 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 transformed values
print(y_transformed)
[0 1 1 0]
Каждое из исходных значений теперь кодируется как 0 или 1 .
Теперь мы можем подобрать модель логистической регрессии:
#fit logistic regression model
classifier = LogisticRegression()
classifier. fit (x, y_transformed)
На этот раз мы не получаем никакой ошибки, потому что значения ответа для модели являются категориальными.
Дополнительные ресурсы
В следующих руководствах объясняется, как исправить другие распространенные ошибки в Python:
Как исправить: ValueError: Индекс содержит повторяющиеся записи, не может изменить форму
Как исправить: ошибка типа: ожидаемая строка или байтовый объект
Как исправить: TypeError: объект 'numpy.float64' не вызывается