본문 바로가기
카테고리 없음

unknown label type 'continuous' 해결하기 파이썬

by juda 2023. 4. 11.
반응형

머신러닝 모델을 구현하다 보면, 여러 가지 문제가 발생합니다. 오늘은 그중 ValueError : unknown label type 'continuous' 에러에 대하여 해결해 보겠습니다. 쉽게 해결할 수 있는 문제이니 빠르게 해결하셔서 구현을 이어나가시길 바랍니다.

 

 

unknown label type 'continuous' 해결하기

우선 이러한 문제는 분류모델을 구현함에 있어서 Y 변수 Type이 'int'형이 아니기에 발생하는 문제인데요.

따라서 Y값 Value에 대해서 형변환을 진행해주면 됩니다.

 

기준에 따라 다르겠지만, 'float'형의 경우 round 함수를 이용해 반올림을 진행하고, astype을 사용해 주면 되겠습니다.

# SVM을 예시로 들어보겠습니다.

X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size = 0.2, random_state=0)

clf = svm.SVC(kernel='linear')
clf.fit(X_train, y_trian)

이러한 모델이 있다고 가정할 때 fit과정에서 type으로 인해 발생하는 Error이기에, 이를 해결해주면 되겠습니다.

 

Y = Y.round().astype('int')

위와 같이 Y, 즉 Target 변수 값의 형변환을 진행해주면 해결되겠습니다.

 

또한, 분류 문제이기에 0과 1로 분류해야하는 경우 Min, Max Scaler를 이용하여 0에서 1사이의 값으로 만들어준 후, Threshold값을 지정해준 후 (0.5) 이보다 크면 1, 작으면 0으로 바꿔주는 것도 방법이 되겠습니다.

from sklearn.preprocessing import MinMaxScaler

# MinMaxScaler 선언 및 학습
mMscaler = MinMaxScaler()

# int형이 아닐 시에만 아래 Code를 수행하고 학습 진행
mMscaler = mMscaler.astype('int')
mMscaler.fit(numeric_data)

 

 

반응형