inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

작업형2 연습문제4 풀이

해결된 질문

49

s93610

작성한 질문수 10

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 코드 작성했을 때 오류가 생기면 이때는 합쳐서 원핫 인코딩 하면 될까요?

python 머신러닝 빅데이터 pandas 빅데이터분석기사

답변 2

0

퇴근후딴짓

네 맞습니다.

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

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

0

인프런 AI 인턴

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

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

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

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

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

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

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

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

추가 가이드

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

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

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

28:19 roc_auc이유

0

4

1

수강연장문의

0

7

1

전체적인 머신러닝 순서

0

5

1

빅분기 실기 유형2질문

0

10

0

ID 전처리 이유

0

23

2

데이터제공

0

21

2

예시문제 작업형3 꼬리질문2번

0

10

0

데이터 개수를 구할 때, len과 value_counts 차이

0

17

2

작업형 2 제출방

0

15

2

인코딩 스케일링 순서

0

17

2

실제 시험에서도 공식을 문제에서 주는지

0

16

2

수강 연장 문의

0

16

2

작업형2 정리한 내용 확인 부탁드립니다 ㅜㅜ

0

19

1

14강 "" 사용 관련 질문

0

21

2

캐글 제출 점수

0

26

2

기출 마무리 방법

0

49

2

빅이시 작업형2 기초 - 케이스 1~3 관련 문의

0

30

6

데이터프레임 슬라이싱 인덱싱 질문2

0

27

2

단일표본검정, 샤피로검정, 윌콕슨검정

0

37

2

강의자료 다운로드 여부

0

38

2

문제에 첨부된 예시와 실제 출력된 샘플 비교

0

30

2

원핫 인코딩 관련

0

39

2

타겟 분리

0

39

2

Id 삭제

0

44

2