개발로그필름
[ML] 원 핫 인코딩 (One-Hot Encoding) 본문
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