데이터 인코딩
•
코드화, 암호화
•
어떤 정보를 정해진 규칙에 따라 변환하는 것
데이터 인코딩의 필요성
•
범주형(Factor), 문자형 데이터는 모델 학습 시 사용이 불가하기에 이를 숫자로 변경하여 처리
Factor 타입의 각 아이템을 숫자로 나타내는 방법
예시 : 영화데이터의 ‘Screening_rat’ 컬럼
{12세 관람가, 15세 관람가, 전체 관람가, 청소년 관람불가}
•
데이터 분석 과정에서 큰 숫자로 매칭된 값이 중요한 값?!
•
숫자 간의 차이가 클수록 다름의 정도가 크다?!
•
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)
•
예시: 날씨 데이터