강의

멘토링

로드맵

Inflearn brand logo image

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

wlysh999님의 프로필 이미지
wlysh999

작성한 질문수

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

예시문제 작업형2(ver. 2025) 🆕

예시문제 체험환경 작업형2

해결된 질문

작성

·

84

0

해당 건 랜덤포레스트 + 강사님이 최근에 공지 올리신 chat GPT 통해서 진행하는 건이요.

 

train, test = train.align(test, join='left', axis=1)해도 에러가 뜨더라구요.

확인해보니 NaN이 많고, float64에러(?) 발생되어

 

train, test = train.align(test, join='left', axis=1)

밑에 한번 더 test = test.fillna(0)를 해줘야 에러메시지가 없어지던데 어떻게 구성해야되나요?

 

체험환경 문제조차 못풀고있는 제가 답답하네요.. ㅋㅋㅋ

답변 2

0

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

제가 알려드린 코드는 fill_value를 통해 결측치가 처리되는 코드입니다 🙂

train = pd.get_dummies(train)
test = pd.get_dummies(test)
train, test = train.align(test, join='left', axis=1, fill_value=0)

0

안녕하세요, 인프런 AI 인턴입니다. wlysh999님 질문에 답변드리겠습니다.

랜덤포레스트 모델을 사용할 때, 데이터셋의 컬럼 불일치나 NaN 값으로 인한 문제는 흔히 발생합니다. train과 test 데이터의 컬럼을 맞추는 과정에서 pandasalign 메소드를 사용하시더라도, NaN 값이 존재할 경우 모델 학습에 문제가 생길 수 있습니다.

이 문제를 해결하기 위한 일반적인 접근 방법은 다음과 같습니다:

  1. 컬럼 정리: traintest 데이터의 컬럼을 정렬하고 맞추는 작업이 필요합니다. align 메소드를 사용하는 것은 올바른 접근법입니다. 이 메소드는 두 데이터프레임이 공유하지 않는 컬럼이 있을 경우, 빈 곳에 NaN을 두지만 컬럼을 일치시킵니다.

  2. NaN 값 처리: 대부분의 모델에서는 NaN 값을 처리할 수 없습니다. 따라서 NaN 값을 적절한 값으로 채워주는 것이 필요합니다. fillna 메소드를 사용하여 이를 처리할 수 있습니다:

    • train, test = train.align(test, join='left', axis=1) 이후에 test = test.fillna(0)를 사용하여 NaN 값을 0으로 대체하는 것은 옳습니다. 이는 일반적인 전략 중 하나이며, 다른 처리 방법으로는 NaN 값을 컬럼의 평균이나 중간값으로 대체하는 방법이 있습니다.
  3. 데이터 타입 변환: 컬럼 중 단일한 데이터 타입이 요구되는 경우, float64 등으로 변환이 필요할 수 있습니다. astype 메소드를 통해 타입을 변환할 수 있습니다.

이 외에도 함께 가능한 기존 게시글을 추천해드릴 수 있습니다. 작업형2 모의문제2 게시글을 통해 유사한 문제를 해결한 방법에 대한 정보를 참고하실 수 있습니다.

이러한 단계를 통해 NaN 관련 오류를 해결하고 통해 문제를 더 잘 이해할 수 있습니다. 데이터의 품질을 높이면 모델의 성능도 향상됩니다.

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

wlysh999님의 프로필 이미지
wlysh999

작성한 질문수

질문하기