Search

데이터 인코딩

데이터 인코딩

코드화, 암호화
어떤 정보를 정해진 규칙에 따라 변환하는 것

데이터 인코딩의 필요성

범주형(Factor), 문자형 데이터는 모델 학습 시 사용이 불가하기에 이를 숫자로 변경하여 처리

Factor 타입의 각 아이템을 숫자로 나타내는 방법

예시 : 영화데이터의 ‘Screening_rat’ 컬럼
{12세 관람가, 15세 관람가, 전체 관람가, 청소년 관람불가}
각각의 factor에 숫자를 순차적으로 매칭
데이터 분석 과정에서 큰 숫자로 매칭된 값이 중요한 값?!
숫자 간의 차이가 클수록 다름의 정도가 크다?!
Factor 타입의 각 아이템을 숫자로 나타내는 방법
크기가 동일하게 벡터로 변환
factor 수만큼 차원을 만들고, 해당하는 차원에만 1을 설정(원핫 인코딩)

레이블 인코딩(Label Encoding)

문자형으로 지정된 카테고리를 숫자로 변환
예 : [12세 관람가, 15세 관람가, 전체 관람가, 청소년 관람불가] ⇒ [0, 1, 2, 3]
레이블 인코딩을 사용할 경우, 숫자 값의 크고 작음에 대한 특성에 따라 예측 성능이 떨어지는 경우 발생
1보다 2가 더 큰 값이므로 머신러닝 알고리즘에서 가중치가 더 크게 부여
트리 계열의 알고리즘은 레이블 인코딩도 문제없음

원-핫 인코딩(One-Hot Encoding)

데이터의 차원만큼 0과 1로 구성된 벡터로 변환
문자형 데이터는 모델 학습 시 사용이 불가하기에 이를 숫자로 변경하여 처리

get_dummies()

명목형 데이터를 더미 코딩 하기 위해서는 get_dummies() 메소드를 사용
frame = pd.DataFrame({'key': ['b', 'b', 'a', 'c', 'a', 'b'], 'data1': range(6)}) display(frame) display(pd.get_dummies(frame.key))
Python
복사

Binarization(이진화)

범주형 속성을 이진 변수로 매핑하는 전처리 방법
일부 머신러닝 알고리즘(예 : 신경망, SVM 등)은 범주형 데이터를 이진 형식으로 변환하여 입력해야 함
예시 : 성별(Gender)
예시: 날씨 데이터