티스토리 뷰
source: www.kaggle.com/alexisbcook/categorical-variables
카테고리 변수의 예시는 다음과 같다. 어떤 색깔을 좋아하는가? "빨강", "파랑", "초록"... 얼마나 자주 외식을 하는가? "매일", "가끔", "반반"...
데이터가 카테고리 일 때, 전처리 없이 ML 라이브러리로 사용하려고 하면 대부분의 경우 오류가 난다. 왜냐하면 ML 라이브러리 대부분은 variable이 숫자numeric라고 가정하기 때문이다.
3가지 방법
1. 카테고리로 되는 column들을 삭제한다
2. Label Encoding, 각각의 카테고리를 integer로 변환한다. 예를 들어, "빨강":0, "파랑":1, "초록":2...
3. One-Hot Encoding; 각각의 카테고리를 column으로 만든다.
One-Hot Encoding이 Label Encoding과 다른 점은, 카테고리를 숫자로 바꾸는 과정에 순서order가 강조되지 않는다는 점이다. 만약 빨강을 0으로 노랑을 1로 바꾸는 Label Encoding 이라면 값을 다루면서 마치 빨강이 노랑보다 덜 중요하다는 뜻으로 해석 될 여지가 있다. 그러나 색깔에는 우위가 없다.
하지만 One-Hot Encoding이라면 카테고리 사이에 우위가 생기지 않는다. One-Hot Encoding의 변수는 명목상nominal의 변수이다. 한편, 카테고리의 종류가 15개 이상이라면, One-Hot Encoding을 잘 사용하지 않는다. 너무 많은 column이 추가 되어야 하기 때문이다
'머신러닝' 카테고리의 다른 글
Random Forest (0) | 2021.12.29 |
---|---|
Skewed Class (0) | 2021.02.15 |
Batch gradient descent and Stochastic gradient descent (0) | 2021.01.10 |
Global minima and Local minima (0) | 2021.01.10 |
MSE, cost function (0) | 2021.01.10 |