강의

멘토링

커뮤니티

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

Jaewoo Choi님의 프로필 이미지
Jaewoo Choi

작성한 질문수

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

사이킷런으로 수행하는 타이타닉 생존자 예측 - 01

인코딩 질문

작성

·

225

0

레이블 인코딩, 원핫인코딩과 pd.get_dummies의 차이가 무엇인가요? 결과가 동일하면 pd.get_dummies를 쓰는 것이 더 편하지 않나요? 감사합니다

답변 1

3

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

안녕하십니까,

레이블 인코딩은 개별 문자열 값을 하나의 숫자값으로 인코딩 합니다.

가령 ['사과', '배', '오렌지']가 있으면 '사과'는 0, 배는 1, 오렌지는 2로 변환해서 [0, 1, 2] 로 변환합니다.

원-핫 인코딩은 그냥 숫자값으로 변환하면 숫자값 0, 1, 2가 어떤 의미상으로 0이 1보다 작다는 의미를 가질 수 있기 때문에 이에 대한 영향력을 배제하고자 만들어진 것입니다.

원-핫 인코딩은 데이터셋의 갯수를 고려하고, 특정 데이터 값만 1을 부여 하는 방식입니다. 위에서 ['사과', '배', '오렌지']는 데이터 셋이 3개 이므로 사과의 경우는 3개의 데이터 중 첫번째 값이고 이 값만 1로 만들어서(그래서 원-핫입니다) [1, 0, 0] 으로 변환,   배의 경우는 3개의 데이터 중 2번째 값이고 이 값만 1로 만들어서 [0, 1, 0] 으로 변환,  오렌지의 경우는 3개의 데이터 중 3번째 값이고 이 값만 1로 만들어서 [0, 0, 1] 로 변환하는 방식입니다. 이렇게 변환하면 단순 숫자값의 대소에 따른 영향도를 피할 수 있습니다. 

pd.get_dummies()는 원-핫 인코딩을 pandas DataFrame기반으로 편리하게 만들 수 있는 API 입니다.  Jaewoo Choi님 보시기에 편하신 방식으로 선택하시면 될 것 같습니다.

Jaewoo Choi님의 프로필 이미지
Jaewoo Choi
질문자

감사합니다 :)

Jaewoo Choi님의 프로필 이미지
Jaewoo Choi

작성한 질문수

질문하기