개발로그필름

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

ML

[ML] 원 핫 인코딩 (One-Hot Encoding)

yuullog 2025. 5. 22. 13:15
728x90
반응형
SMALL

범주형 데이터를 컴퓨터가 이해할 수 있는 숫자 형태로 변환하는 가장 기본적인 인코딩 방법

 

반응형

 

 

 

 

개념

예를 들어, 어떤 데이터에 다음과 같은 색상이라는 범주형 컬럼이 있다고 해보자

색상
빨강
파랑
초록

 

이걸 원핫인코딩하면 아래처럼 각각의 범주(고유값)를 0과 1로만 이루어진 벡터로 변환한다

빨강 파랑 초록
1 0 0
0 1 0
0 0 1
  • 즉, 각 행은 해당 값에 해당하는 컬럼만 1이고, 나머지는 0
  • 이처럼 컴퓨터는 숫자를 잘 처리하니까, 범주형 데이터를 수치형으로 바꾸는 방법이 원핫인코딩

 

 

 

언제 쓰지?

  • 머신러닝/딥러닝 모델에서 문자 데이터를 처리해야 할 때
  • 특히 선형 회귀, 로지스틱 회귀, 트리 기반 모델 등 대부분의 모델에서 문자 그대로 입력하면 안 되기 때문에 숫자화 필요

 

 

import pandas as pd

df = pd.DataFrame({'색상': ['빨강', '파랑', '초록', '빨강']})

# 원핫인코딩
encoded = pd.get_dummies(df, columns=['색상'])
print(encoded)

 

결과

   색상_빨강  색상_파랑  색상_초록
0      1      0      0
1      0      1      0
2      0      0      1
3      1      0      0

 

 

장점과 단점

장점 단점
문자 데이터를 숫자로 바꿔 모델에 활용 가능 범주의 수가 너무 많을 경우 차원이 너무 커짐(고차원 문제)

 

 

반응형
LIST

'ML' 카테고리의 다른 글

[ML] 앙상블이란?  (0) 2025.05.25
[ML] 결정트리회귀란?  (0) 2025.05.24
[ML] 결정나무의 주요 특징  (0) 2025.05.24
[ML] 과소적합 vs 과대적합  (0) 2025.05.23
[ML] 결정나무란?  (0) 2025.05.21
Comments