인프런 커뮤니티 질문&답변
인코딩 질문
작성
·
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님 보시기에 편하신 방식으로 선택하시면 될 것 같습니다.






감사합니다 :)