범주형 데이터
집단 간 분석에 용이 e.g.
국가별
평균 임금,
성별
에 따른 구매품목 통계 비교
집단 별로
대푯값
추출 가능
명목형/순서형으로 구분
명목형 데이터: 순서 상관 없이 항목으로 구분 e.g. 성별, 국가, 과일 종류
순서형 데이터: 우위 등의 순서가 존재 e.g. 리커트 척도, 영화 별점표
대푯값이란?
데이터 집단의 비교를 위해 추출하는 대표 값
평균, 총합, 최빈값
기댓값(가중평균): 각 값이 나올 확률 또는 중요도에 대해 계산해 구한 값
중앙값: 정렬된 데이터의 가운데 값. 홀수개면 중간, 짝수개면 n/2, n/2-1의 평균으로 계산
사분위값: 중앙값을 포함해 1/4위치의 값 3/4 위치의 값
절사평균: 관측값의 양끝의 일부를 제외한 값에 대한 평균
예시) 임직원의 연봉 평균은 2억이다. 근데 사장의 연봉은 100억임 -> 중앙값 or 사분위값
예시) 조원 평가 하는데 사이 나쁜 조원이 0점, 친한 조원이 100점 줌 -> 절사평균
명목형 데이터
일반적으로 값이 텍스트로 구분됨 e.g. 국가 / 혈액형 / MBTI / 과일 / 성별 등
텍스트 상태로 분석할 때는
groupby
로 그룹으로 묶어서 사용
모델에 넣기 위해선 수치형 데이터로 변환해야 함.
Label(ordinal) Encoding: 1대 1 매핑
e.g. [한국, 미국, 일본, 싱가포르] -> [0, 1, 2, 3]
주의점 1) 없는 label에 대해서도 미리 전처리 필요
encoded_missing_value=-1
주의점 2) 자체적 순서 존재; 편향 발생으로 모델에 악영향
One-hot Encoding: 범주의 수만큼 컬럼을 만듦
e.g. 한국 = [1,0,0,0], 미국 = [0,1,0,0], 일본 = [0,0,1,0]
장점) 다수 범주에 동시 포함될 때 효과적임 e.g. 한국+일본 다중국적
주의점) 데이터 수에 비례해 컬럼(차원) 증가; 모델의 학습 속도. 퀄리티에 악영향
많이 등장하는 값들로 범주를 줄임으로써 해결 가능
Binary Encoding: Labeling -> Binary -> Column
e.g. 0, 1, 2, 3 -> 000, 001, 010, 111 -> [0, 0, 0], [0, 0, 1]
장점) 순서 정보 제거, 많은 수의 범주에 효과적
단점) 범주의 의미가 거의 사라짐
Embedding: 자연에 처리에 있어 적절한 임베딩 모델 사용
Hashing: 랜덤 해시 값으로 순서 정보 제거 (비추천)
특정 값에 따른 인코딩: e.g. 여자 30명, 남자 70명일 때, [여자, 남자] -> [30, 70]
순서형 데이터
명목형 데이터 + 순서 정보
명목형 데이터의 인코딩 방법 모두 사용 가능
순환형 데이터: 순서는 있지만 해당 값이 순환되는 경우 e.g. 월, 요일, 각도
삼각함수 등 값의 크기에 따라 순환되는 값 사용 가능 e.g. sin(2\*pi\*i/n), cos(2\*pi\*i/n)
수치형 데이터
이산형 / 연속형으로 구분
정규화(Normalization), 표준화(Standardization)로 전처리 가능
정규화
: 데이터의 범위를 [0, 1] or [-1, 1] 등의 특정 범위로 변환
알고리즘의 정확도, 수렴 속도에 영향
최솟값을 0, 최댓값을 1로 치환한다면
모든 값에 최솟값을 빼준 후 (min-min, max-min) = (0, max-min)
각 값에 (최댓값-최솟값)을 나눠줌 (0/(max-min), (max-min)/(max-min)) = (0, 1)
표준화
: 평균을 0, 표준편차를 1로 변환
각 값에서 평균을 빼준 뒤, (평균을 0으로 만듦)
각 값을 표준편차로 나눠줌 (표준편차를 1로 만듦)