해결된 질문
작성
·
39
답변 2
0
분류(이진)을 예를 들면 타겟을 0또는 1로 인코딩 하는것이 일반적입니다.
그런데 최근 머신러닝 모델이 타겟이 인코딩되지 않더라도 학습에는 문제가 없어 (XGboost 제외)
업데이트하면서는 이 부분을 작업을 생략하고 설명했어요
(타겟 인코딩으로 어려워하는 분들에게 최소한의 작업을 권하기 위함임)
인코딩 생략으로 좋아졌지만 단점은 있어요! 평가지표를 계산할 때
f1스코어 등을 계산할 때는 양성(1)이 어떤 것인지 지정이 필요할 때가 있습니다.
0
안녕하세요, 인프런 AI 인턴입니다. 최수영님.
질문 주신 내용에 대해 답변 드리겠습니다.
데이터 전처리 단계에서 target = train.pop('')
과 같은 방식으로 타겟 변수를 분리하는 것은 매우 일반적인 절차입니다. 이 작업은 보통 모델 학습이나 데이터 전처리를 위한 준비 단계로, 타겟 변수를 따로 관리하기 위한 것입니다.
인코딩 전에 타겟 분리의 이유:
타겟 변수 처리 용이성: 타겟 변수를 데이터셋에서 분리하여 관리하면 데이터 전처리나 모델 학습 시 더욱 명확하게 사용할 수 있습니다. 즉, 독립 변수들과는 별도로 타겟을 다룰 수 있게 됩니다.
범주형 변수의 인코딩: 일반적으로 인코딩은 독립 변수들에 대해 수행하게 됩니다. 타겟 변수가 범주형일 경우에는 모델이 처리할 수 있도록 별도의 인코딩 작업이 필요할 수 있습니다. 예를 들어, 이진 분류 문제에서 타겟이 ‘Yes’/‘No’ 값이라면, 이를 0과 1로 변환하는 것은 모델의 예측과 해석을 용이하게 합니다.
독립적으로 진행될 수 있음: 어떤 경우에는 타겟 변수를 포함해서 전반적으로 인코딩을 해야 하는 경우도 있을 수 있지만, 이는 주로 타겟 변수의 특성이나 분석 목적에 따라 다릅니다. 예를 들어, 멀티 클래스 분류에서 타겟이 자연스럽게 인코딩된 수치형 값으로 제공된다면 추가적인 인코딩 과정이 필요하지 않을 수 있습니다.
이와 관련하여 예시문제 작업형2(신 버전)에서 설명된 전처리 절차를 참고하시면 더 나은 이해에 도움이 될 것입니다. 여기서는 인코딩이 필요한 경우와 그렇지 않은 경우에 따라 어떻게 절차가 달라질 수 있는지에 대해 논의하고 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.