hyunzzzzzz
자신의 속도로 꾸준히
hyunzzzzzz
전체 방문자
오늘
어제
  • 분류 전체보기 (18)
    • 개발 (3)
      • Linux (1)
      • Python (1)
      • Git, Gitlab (0)
      • gRPC (1)
      • DVC (0)
      • Docker (0)
    • 딥러닝 (0)
    • 원티드 프리온보딩 AI•ML (NLP) (6)
    • 학습 기록 (9)
      • 선형 대수 & 통계 (0)
      • 논문 리뷰 (1)
      • 데이터 엔지니어링 (3)
      • 딥러닝 (1)
      • 데이터 처리 (1)
      • 태블로 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 막대 차트
  • 객체 인식
  • pre trained
  • 기준모델
  • API
  • 비선형 활성화 함수
  • 프로젝트 목표
  • 머신러닝
  • 데이터 증강
  • weight decay
  • 분산/편향
  • 태블로 기본
  • 딥러닝
  • 프로젝트
  • http
  • dl
  • 과/소적합
  • 은닉층
  • 프로젝트 기획
  • NLP

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
hyunzzzzzz
학습 기록

[TIL] Cardinality / Encoding / Multicollinearity

학습 기록

[TIL] Cardinality / Encoding / Multicollinearity

2021. 6. 15. 22:30

cardinality와 다중공선성의 관계에 대해 착각을 하고 있었다. 

오늘 아주 대략적으로만 이해가 되었지만, 미래의 나를 위해 자세하진 않더라도 생각의 흐름을 간략하게 적어둔다.


Cardinality

: 전체 행에 대한 특정 컬럼의 중복 수치를 나타내는 지표이다.

하나의 feature 안에 있는 범주형 값들 간 중복도가 낮으면 > cardinality가 높다.

반대로, 하나의 feature 안에 있는 범주형 값들 간 중복도가 높으면 > cardinality가 낮다.


Ex) column 'A' 은 0과 1로 이루어진 범주형 데이터이다.

컬럼 'A' 내 0과 1의 비율이 50대 50이다   >   high cardinality 

0이 80%, 1은 20% 의 비율을 차지한다   >   "상대적으로"  low cardinality

0이 100%, 1은 0% 비율을 차지한다   >   cardinality 매우 낮다


Encoding (범주형 데이터)

컬럼 내 값의 범주가 다양할 때, 문자로 되어있는 범주형 데이터는 내부적으로 처리가 불가능하다.

그래서!

encoding (ex. one hot encoding)을 통해 컬럼 내 범주형 데이터( 그 중에서도 순서가 중요하지 않은 명목형(nominal) 데이터)를 숫자형으로 변환해주는 과정을 거쳐야한다. 


Ex) column "city" 의 데이터는 서울, 부산, 경기라는 범주로 나눠져 있다.

해당 컬럼을 원핫인코딩 하면, city_서울/ city_부산/ city_경기 로 쪼개지게 되고, 그 내부 값에는 1과 0이 할당된다.

onehotencoding 전

city
서울
부산
경기

onehotencoding 후

city_서울 city_부산  city_경기
1 0 0
0 1 0
0 0 1

 

다중공선성(Multicollinearity) 문제

그런데!  high cardinality인 컬럼을 encoding했을 때, 다중공선성 문제가 발생한다. 


- 다중공선성이란?

회귀분석에서 독립변수들(X, column, feature) 간에 강한 상관관계가 나타나서, 예측해야할 값인 종속변수(y, target)을 구하는데 영향을 미치는 문제를 이야기한다. 


high cardinality인 컬럼을 encoding해서 범주 마다 쪼개져나온 컬럼들은 한 컬럼이 1일 때, 나머지 컬럼이 0이라는 관계성이 생겨버리기 때문에 다중공선성 문제가 발생하게 된다.

이 때, 문제를 해결하기 위해서 encoding으로 만들어진 컬럼 중 하나를 제거하는 등의 조치를 취한다. (원래 있던 컬럼 값의 범주 중 어떤 것이 사라졌는지 알지만, 컴퓨터는 알지 못하도록!)

+ 다중공선성은 '회귀문제'에서만 고려하면 된다! ('결정트리'에서는 feature의 다중공선성은 문제가 되지 않는다.)


참조

cardinality 관련 : https://itholic.github.io/database-cardinality/

 

 

저작자표시 비영리 변경금지 (새창열림)

'학습 기록' 카테고리의 다른 글

[colab] google colab에서 자주 쓰는 method  (0) 2021.06.15
  • Cardinality
  • Encoding (범주형 데이터)
  • 다중공선성(Multicollinearity) 문제
  • 참조
'학습 기록' 카테고리의 다른 글
  • [colab] google colab에서 자주 쓰는 method
hyunzzzzzz
hyunzzzzzz
천천히 자신의 속도에 맞춰 가되, 후퇴하거나 멈추지 않고 꾸준히 나아가는 신입 AI 엔지니어의 기록 공간입니다. 즐겁게 일하며 원하는 서비스를 만드는데 기여하는 것, 그래서 서비스와 제가 함께 과정에서 성장하는 것을 목표합니다. 이를 위해 매일매일 상승과 하강 곡선을 그리는 마음을 다독이고 행복하게 일하기 위한 마인드셋을 세우려 노력합니다.

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.