수정 방법: 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
  • “예 혹은 아니오”
  • “성공했느냐 실패했느냐”

현재 우리의 응답 변수에는 01.02 와 같은 연속적인 값이 포함되어 있습니다.

오류를 수정하는 방법

이 오류를 해결하는 방법은 sklearnLabelEncoder() 함수를 사용하여 응답 변수의 연속 값을 범주형 값으로 간단히 변환하는 것입니다.

 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: 인덱스에 중복된 항목이 포함되어 있어 모양을 변경할 수 없습니다.
수정 방법: 유형 오류: 예상 문자열 또는 바이트 개체
수정 방법: TypeError: ‘numpy.float64’ 개체를 호출할 수 없습니다.

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다