윤제로의 제로베이스

원-핫 인코딩 (One-Hot Encoding) 본문

Background/Pytorch 기초

원-핫 인코딩 (One-Hot Encoding)

윤_제로 2022. 1. 16. 10:46

https://wikidocs.net/59678

 

01. 원-핫 인코딩(One-Hot Encoding)

이번 챕터에서는 범주형 데이터를 처리할 때 레이블을 표현하는 방법인 원-핫 인코딩에 대해서 배워봅시다. ##**1. 원-핫 인코딩(One-hot encoding)이란?** ...

wikidocs.net

1. 원-핫 인코딩(One-Hot Encoding)이란?

  • 원-핫 인코딩은 선택해야 하는 선택지의 개수만큼의 차원을 가지면서, 각 선택지의 인덱스에 해당하는 원소에는 1, 나머지 원소는 0의 값을 가지도록 하는 표현 방법이다.
  • 원-핫 인코딩으로 표현된 벡터를 원-핫 벡터(one-hot vector)라고 한다.

2. 원-핫 벡터의 무작위성

실제값을 원-핫 벡터로 표현해야만 다중 클래스 분류 문제를 풀 수 있는 것은 아니다.

하지만 대부분의 다중 클래스 분류 문제가 각 클래스 간의 관계가 균등하다는 점에서 원-핫 벡터는 이러한 점을 표현하는 적절한 방법이다.

 

다수의 클래스를 분류하는 문제에서는 이진 분류처럼 2개의 숫자 레이블이 아니라 클래스의 개수만큼 숫자 레이블이 필요하다.

예를 들어 분류할 클래스가 3개라면 0,1,2로 레이블링 할 수 잇다.

하지만 이러한 정수로 레이블링 하는 것이 아니라 원-핫 인코딩을 사용하는 것이 클랫의 성질을 잘 표현할 수 있다.

그 이유는 MSE를 사용하여 정수 레이블의 오차를 계산하게 되면 클래스 별로 균등한 오차 값이 나오지 않기 때문이다.

하지만 원-핫 인코딩을 했을 땐 클래스간 오차가 균등하게 나오게 된다.

다시 말하면 모든 클래스에서의 원-핫 벡터들은 모든 유클리드 거리가 동일하게 측정된다. 

이를 원-핫 벡터의 무작위성이라고 표현한다.