범주형 데이터를 머신러닝 모델이 이해할 수 있는 숫자 형태로 바꾸는 방법 중 하나입니다.

핵심 아이디어

각 범주(category)를 고유한 위치에 1을 두고 나머지는 0으로 채우는 벡터로 변환하는 것입니다. 이렇게 하면 모델은 범주 간의 순서나 크기 관계 없이 데이터를 처리할 수 있습니다.

예시

색상 데이터: [빨강, 초록, 파랑]을 1-hot 인코딩하면:

색상 빨강 초록 파랑
빨강 1 0 0
초록 0 1 0
파랑 0 0 1
  • 벡터 길이 = 범주의 개수
  • 한 벡터에 1은 하나만 존재, 나머지는 0

장점

  • 범주 간 순서 정보가 없음을 명시할 수 있음
  • 신경망이나 다른 ML 모델에서 바로 사용 가능

단점

  • 범주가 많으면 벡터 차원이 커짐 → 메모리 낭비
  • 고차원 희소 벡터(sparse vector)가 됨

Tip: 범주가 매우 많을 때는 임베딩(Embedding)을 사용해 차원을 줄이는 것이 일반적입니다.


Multi-Hot Encoding (멀티-핫 인코딩)

K-Hot 인코딩이라고도 부릅니다.

1-Hot Encoding과 데이터를 0과 1로 표현하는 점은 같지만, “동시에 몇 개의 항목을 선택할 수 있는가?”에 결정적인 차이가 있습니다.

1-Hot vs Multi-Hot 비교

1-Hot Encoding

  • 개념: 전체 벡터 중 단 하나의 값만 1(Hot)이고, 나머지는 모두 0(Cold)
  • 의미: “여러 선택지 중 오직 하나만 해당됨” (상호 배타적)
  • 예시 (과일 - 상자에 과일이 하나만 들어있을 때):
    • 사과: [1, 0, 0]
    • 배: [0, 1, 0]
    • 포도: [0, 0, 1]
  • 사용처: 다중 클래스 분류 (Multi-class Classification)
    • 예: 이 사진은 고양이인가, 강아지인가? (둘 다일 수는 없음)

Multi-Hot Encoding

  • 개념: 전체 벡터 중 여러 개의 값이 동시에 1(Hot)이 될 수 있음
  • 의미: “여러 선택지가 동시에 해당될 수 있음” (상호 배타적이지 않음)
  • 예시 (영화 장르 - 한 영화가 여러 장르에 속할 때):
    • 액션 & 코미디: [1, 1, 0]
    • 코미디 & 드라마: [0, 1, 1]
    • 액션만: [1, 0, 0]
  • 사용처: 다중 레이블 분류 (Multi-label Classification)
    • 예: 이 영화의 장르는 무엇인가? (액션이면서 동시에 SF일 수 있음)

한눈에 보는 비교

특징 1-Hot Encoding Multi-Hot Encoding
활성화된 비트 수 항상 1개 0개, 1개, 또는 그 이상 (N개)
선택의 성격 택 1 (Single Selection) 다중 선택 (Multiple Selection)
벡터의 합 항상 1 0 ~ N (카테고리 개수)
주요 활용 Softmax 출력층 (확률의 합=1) Sigmoid 출력층 (각각의 독립적 확률)
데이터 예시 혈액형 (A, B, O, AB 중 하나) 보유 자격증 (운전면허, 정보처리기사 등 다수 보유 가능)

요약

  • 1-Hot: 정답이 하나일 때 사용 (예: 오늘 요일은?)
  • Multi-Hot: 정답이 여러 개일 수 있을 때 사용 (예: 오늘 먹은 음식들은?)

참고 자료

  • StatQuest: One-Hot, Label Encoding 등 다양한 인코딩 기법 설명