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

vitamin님의 프로필 이미지
vitamin

작성한 질문수

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

범주형 타겟을 수치형으로 변환해야하는 경우

해결된 질문

작성

·

34

0

타겟값 변경은 주로 분류 문제에서 범주형 라벨을 숫자로 변환해야 할 때 사용됩니다. 예를 들어, 이진 분류에서는 True/False, Yes/No와 같은 값이 입력될 수 있으며, 이러한 값을 01처럼 변환하여 모델에서 사용할 수 있습니다. 예로 주신 (y_test['income'] != '<=50K').astype(int)은 소득이 특정 값보다 작거나 큰지를 0과 1로 변환하는 작업입니다. 이 작업은 타겟 라벨을 모델에서 이해할 수 있는 형식으로 변환하기 위해 필요합니다.

 

그렇다면 범주형을 숫자로 변환해서 모델에서 이해하도록 변경해야하는 경우는

그럼 어떤 경우가 있을까요?

답변 2

1

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

  • 문제에서 타겟이 문자이지만 최종 제출이 숫자(0과 1) 형식으로 요구되는 경우
    예를 들어, 이진 분류 문제에서 타겟 라벨이 "Yes/No" 또는 "True/False"와 같이 문자로 제공되지만, 평가나 제출 시 0과 1의 숫자 형식으로 제출해야 할 때 변환이 필요해요

  • 평가지표 설정에서 특정 값(0과 1)이 요구되는 경우
    일부 평가 지표(예: roc_auc_score, f1_score 등)는 타겟값이 0과 1의 숫자로 지정되어 있을 때 제대로 동작합니다. 이 경우 타겟값이 문자나 다른 형식일 경우, pos_label을 설정이 아래와 같이 필요해요

f1_score(y_test, y_pred, pos_label='양성값(1)')

0

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

타겟 라벨을 범주형에서 수치형으로 변환하는 이유는 주로 모델이 범주형 데이터를 직관적으로 이해하기 어려워 하는 경우가 있기 때문입니다. 이러한 변환을 주로 사용하게 되는 이유와 경우를 정리해보면 다음과 같습니다:

  1. 이진 분류 문제: 가장 일반적인 경우는 이진 분류입니다. ‘Yes/No’, ‘True/False’, ‘Spam/Not Spam’ 등의 경우가 이에 해당합니다. 모델에서는 이러한 이진 카테고리를 0과 1로 인식하도록 변환하여, 수치 기반의 계산을 용이하게 합니다.

  2. 머신러닝 알고리즘의 요구: 일부 알고리즘은 입력 데이터가 모두 수치형이어야 제대로 작동합니다. 예를 들어, 선형 회귀 모델이나 SVM과 같은 알고리즘은 데이터가 수치형일 때 최적의 성능을 발휘합니다.

  3. 데이터 전처리 단계의 일관성: 전체 데이터 전처리 과정에서 특정 피처가 수치형이든 비수치형이든 일관된 처리 프로세스를 적용하는 것이 관리 측면에서 유리한 경우가 있습니다. 이때 범주형 데이터를 수치형으로 변환하여 일관성있게 처리하게 됩니다.

  4. 평가와 해석의 용이성: 데이터가 수치로 변환됨으로써 ROC-AUC 또는 F1 스코어 등 수치 기반의 평가 지표 계산이 가능해지고, 해석 또한 상대적으로 용이해질 수 있습니다.

관련된 질문과 답변을 통해 더 풍부한 정보를 얻으실 수 있습니다:

  • 캐글 T2-3번 문제 target값 변경: 이 질문은 구체적으로 타겟 값을 변경해야 하는 이유와 다른 경우에 대해 설명하고 있습니다.

  • 데이터 전처리시 궁금점!: 이 답변에서는 데이터 전처리 시의 인코딩 및 스케일링에 대한 개념을 정리하며, 타겟 값의 변환이 필요한 경우에 대해서도 다룹니다.

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

vitamin님의 프로필 이미지
vitamin

작성한 질문수

질문하기