플로라도의 data workout

데이터의 Cardinality란 무엇인가? 본문

기초 노트/MachineLearning

데이터의 Cardinality란 무엇인가?

플로라도 2024. 3. 7. 03:53

Cardinality

 
Cardinaltiy는 쉽게 말해 각 피처에 속한 유니크한 범주의 갯수를 말한다. 예를 들어 성별이라는 피처의 경우 남,녀 두가지 범주만 존재함으로 Cardinality는 상대적으로 낮다고 말할 수 있다. 그러나 회원번호와 같은 피처는 모두 개별적인 ID를 갖음으로 Cardinality는 상당히 높다고 할 수 있다.
 
 

Cardinality의 중요성

높은 카디널리티를 가진 특성은 모델의 학습에 있어서 노이즈와 오버피팅을 유발 할 수 있어 주의가 필요하다. 
또한 데이터의 전처리 부분이 중요해진다.
 
 
범주형 변수에 대해서 원하는 ouput이 수치형 변수일때 high Cardinality에 대해 다음과 같은 전략을 취할 수 있다.
 
-  타겟 인코딩 (Target Encoding)
각 범주의 레이블(target)값의 평균값으로 인코딩 하는 방법이다. 이 방법은 타겟 데이터와의 관계를 기반으로 정보를 압축하는 방법이다. 그러나 이방법은 Data Leakage에 유의해야 한다. 인코딩한 특성값이 이미 예측하려는 타겟의 정보를 포함하기 때문이다. 이는 Target Leakage에 해당한다. 또한 교차 검증시, 검증 fold의 데이터의 정보가 훈련데이터에 포함되어 있을 수 있다. 이는 train-test contamination의 data leakage에 해당한다.
 
이러한 경우를 방지하기 위하여, 타겟 인코딩값에 라벨 스무딩을 적용하거나, 폴드별로 데이터를 나눈 뒤 타겟 인코딩을 적용하는 방법을 수행해야 한다.
 
-  빈도 기반 인코딩(Frequency Encoding)
각 범주가 데이터셋에서 나타나는 빈도나 비율에 따라 값을 할당하는 방법이다. 빈도가 높은 범주에 더 높은 가중치를 부여하며, 모델이 범주의 중요도를 학습할 수 있도록 한다.