Feature cardinality는 어떤 feature가 가질 수 있는 서로 다른 값의 개수를 뜻합니다.
성별처럼 가능한 값이 적은 feature는 낮은 cardinality를 갖고, 고객 ID나 상품 SKU처럼 값 종류가 매우 많은 feature는 높은 cardinality를 갖습니다.
핵심 정리
Cardinality는 범주형 feature를 인코딩하거나 모델에 넣을 때 중요한 판단 기준입니다. 값 종류가 적으면 one-hot encoding이 단순하게 동작하지만, 값 종류가 너무 많으면 컬럼 수가 폭발하거나 희소한 feature가 됩니다. 수치형 feature도 그대로 보면 값 종류가 많을 수 있으므로, 구간화나 반올림처럼 양자화한 뒤 고유값 수를 보는 경우가 있습니다.
- Cardinality는 feature가 가질 수 있는 고유값의 개수입니다.
- 성별처럼 값 종류가 적으면 낮은 cardinality feature입니다.
- 고객 ID나 상품 SKU처럼 값 종류가 많으면 높은 cardinality feature입니다.
- 높은 cardinality 범주형 변수는 one-hot encoding 시 차원이 커질 수 있습니다.
- 수치형 변수는 구간화나 반올림 기준에 따라 cardinality가 달라질 수 있습니다.
- SQL에서는 COUNT DISTINCT로 실제 고유값 수를 확인할 수 있습니다.
Cardinality는 단순히 값이 몇 종류인지 세는 개념이지만, 모델링에서는 성능과 메모리에 직접 영향을 줍니다. 값 종류가 너무 많다면 인코딩 방식, 구간화, rare category 처리까지 함께 고민해야 합니다.
이어서 볼 글
- Dense Feature vs Sparse Feature: 원핫 인코딩, 임베딩, XGBoost - 고카디널리티 범주형 변수가 sparse feature와 embedding 문제로 이어진다.
- Binning 개념과 데이터 구간화: Label Encoding, One-Hot Encoding - 수치형 값을 구간화하면 cardinality와 encoding 선택이 함께 바뀐다.
feature가 가질 수 있는 값의 종류.
예를 들어 성별은 남자/여자 둘중의 하나이므로 카디널리티가 2이다.
카테고리의 경우 가구/가전/의류 등 세가지 범주를 갖는다면 카디널리티가 3이다.
방의 개수는 대략 1에서 10사이이므로, 이 경우 카디널리티가 10이다.
고객ID/제품SKU등의 경우 매우 높은 카디널리티를 갖는다.
위내용까지는 이해가 쉬운데, 연속형 수치를 갖는 feature의 카디널리티는 판단하기 까다로울 수 있다.
예를 들어 일별수익률, 집의 면적, 제품의 가격등이다.
수치형 데이터의 카디널리티 판단:
- 소수점 2자리에서 끊던지 하는 방법으로 어느정도 양자화하고
- SQL쿼리에서 COUNT(DISTINCT colume)으로 카니널리티 측정
예를 들어 온도보다는 인구수가 카니널리티가 높을것이다.
'AI, ML > ML' 카테고리의 다른 글
| TfidfVectorizer 사용법: 문자열을 TF-IDF 벡터로 변환 (0) | 2024.03.12 |
|---|---|
| CountVectorizer 사용법: 문자열을 Document-Term Matrix로 변환 (0) | 2024.03.12 |
| Dense Feature vs Sparse Feature: 원핫 인코딩, 임베딩, XGBoost (0) | 2024.01.07 |
| Binning 개념과 데이터 구간화: Label Encoding, One-Hot Encoding (0) | 2023.12.28 |
| Decision Tree, Random Forest, XGBoost 실습: Wine 데이터 교차검증 (0) | 2023.10.16 |
