강의

멘토링

커뮤니티

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

s93610님의 프로필 이미지
s93610

작성한 질문수

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

작업형2 연습문제4 풀이

해결된 질문

작성

·

18

0

작업형2 연습문제4에서 풀이는 아래와 같은데,

# 결측치 처리
train = train.fillna("X")
test = test.fillna("X")

# train과 test 합쳐서 원핫인코딩
combined = pd.concat([train, test])
combined_dummies = pd.get_dummies(combined)
n_train = len(train)
train = combined_dummies[:n_train]
test = combined_dummies[n_train:]

저는 다음과 같이 결측치가 있는 object 항 삭제 후 label encoder 진행해서 풀었습니다. 오류 없이 작동했으면 괜찮은 건가요?

cols = ['gender', 'enrolled_university', 'education_level', 'major_discipline', 'experience', 'company_size', 'company_type', 'last_new_job']
train = train.drop(cols, axis=1)
test = test.drop(cols, axis=1)
# print(train.shape)
# test.isnull().sum()
# print(test.shape)
from sklearn.preprocessing import LabelEncoder
colss = train.select_dtypes(include='O').columns
for col in colss:
  le = LabelEncoder()
  train[col] = le.fit_transform(train[col])
  test[col] = le.transform(test[col])

만약에 결측치 있는 object 항 제거하고 label encoder 코드 작성했을 때 오류가 생기면 이때는 합쳐서 원핫 인코딩 하면 될까요?

답변 2

0

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

네 맞습니다.

그런데 실제 시험에서는 결측치가 있다면 먼저 채워보는 노력을 먼저 진행해 주세요 🙂

중요한 컬럼이 삭제될 수도 있어 주의가 필요합니다.

0

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

작업형2 연습문제4에서 결측치 처리와 인코딩 방법에 대해 질문해주셨습니다. 결측치가 포함된 object형 데이터를 삭제하고 나서 라벨 인코딩을 진행하신 점과, 만약 오류가 발생하면 합쳐서 원핫 인코딩을 고려하고 계신 것에 대해 몇 가지 정보와 조언을 드리겠습니다.

1. 결측치 처리 및 인코딩 방법

  • 라벨 인코딩(Label Encoding): 범주형 데이터를 숫자로 변환하는 방법입니다. 이 방식은 분석 대상 열의 고유한 카테고리별로 숫자를 부여하는데, 데이터 내에서 카테고리가 순서 의미를 가지지 않는 경우에는 때때로 잘못된 결과를 초래할 수 있습니다. 특히, 순서가 없는 데이터에서 임의의 숫자 부여로 인해 모델이 순서를 잘못 해석할 수 있습니다.

  • 원핫 인코딩(One-Hot Encoding): 각 범주형 변수에 대해 새로운 이진 변수 열을 생성하여 카테고리를 표현하는 방법입니다. 범주의 순서가 중요하지 않을 때 많이 사용하며, 특히 머신러닝 모델에서 더욱 안전한 방식으로 평가됩니다.

2. 결측치와 인코딩 처리 조언

  • 오류 없이 작동했으므로 현재 방식으로도 충분히 유효합니다. 그러나 반드시 데이터를 합친 후 인코딩을 해야만 오류가 없는 것은 아닙니다. 피처 처리에서 가장 중요한 것은, 모든 피처가 모델에서 일관되게 해석될 수 있도록 정리하는 것입니다.

  • 만약 결측치로 인한 오류가 발생한다면, 순서를 고려하지 않는 범주형 데이터라면 원핫 인코딩으로 처리하는 것이 더 안전한 선택일 수 있습니다. 특히, 학습 세트와 테스트 세트를 합쳐서 인코딩할 경우, 전체 데이터 공간에서 일관성 있게 인코딩이 이루어지기 때문에 잠재적 오류를 줄일 수 있습니다.

추가 가이드

결론적으로, 결측치와 인코딩에 대한 처리는 데이터의 특성과 문제의 요구 사항에 따라 선택됩니다. 인코딩 전에 분석하는 데이터의 성격을 잘 이해하고 선택하는 것이 중요합니다.

관련된 이해를 돕기 위해 다음의 기존 질문 답변을 참고하시기를 권장 드립니다:
- 데이터 전처리와 인코딩에 관한 기존 질문 및 답변

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

s93610님의 프로필 이미지
s93610

작성한 질문수

질문하기