본문 바로가기

카테고리 없음

파이썬 데이터인코딩(레이블 인코딩, 원-핫 인코딩)

파이썬으로 머신러닝을 하기 전 데이터를 인코딩해주는 것은 중요하다. 사이킷런의 머신러닝 알고리즘은 문자열 값을 입력 값으로 허용하지 않기 때문에 문자형은 숫자형으로 인코딩해야한다.

인코딩 방식에는 레이블 인코딩과 원-핫 인코딩이 있다.

 

레이블인코딩
판매목록 가격
꼬북칩 1500
꼬깔콘 1000
빼빼로 1300
판매목록 가격
0 1500
1 1000
2 1300

레이블인코딩의 단점은 꼬북칩, 꼬깔콘, 빼빼로가 각각 0, 1, 2 가 되었는데 각각 상관성이 없다는 것이다. 그리고 머신러닝 알고리즘에서 0을 작게, 2를 크게 인식하다 보니 중요성이 꼬북칩보다 빼빼로가 더 크게 나올 수 있다. 원-핫인코딩은 레이블 인코딩의 단점을 보완하려고 나왔다.

 

원-핫 인코딩

원-핫 인코딩은 feature 값의 유형에 따라 해당하는 컬럼에 1을 표기하고 나머지 컬럼에 0을 표기하는 방식이다. 한번 밑에 테이블로 표현해보겠다.

판매목록 가격
꼬북칩 1500
꼬깔콘 1000
빼빼로 1300
판매목록_꼬북칩 판매목록_꼬깔콘 판매목록_빼빼로
1 0 0
0 1 0
0 0 1

원-핫 인코딩은 해당하는 위치에 1을 넣어주고 나머지는 0을 넣어준다.