wooing

정수 인코딩, 원-핫 인코딩(Integer Encoding, One-hot Encoding) 본문

인공지능/머신러닝

정수 인코딩, 원-핫 인코딩(Integer Encoding, One-hot Encoding)

우잉_ 2023. 1. 19. 19:54

인코딩이란?

인코딩이란 정보의 형태나 형식을 변환하는 처리나 처리 방식이다.


정수 인코딩

인코딩의 방식으로 데이터를 정수로 표현하는 방법이 있다.

{red, green, blue} => {0, 1, 2}

그러나 일반적인 다중 클래스 분류 문제에서는 정수 인코딩 방식이 올바르지 않을 수 있다. 그 이유로는 선형회귀에서 사용된 MSE(평균제곱오차)를 예로 들어보자

 

실제 값이 red일때 예측값이 green이었다면 제곱 오차는 (0 - 1)^2이 된다.

실제 값이 red일때 예측값이 blue이었다면 제곱 오차는 (0 - 2)^2이 된다. 

 

즉, red - green사이의 오차보다 red-blue사이의 오차가 더 크므로 green이 blue보다 red에 더 가깝다는 정보를 주는 것과 다름이 없다.


원-핫 인코딩

원-핫 인코딩은 선택해야하는 선택지의 개수만큼 차원을 가지면서, 각 선택지의 인덱스에 해당하는 원소에는 1, 나머지는 0의 값을 가지도록 하는 방법이다.

 

예시:

강아지 = [1, 0, 0]

고양이 = [0, 1, 0]

냉장고 = [0, 0, 1]

 

선택지 갯수만큼 크기의 벡터로 표현하며 이를 원-핫 벡터라고 한다.


 

 

정수 인코딩은 각 클래스의 순서 정보가 도움이 되는 분류 문제에 사용하기 적합하고

원-핫 인코딩은 각 클래스의 순서 정보가 의미가 없을때 사용하기 적합하다.

 

 

 

 

References:

https://ko.wikipedia.org/wiki/%EC%9D%B8%EC%BD%94%EB%94%A9

https://wikidocs.net/59678