브라이틱스(Brightics)에서 명목형 변수를 가변수(더미변수, dummy variable)로 만들 수 있는 One Hot Encoder
를 알아보자.
Extraction Machine Learning Pre-Processing
※ 본 내용은 Load
함수 블럭에서 diamonds.csv 파일을 불러온 후에 진행한다.
※ diamonds.csv 다운받기 [클릭]
개요
가변수는 여러 명칭이 있다. 지시자, 지시 변수, 인덱스 변수, 더미 변수, dummy variable 등등. 이는 0과 1로 이루어진 이진(binary) 변수인데 예를 들어 특정 변수에 “Y”와 “N”이 있다면 is_Y 라는 변수를 새로 만들며 “Y” 값을 “1”로 바꾸고 “N”을 “0”으로 바꿀 수도 있겠다. 이런 작업을 One Hot Encoding이라고 하며 줄여서 OHE라고 하기도 한다. 그럼 다음의 예시를 참고하도록 하자.
One Hot Encoder
함수 블럭은 가변수 생성을 하나만 하는 것이 아니라 여러개 한 번에 할 때 매우 편리한 블럭이다. 상세 내용은 설정 부분을 참고하자.
설정
One Hot Encoder
블럭의 설정 창은 다음과 같다.
Input Columns 에는 One Hot Encoding 대상 변수를 지정하는데 원 자료의 속성을 잘 확인하여 명목형 데이터를 입력할 수 있도록 한다. 만약 연속형 데이터를 입력하게 된다면 잘못했다간 수 백개 이상의 변수가 새로 생성되는 참사가 벌어질지도 모른다.
Prefix Type 에는 기존 대상이 되는 변수명을 넣을 것인지 새로 변수명을 정할 것인지 선택할 수 있다. 그리고 새로 만들어지는 가변수에 접미사를 어떤 방식으로 붙일 것인지 Suffix Type 에서 설정할 수 있는데 “Index”로 설정하면 0, 1, 2 와 같이 숫자가 접미사로 붙어 어떤 값이 가변수로 변환이 되었는지 파악하기 어렵다. 대신 “Label” 로 선택하면 다음과 같이 변환이 된다.
항목이 3개인 경우 변수가 3개가 생성이 되는 것이 맞으나 위 그림의 오른쪽 결과 처럼 하나를 뺄 수도 있는데 이 설정은 Drop Last 에서 “True”로 설정하면 된다.
추가로 특정 변수의 원소를 기준으로 묶음 연산을 하고자 할 때는 대상이 되는 변수를 아래 Group By 부분에서 [Select] 버튼을 눌러 변수 목록을 불러와 선택해준다. 묶음 연산은 되도록이면 연속형 변수가 아닌 명목형 변수를 기준으로 수행을 권장한다.
결과
항목이 5개 있는 변수 color 를 대상으로 수행한 결과는 다음과 같다.
설정 중에서 Drop Last 의 값을 “True”로 설정하여 변수 개수가 10개에서 14개로 4개 증가하였다.