반응형

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 처리까지 함께 고민해야 합니다.

이어서 볼 글

 

feature가 가질 수 있는 값의 종류.

 

예를 들어 성별은 남자/여자 둘중의 하나이므로 카디널리티가 2이다.

카테고리의 경우 가구/가전/의류 등 세가지 범주를 갖는다면 카디널리티가 3이다.

방의 개수는 대략 1에서 10사이이므로, 이 경우 카디널리티가 10이다.

고객ID/제품SKU등의 경우 매우 높은 카디널리티를 갖는다.

 

위내용까지는 이해가 쉬운데, 연속형 수치를 갖는 feature의 카디널리티는 판단하기 까다로울 수 있다.

예를 들어 일별수익률, 집의 면적, 제품의 가격등이다.

 

수치형 데이터의 카디널리티 판단:

  • 소수점 2자리에서 끊던지 하는 방법으로 어느정도 양자화하고
  • SQL쿼리에서 COUNT(DISTINCT colume)으로 카니널리티 측정

예를 들어 온도보다는 인구수가 카니널리티가 높을것이다.

 

 

반응형

+ Recent posts