군침이 싹 도는 코딩

원 핫 인코딩 된 y 값을 레이블 인코딩으로 바꾸는 법 본문

Python/Deep Learning

원 핫 인코딩 된 y 값을 레이블 인코딩으로 바꾸는 법

mugoori 2022. 12. 29. 17:06
confusion_matrix(y_test,y_pred)
>>>
ValueError: Classification metrics can't handle a mix of multilabel-indicator and multiclass targets

# 컨퓨전 매트릭스를 사용할 때 이런 에러가 발생할때가 있다

이는 안에 들어가는 데이터가 원 핫 인코딩 된 데이터라서 그렇다

컨퓨전 매트릭스로 비교하기 위해서는 레이블 인코딩 된 값이 필요하다

 

 

y_train
>>>
array([[0., 0., 0., ..., 0., 0., 0.],
       [1., 0., 0., ..., 0., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.],
       ...,
       
y_pred.argmax(axis=1)
>>>
array([7, 2, 1, ..., 4, 5, 6])

# 원핫 인코딩을 레이블 인코딩으로 바꾸는 법은 넘파이 함수인 argmax를 사용하면된다

파라미터로 axis=1 을 넣으면 레이블 인코딩 된 값으로 변환 시켜준다