해결된 질문
작성
·
173
답변 2
0
0
안녕하세요, 인프런 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의 값을 가진다는 것을 확인할 수 있습니다.
질문자님의 문제와 직접 관련된 내용은 아래 링크에서 보다 구체적인 해결 방안을 찾을 수 있습니다:
- 원핫인코딩과 라벨인코딩의 차이
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.