인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

--님의 프로필 이미지
--

작성한 질문수

빅데이터 분석기사 시험 실기(Python)

라벨인코더 관련 문의드립니다!

해결된 질문

작성

·

370

0

안녕하세요. 선생님! 먼저, 좋은 강의로 시험 준비를 잘 할 수 있게 해주셔서 진심으로 감사합니다.

라벨인코더 관련 문의입니다.

우선 저는 비전공자로,  나와 있는 자료들로 공부를 하다보니,

아래의 질문이 엉망일 수도 있을 것 같아서 염려가 됩니다만,

아직 공부해나가는 중인 비전공자의 질문이라는 점을 너그럽게 이해해주시고,

답변 가능하시다면 부탁드립니다!

from sklearn.preprocessing import LabelEncoder
label = ['sex''embarked''class''who''adult_male''deck''embark_town''alone']
X_train[label] = X_train[label].apply(LabelEncoder().fit_transform)
X_test[label] = X_test[label].apply(LabelEncoder().fit_transform)
 
(1) test에도 fit을 하는 것이 맞는지 문의드립니다.
(2) fit을 빼면 오류코드가 뜨는데, 어떻게 수정할 수 있을까요?
(3) 해당 코드 외에, 라벨 인코더를 적용할 수 있는,
비전공자 수준에서 따라갈 수 있는 다른 코드가 있다면
공유가 가능하실까요?
 
관련해서 답변이 가능하시다면 부탁드리겠습니다!
덕분에 시험 준비를 잘 하고 있습니다.
다시한 번 감사드립니다!

답변 2

1

안녕하세요.

질의하신 내용에 대하여 답변을 드립니다.

우선 test 데이터에 대하여 fit을 하지 않는게 맞습니다.(코드 오기입니다. )

 

라벨인코딩은 숫자가 아닌 레이블 형태의 데이터를 숫자로 변환하는 작업을 말하며,

 

이때 레이블 인코더를 맞추는 작업(fit)과
 
인코딩된 레이블을 반환하는(transform) 작업이 함께 존재합니다.
 

금번 제공된 강의에서 훈련용 데이터와 테스트 데이터에 각각 fit을 적용하다 보니

테스트 데이터에 없는 레이블이 존재하는 경우 오류가 발생하였습니다.

 

따라서 라벨인코딩을 정확히 하려면 훈련용 데이터와 테스트 데이터를 결합한 후에

전체 레이블 인코더를 맞추는 fit 작업을 하고, 레이블을 반환하는 transform 작업을 하고,

다시 훈련용, 테스트 데이터를 분리하시면 됩니다.

 

강의 오기에 대해서는 추후에 영상과 자료에 수정을 하도록 하겠습니다. :)

코드는 내일 유첨하여 첨부하도록 하겠습니다.

좋은 결과 있으시길 바랍니다. :)

안녕하세요

수정코드 전달드립니다!

https://colab.research.google.com/drive/1edJj78eFx_9SmlbeiZL_nse072HlLTjz?usp=sharing

 

라벨인코딩과정에서 분리되어있는 X_train과 X_test를 합친 후 라벨인코딩을 진행하고 다시 분리하는 과정을 추가했습니다.

 

찾기 힘드시면 'ctrl + f' -> '수정부분'을 검색하시면 편하게 확인하실수 있습니다.

0

--님의 프로필 이미지
--
질문자

바쁘신 와중에도 상세하게 답변해주셔서 감사합니다!

--님의 프로필 이미지
--

작성한 질문수

질문하기