강의

멘토링

로드맵

Inflearn brand logo image

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

진현석님의 프로필 이미지
진현석

작성한 질문수

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

10회차 작업형2 라벨 인코딩 관련

작성

·

116

0

라벨 인코딩 하는 과정에서

le.fit_transform(train[col])을 한 뒤에

le.fit_transform(test[col]) test에 fit_을 같이 붙여버렸습니다.

col인 상권유형의 개수(unique)가 train과 test 차이가 둘다 a b c d e f 6개로 같았으면 성능평가에 지장 없을까요?

지장이 있다면 감점이 크게 될지 궁금합니다.

답변 3

0

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

작업형2 40점에 문제 없으셨죠??

0

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

알파벳 순이어서 큰 이슈는 없을 것 같아요 !

0

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

라벨 인코딩 과정에서 le.fit_transform(train[col])le.fit_transform(test[col])을 잘못 적용하신 것에 대해 우려가 있으신 것 같은데요, 이 부분에 대해 설명해드리겠습니다.

라벨 인코딩과 데이터 일관성

라벨 인코딩 시 fit_transform을 훈련 데이터와 테스트 데이터에 각각 적용하는 것은 각 데이터셋에 대해 별도로 인코딩을 수행하기 때문에 훈련 데이터와 테스트 데이터의 범주 간 일관성이 깨질 수 있습니다. 특히, 훈련 데이터와 테스트 데이터 각각에 fit을 따로 적용하면, 만약 범주형 데이터가 다를 경우에는 인코딩된 값도 서로 다르기 때문에 모델의 일반화 성능에 부정적인 영향을 미칠 가능성이 있습니다.

영향 및 해결 방법

  1. 영향: 현재 진현석님이 언급하신대로 상권유형(컬럼)의 개수(unique)가 traintest 모두 동일하여 a, b, c, d, e, f로 같은 경우에는 우연히 값이 같기 때문에 큰 문제는 없을 수 있습니다. 단, 모델이 동일한 데이터를 봤을 때 다른 결과를 내지 않게 하려면 항상 일관된 방법으로 데이터 전처리를 해야 합니다.

  2. 해결 방법: 올바른 구현 방법으로는 먼저 train 데이터에 대해 le.fit(train[col])을 수행한 후, 동일한 레이블인코더 객체를 사용해 test 데이터를 le.transform(test[col])으로 변환해야 합니다.

관련 사례 또는 추가 내용에 대해서는 다음과 같은 게시물을 참고하시면 도움이 될 것입니다:

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

진현석님의 프로필 이미지
진현석

작성한 질문수

질문하기