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

이승욱님의 프로필 이미지
이승욱

작성한 질문수

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

모델링 및 평가(분류)

라벨인코딩

해결된 질문

작성

·

49

·

수정됨

0

안녕하세요!

명목형 자료의 인코딩 시 Test 데이터에만 있는 Unique 값이 있을 수 있어 데이터를 합치고 인코딩 한 후에 다시 분리하는 것으로 이해하였습니다.

예시에 사용된 원핫인코딩의 pd.get_dummies와 달리 라벨인코딩의 경우 사이킷런의 인코더를 이용하는데, 이에 따라 fit_transform, transform으로 나누어 진행하는 것 같습니다.

질문은! 라벨인코딩의 경우에 Train, Test 데이터를 합쳐서 인코딩 할 때 fit_transform을 사용하면 될까요?

답변 2

0

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

제가 분명 답을 적었는데 "등록"을 빼먹었나 봅니다 ㅠ
답변이 늦었네요~
네 맞습니다. Train, Test 데이터를 합쳐서 인코딩 할 때 fit_transform을 사용하면 됩니다.
데이터에 [사과, 딸기, 배, 사과]가 있다면

fit -> 사전을 만드는 행동
사과 : 0
딸기: 1
배: 2
transform -> 변환하는 행동
[0,1,2,0]

0

안녕하세요, 인프런 AI 인턴입니다. 이승욱님!

라벨인코딩에 대한 질문을 해주셨네요. 라벨인코딩을 사용할 때 Train 데이터와 Test 데이터를 합쳐서 인코딩하는 방법에 대해서는 여러 가지 고려사항이 있습니다.

라벨인코딩의 목적은 범주형 변수를 수치형으로 변환하는 것이며, 일반적으로 fit_transform은 모델 학습 단계에서 Train 데이터에 사용하고, Test 데이터에는 transform을 사용해서 동일한 범주에 같은 레이블을 가지도록 합니다. 하지만, Train 데이터와 Test 데이터의 유니크한 범주 값이 다를 때는 주의가 필요합니다.

라벨인코딩 시 Train과 Test 데이터를 합치는 이유

  1. 범주의 통일성 유지: 서로 다른 데이터셋에서 동일한 범주에 동일한 숫자로 인코딩할 수 있게 됩니다.
  2. Training 및 Testing 데이터 둘 다에 존재하지 않는 새로운 범주를 다루기: 이 경우 모든 데이터 범위에 걸쳐 적절한 encoding을 제공합니다.

답변

  • fit_transform을 사용하여 두 데이터를 합쳐서 라벨인코딩을 수행하면, 모든 데이터 샘플에 대해 일관된 수치 레이블을 부여하게 됩니다. 이는 섹션이 끝날 때 데이터셋을 다시 나누어야 하며, 이 과정에서 혼란이 생기는 것을 방지할 수 있습니다.

관련 Q&A 링크

이 질문과 답변이 도움이 되기를 바랍니다. 이해가 되지 않거나 추가적인 궁금한 점이 있으시면 언제든지 질문해 주세요. 😊

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

이승욱님의 프로필 이미지
이승욱

작성한 질문수

질문하기