One-hot 인코딩과 Label 인코딩의 차이

SeongGyun Hong·2025년 2월 18일
0

데이터 분석

목록 보기
10/11

데이터 분석과 머신러닝에서 범주형 데이터(Categorical Data)를 수치형 데이터로 변환하는 것은 필수적인 과정이다.

왜냐하면 많은 머신러닝 알고리즘이 수치형 데이터만을 처리할 수 있기 때문..!

이 변환 과정을 수행하는 대표적인 방법이 One-hot 인코딩Label 인코딩이라고 할 수 있다.

1. One-hot 인코딩

정의:
One-hot 인코딩은 범주형 변수의 각 고유값을 이진 벡터로 변환하는 방법이다.
각 벡터는 범주 고유값에 해당하는 위치에만 1을, 나머지에는 0을 가진다.

예시:

  • 범주형 데이터: "Red", "Blue", "Green"
  • One-hot 인코딩:
    • "Red": [1, 0, 0]
    • "Blue": [0, 1, 0]
    • "Green": [0, 0, 1]

사용 시점:
One-hot 인코딩은 범주형 변수의 고유값들이 순서나 순위와 무관할 때 사용된다.
특히, gradient 기반 알고리즘(예: 신경망)에서 주로 사용하는데, 이 방법은 모든 범주 간의 거리를 동일하게 취급하고, 순서 간의 관계를 왜곡하지 않는다.

2. Label 인코딩

정의: Label 인코딩은 범주형 변수의 각 고유값을 정수로 변환하는 방법이다.
고유값들은 0부터 N-1까지의 정수로 매핑된다.(N은 유니크한 범주의 수).

예시:

  • 범주형 데이터: "Red", "Blue", "Green"
  • Label 인코딩:
    • "Red": 0
    • "Blue": 1
    • "Green": 2

사용 시점: Label 인코딩은 범주형 데이터가 순서가 있는 경우(예: "Low", "Medium", "High")에 유용하다.
그러나 순서나 순위가 없는 데이터를 Label 인코딩할 경우 문제가 생길 수 있는데, 예를 들어 머신러닝 모델은 "Red"와 "Blue"의 차이를 "Blue"와 "Green"의 차이보다 작다고 해석할 수 있기에 주의해야 한다.

3. 차이점 및 사용에 대한 근거

  • 차이점:

    • One-hot 인코딩은 각 범주를 고유한 이진 벡터로 표현하며, 범주 간의 수치적 차이를 두지 않는다.
    • Label 인코딩은 단순히 고유 범주에 숫자를 할당하는 방식으로, 범주 간의 순서나 간격을 암시적으로 내포할 수 있다.
  • 적용 근거:

    • One-hot 인코딩은 비순서형 범주형 변수에 적합하며, 특히 많은 머신러닝 모델(예: Neural Networks)에서 잘 작동한다.
      (하지만 이 방식은 고유값이 많을 경우 메모리 사용량이 커질 수 있음)
    • Label 인코딩은 순서형 변수에 적합하고 메모리 효율적이다. 사용 시에는 모델이 범주의 숫자적 순서를 오해하지 않도록 주의가 필요하다.

4. 실제 사용 예시

  • One-hot 인코딩 예시:
    • 고객 설문조사 데이터의 "Preferred Color" 속성("Red", "Blue", "Green")을 인코딩하여 신경망 모델에서 처리한다.
  • Label 인코딩 예시:
    • 직원의 직급 데이터("Junior", "Mid", "Senior")를 인코딩하여 순위 기반 분석에 활용
profile
헤매는 만큼 자기 땅이다.

0개의 댓글