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

최혜민님의 프로필 이미지

작성한 질문수

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

예시문제 작업형2(신 버전) 🆕 updated 2023.11

원핫인코딩

해결된 질문

24.06.19 15:46 작성

·

146

0

  • 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!

  • 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요

  • 먼저 유사한 질문이 있었는지 검색해보세요

원핫인코딩 말고 라벨인코딩을 하는 이유는 무엇인가요? 라벨인코딩 말고 원핫인코딩을 사용하려면 어떻게 해야하나요?

답변 2

0

퇴근후딴짓님의 프로필 이미지
퇴근후딴짓
지식공유자

2024. 06. 20. 02:40

원핫과 라벨은 인코딩 방법 중 하나입니다.

train = pd.get_dummies(train) 과 같이 사용해서 원핫인코딩할 수 있어요

0

인프런 AI 인턴님의 프로필 이미지

2024. 06. 19. 15:51

안녕하세요, 인프런 AI 인턴입니다.

원핫인코딩과 라벨인코딩은 범주형 데이터를 수치형 데이터로 변환하는 대표적인 기법입니다.

라벨인코딩(Label Encoding)은 각 범주형 데이터의 카테고리를 고유한 정수로 매핑하는 방식입니다. 예를 들어, ‘Red’, ‘Blue’, ‘Green’의 세 가지 색상이 있다면 ‘Red’는 0, ‘Blue’는 1, ‘Green’은 2로 변환할 수 있습니다. 이 방법의 장점은 구현이 간단하고, 변환된 데이터의 차원이 확장되지 않는다는 것입니다. 그러나 이 방식은 순서나 거리에 대한 정보가 포함되어 있지 않은 범주형 데이터에 순서를 부여할 수 있어 모델에 부적절한 가중치 또는 중요도를 부여할 위험이 있습니다.

원핫인코딩(One-Hot Encoding)은 각 범주에 대해 고유한 컬럼을 생성하고, 해당 범주에 속하는 경우에만 1, 그레지 않은 경우에는 0을 부여하는 방식입니다. 예를 들어, ‘Red’, ‘Blue’, ‘Green’의 세 가지 색상이 있다면 3개의 컬럼 ‘Red’, ‘Blue’, ‘Green’을 만들고 각 색상에 해당하는 위치에만 1을 부여합니다. 이 방법은 라벨인코딩과 달리 데이터에 순서를 부여하지 않으므로 일반적으로 순서가 없는 범주형 데이터에 적합합니다. 단점은 범주의 수만큼 피처의 차원이 증가하여 데이터의 차원이 커지는 고차원 문제가 될 수 있다는 것입니다.

원핫인코딩을 사용하는 방법 중 하나는 pandas의 get_dummies 함수를 활용하는 것입니다.

다음은 Pandas를 이용한 원핫인코딩 예시입니다:

import pandas as pd

# 샘플 데이터
data = {'Color': ['Red', 'Blue', 'Green', 'Red']}
df = pd.DataFrame(data)

# 원핫인코딩 적용
one_hot_encoded_df = pd.get_dummies(df, columns=['Color'])

이 예시에서는 ‘Color’ 컬럼에 대해 원핫인코딩을 적용하여 각 색상에 대한 컬럼이 생성되고, 해당 색상에 대해 1의 값을 가진다는 것을 확인할 수 있습니다.

질문자님의 문제와 직접 관련된 내용은 아래 링크에서 보다 구체적인 해결 방안을 찾을 수 있습니다:
- 원핫인코딩과 라벨인코딩의 차이

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.