강의

멘토링

로드맵

Inflearn brand logo image

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

최수영님의 프로필 이미지
최수영

작성한 질문수

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

데이터 전처리2 (인코딩, 스케일링)

데이터 전처리2 (인코딩)

해결된 질문

작성

·

39

0

인코딩 전에 target = train.pop('') 이 작업은 꼭 인코딩 전에 해줘야 하나요? 만약 target 값이 범주형이라면 같이 인코딩을 해줘야하는게 아닌가요?

답변 2

0

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

분류(이진)을 예를 들면 타겟을 0또는 1로 인코딩 하는것이 일반적입니다.

그런데 최근 머신러닝 모델이 타겟이 인코딩되지 않더라도 학습에는 문제가 없어 (XGboost 제외)

업데이트하면서는 이 부분을 작업을 생략하고 설명했어요

(타겟 인코딩으로 어려워하는 분들에게 최소한의 작업을 권하기 위함임)

 

인코딩 생략으로 좋아졌지만 단점은 있어요! 평가지표를 계산할 때

f1스코어 등을 계산할 때는 양성(1)이 어떤 것인지 지정이 필요할 때가 있습니다.

 

0

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

질문 주신 내용에 대해 답변 드리겠습니다.

데이터 전처리 단계에서 target = train.pop('') 과 같은 방식으로 타겟 변수를 분리하는 것은 매우 일반적인 절차입니다. 이 작업은 보통 모델 학습이나 데이터 전처리를 위한 준비 단계로, 타겟 변수를 따로 관리하기 위한 것입니다.

인코딩 전에 타겟 분리의 이유:

  1. 타겟 변수 처리 용이성: 타겟 변수를 데이터셋에서 분리하여 관리하면 데이터 전처리나 모델 학습 시 더욱 명확하게 사용할 수 있습니다. 즉, 독립 변수들과는 별도로 타겟을 다룰 수 있게 됩니다.

  2. 범주형 변수의 인코딩: 일반적으로 인코딩은 독립 변수들에 대해 수행하게 됩니다. 타겟 변수가 범주형일 경우에는 모델이 처리할 수 있도록 별도의 인코딩 작업이 필요할 수 있습니다. 예를 들어, 이진 분류 문제에서 타겟이 ‘Yes’/‘No’ 값이라면, 이를 0과 1로 변환하는 것은 모델의 예측과 해석을 용이하게 합니다.

  3. 독립적으로 진행될 수 있음: 어떤 경우에는 타겟 변수를 포함해서 전반적으로 인코딩을 해야 하는 경우도 있을 수 있지만, 이는 주로 타겟 변수의 특성이나 분석 목적에 따라 다릅니다. 예를 들어, 멀티 클래스 분류에서 타겟이 자연스럽게 인코딩된 수치형 값으로 제공된다면 추가적인 인코딩 과정이 필요하지 않을 수 있습니다.

이와 관련하여 예시문제 작업형2(신 버전)에서 설명된 전처리 절차를 참고하시면 더 나은 이해에 도움이 될 것입니다. 여기서는 인코딩이 필요한 경우와 그렇지 않은 경우에 따라 어떻게 절차가 달라질 수 있는지에 대해 논의하고 있습니다.

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

최수영님의 프로필 이미지
최수영

작성한 질문수

질문하기