명목형 범주
명목형 범
개요명목형 범주(inal Category)는 통계학 및 데이터과학에서 범주형 자료(Categorical Data)의 한 유형으로, 서로 구분 가능한 범주를지만 **서로 간 순서나 크기 관계가 없는 데이터를 의미합니다. 명목형주는 단순히 이름(Name) 또는 레이블)에 기반한 분류 제공하며, 수치적인 해이나 대소 비교가가능합니다.
데이터 전처리 과정에서 명목형 범주는 머신러닝 모델이 텍스트 기반의 범주를 이해할 수 있도록 인코딩(Encoding) 처리가 필요합니다. 대표적인 인코딩 방법으로는 원-핫 인코딩(One-Hot Encoding), 레이블 인코딩(Label Encoding), 타깃 인코딩(Target Encoding) 등이 있습니다.
명목형 범주의 특성
명목형 범주는 다음과 같은 핵심 특성을 가집니다:
-
비순서성(Non-ordinal): 범주 간에 순서가 존재하지 않음
예: 성별(남성, 여성), 혈액형(A형, B형, AB형, O형), 국적(한국, 미국, 일본 등) -
동등한 거리: 범주 간의 '차이'는 의미 없음
예: '서울'과 '부산'의 거리가 '서울'과 '대구'보다 작다고 해서 의미 있는 순서를 부여할 수 없음 -
분류 목적에 적합: 주로 분류 모델(Classification Model)의 입력 또는 타깃 변수로 사용됨
-
수치적 해석 불가: 숫자로 변환하더라도 그 값은 단지 식별자일 뿐, 계산이나 비교에 사용될 수 없음
예: 남성=0, 여성=1 → 1 > 0 이지만, 여성 > 남성이라는 의미는 아님
명목형 범주와 순서형 범주의 차이
구분 | 명목형 범주 (Nominal) | 순서형 범주 (Ordinal) |
---|---|---|
순서 존재 여부 | 없음 | 있음 |
예시 | 색상(빨강, 파랑, 초록), 직업(의사, 교사, 엔지니어) | 학력(고졸, 대졸, 석사졸), 만족도(낮음, 보통, 높음) |
인코딩 방식 | 원-핫 인코딩 권장 | 레이블 인코딩 가능 |
수치적 해석 | 불가능 | 부분적으로 가능 (순서 기준) |
🔍 예시 설명:
- 명목형: "자료형"이 '문자열', '정수형', '부동소수점'일 경우, 이들은 서로 다른 이름일 뿐 순서가 없음
- 순서형: "경력 단계"가 '주니어', '미들', '시니어'일 경우, 명확한 순서 존재
명목형 범주의 인코딩 방법
머신러닝 모델은 일반적으로 숫자 형태의 입력만 처리할 수 있으므로, 명목형 범주는 반드시 인코딩 과정을 거쳐야 합니다. 주요 인코딩 방법은 다음과 같습니다.
1. 원-핫 인코딩 (One-Hot Encoding)
각 범주를 독립된 이진 변수(0 또는 1)로 변환합니다. 범주의 수만큼 새로운 열이 생성됩니다.
import pandas as pd
data = pd.DataFrame({'color': ['red', 'blue', 'green', 'red']})
encoded = pd.get_dummies(data, columns=['color'])
결과: | color_blue | color_green | color_red | |------------|-------------|-----------| | 1 | 0 | 0 | | 0 | 0 | 1 | | 0 | 1 | 0 | | 0 | 0 | 1 |
- ✅ 장점: 범주 간 인위적인 순서를 만들지 않음
- ❌ 단점: 범주 수가 많을 경우 차원 증가 (차원의 저주)
💡 참고: 고차원 데이터에서는 임베딩(Embedding) 또는 해시 인코딩(Hashing Trick)을 활용하기도 함.
2. 레이블 인코딩 (Label Encoding)
각 범주에 고유한 정수 값을 부여합니다.
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
data['color_encoded'] = le.fit_transform(data['color'])
결과: | color | color_encoded | |---------|---------------| | red | 2 | | blue | 0 | | green | 1 | | red | 2 |
- ⚠️ 주의: 명목형 범주에 사용 시 모델이 인위적인 순서(0 < 1 < 2)를 인식할 수 있음 → 잘못된 학습 유도 가능성
🔧 사용 권장 상황: 트리 기반 모델(예: Random Forest, XGBoost)은 레이블 인코딩에 덜 민감할 수 있음
3. 타깃 인코딩 (Target Encoding)
범주별로 타깃 변수의 평균(또는 기타 통계량)을 사용하여 인코딩합니다. 주로 회귀 또는 분류 태스크에서 유용합니다.
예: 이탈 예측 모델에서 지역별 평균 이탈률로 인코딩
- ✅ 장점: 범주와 타깃 간의 관계를 반영
- ❌ 단점: 데이터 누수(Leakage) 및 과적합 위험 → 교차 검증 기반 평균 사용 권장
실무 팁
- 범주 수가 적을 때(예: 3~10개): 원-핫 인코딩 권장
- 범주 수가 많을 때(예: >100): 임베딩, 해시 인코딩, 타깃 인코딩 고려
- 고유값이 너무 많을 경우(예: 사용자 ID): 일반적으로 드롭하거나 군집화 후 인코딩
- 결측치 처리:
NaN
도 하나의 범주로 처리하거나 별도 인코딩 필요
관련 개념
- 범주형 변수(Categorical Variable): 명목형과 순서형을 포함한 상위 개념
- 더미 변수(Dummy Variable): 원-핫 인코딩 결과로 생성된 이진 변수
- 인코딩(Encoding): 범주형 데이터를 수치형으로 변환하는 과정
- 차원의 저주(Curse of Dimensionality): 원-핫 인코딩 시 발생할 수 있는 문제
참고 자료
- James, G., Witten, D., Hastie, T., & Tibshirani, R. (2013). An Introduction to Statistical Learning. Springer.
- sklearn.preprocessing 문서: https://scikit-learn.org/stable/modules/preprocessing.html
- pandas
get_dummies()
공식 문서: https://pandas.pydata.org/docs/reference/api/pandas.get_dummies.html
📚 추천 학습 경로:
1. 범주형 데이터 이해 → 2. 인코딩 기법 비교 → 3. 실제 데이터셋 적용 → 4. 모델 성능 평가
이 문서는 AI 모델(qwen-3-235b-a22b-instruct-2507)에 의해 생성된 콘텐츠입니다.
주의사항: AI가 생성한 내용은 부정확하거나 편향된 정보를 포함할 수 있습니다. 중요한 결정을 내리기 전에 반드시 신뢰할 수 있는 출처를 통해 정보를 확인하시기 바랍니다.