강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

코드몽키님의 프로필 이미지
코드몽키

작성한 질문수

[개정판] 파이썬 머신러닝 완벽 가이드

수치정보 one-hot encoding 경우 어떻게 하시나요?

해결된 질문

작성

·

426

0

보통 사과, 배, 포도 를 100 010 001 이런식으로 one-hot encoding 하는데 

저가 원하는건 종속변수가 10, 20 ,30 이런식으로 10단위로 끊어지고 최대가 300입니다. 

1. 이런 수치형 정보인경우 one-hot encoding  하시게 되면 위와 같이 1000...0, 0100..., 이런식으로 반복하시는지 

아니면 다른 좋은 방법을 활용하시는지 궁금합니다.

2. one-hot encoding vs label encoding을 보통 선생님께서는 feature수 몇개 기준으로 선택하시는지 궁금합니다

답변 2

0

코드몽키님의 프로필 이미지
코드몽키
질문자

답변 감사합니다 새해 복 많이 받으세요~

0

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까,

1. 만약 ftr_a 피처가 10, 20, 30 으로 10단위씩 30개의 값이 있다면 이 피처에 one-hot encoding을 적용하면 30개의 feature들이 새롭게 만들어지게 되고 이들 feature각각의 값에 따라 개별적으로  0또는 1값을 할당하게 됩니다(즉 적어 주신대로 1000...0, 0100..., 식으로 반복하게 됩니다.

2. one-hot encoding으로 30개 정도의 새로운 feature가 만들어져도 모델 성능이 저하될지 아닐지는 직접 학습/예측 해보기 전에는 알 수가 없습니다만 큰 문제는 없을것으로 예상됩니다.

feature수 몇개 기준으로 one-hot encoding vs label encoding을 정하기는 어려운 것 같습니다. 다만 one-hot encoding으로 너무 많은 신규 feature들(예를 들어 100개 이상)이 생성된다면 one-hot encoding 보다는 label encoding을 선호 할 수도 있겠지만, 이것 역시 직접 학습/예측 결과에 따라 달라 질 수 있습니다. 

즉 one-hot encoding을 해서 많은 신규 피처들이 생성되더라도 머신 러닝 모델이 label encoding보다 높은 성능을 나타낸다면 적용을 해야 합니다. 단 이 경우에 one-hot encoding으로로 데이터의 크기가 커져서 메모리의 문제가 발생하지 않는 다는 가정입니다.

label encoding보다는 one-hot encoding을 적용하는 성능이 약간 좋아지지만, 너무 많은 신규 피처들이 one-hot encoding으로 만들어져야 한다면 선형 회귀보다는 label encoding을 적용한 회귀 트리 모델로 성능을 비교해 보는 방법도 있습니다.

감사합니다.

코드몽키님의 프로필 이미지
코드몽키

작성한 질문수

질문하기