인코딩: One-hot
ㅁ 인코딩
ㅇ 정의:
데이터 분석 및 머신러닝 모델링 과정에서 범주형 데이터를 수치형 데이터로 변환하는 과정.
ㅇ 특징:
– 범주형 데이터를 처리하기 위한 필수적 단계.
– 데이터의 스케일에 영향을 주지 않도록 설계 가능.
– 다양한 방식(One-hot, Label Encoding 등)이 존재함.
ㅇ 적합한 경우:
– 범주형 데이터가 모델 입력값으로 사용될 때.
– 데이터의 값이 순서와 무관한 경우.
ㅇ 시험 함정:
– 인코딩 선택 시 데이터의 특성과 모델 특성을 고려하지 않으면 성능 저하 가능.
– One-hot 인코딩 사용 시 고차원 데이터 문제를 간과하는 경우.
ㅇ 시험 대비 “패턴 보기” 예시:
– O: 범주형 데이터는 모델 입력값으로 사용하기 위해 수치형으로 변환해야 한다.
– X: 모든 범주형 데이터는 One-hot 인코딩만 사용해야 한다.
================================
1. One-hot
ㅇ 정의:
범주형 데이터를 이진 벡터로 변환하여 각 범주를 고유한 열로 표현하는 인코딩 방식.
ㅇ 특징:
– 각 범주는 0과 1로만 표현됨.
– 입력 데이터의 차원이 증가할 수 있음.
– 범주 간 순위 관계가 없음을 보장.
ㅇ 적합한 경우:
– 범주형 데이터의 값이 순서와 무관하며, 값 간의 관계를 표현할 필요가 없는 경우.
– 범주 개수가 적고 데이터가 희소하지 않은 경우.
ㅇ 시험 함정:
– 범주 수가 많을 경우 차원의 저주 문제 발생 가능.
– 희소 행렬을 처리할 수 없는 모델에 바로 적용하는 경우.
ㅇ 시험 대비 “패턴 보기” 예시:
– O: One-hot 인코딩은 범주형 데이터를 이진 벡터로 변환한다.
– X: One-hot 인코딩은 범주형 데이터 간의 순위를 유지한다.
ㅁ 추가 학습 내용
One-hot 인코딩의 대안으로 사용되는 몇 가지 인코딩 방식을 간단히 정의하고 특징을 정리하면 다음과 같습니다:
1. **Label Encoding**
– 정의: 각 범주형 데이터를 고유한 정수로 변환하는 방식.
– 특징: 간단하고 메모리를 적게 사용하지만, 정수 값이 크기나 순서를 나타내는 것으로 오해될 수 있어 선형 모델에서는 부적합할 수 있음.
2. **Ordinal Encoding**
– 정의: 범주형 데이터를 순서가 있는 정수로 변환하는 방식.
– 특징: 범주의 순서가 의미가 있을 경우 적합하지만, 순서가 없는 데이터에 적용하면 잘못된 관계를 학습할 위험이 있음.
3. **Target Encoding**
– 정의: 범주형 데이터를 해당 범주의 평균 타깃 값으로 변환하는 방식.
– 특징: 타깃 값과의 관계를 반영할 수 있어 유용하지만, 과적합의 위험이 있으므로 교차 검증과 같은 추가적인 기법이 필요함.
One-hot 인코딩의 고차원 문제를 해결하기 위해 차원 축소 기법을 활용하는 방법은 다음과 같습니다:
1. **PCA (Principal Component Analysis)**
– 정의: 고차원 데이터를 저차원으로 변환하는 선형 차원 축소 기법.
– 특징: 데이터의 분산을 최대한 유지하면서 주요 성분을 선택해 차원을 줄임. One-hot 인코딩으로 생성된 고차원 데이터를 효과적으로 축소할 수 있음.
2. **Autoencoder**
– 정의: 인공신경망을 사용해 데이터를 압축하고 다시 복원하는 비선형 차원 축소 기법.
– 특징: 데이터의 복잡한 구조를 학습하여 차원을 축소하며, 비선형 관계를 반영할 수 있어 PCA보다 유연함. 특히, One-hot 인코딩된 데이터와 같은 희소 데이터에도 적합.
이와 같은 내용을 학습 노트에 포함하면 시험 대비에 매우 유용할 것입니다.