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

인옥님의 프로필 이미지
인옥

작성한 질문수

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

모델링 및 평가(분류)

target 값이 object이면 검증하기전에 항상 int형으로 변경해야되나요?

해결된 질문

작성

·

24

0

  • 안녕하세요? target 값이 object이면 검증하기전에 항상 int형으로 변경해야되나요? RandomForest 나 lgb 사용할 경우에는 그냥 안해도 되는거죠....

답변 2

0

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

네, 정확히 이해하셨어요 RandomForest와 lgb 모두 자동으로 처리 됩니다.

변경하지 않아도 됩니다.

 

다만 검증데이터로 평가를 할 때 1이 양성이 아니라 문자기 때문에 지정을 해줘야 합니다 🙂

precision_score(y_test_encoded, y_pred, pos_label="양성인값")
recall_score(y_test_encoded, y_pred, pos_label="양성인값")
f1_score(y_test_encoded, y_pred, pos_label="양성인값")

검증 데이터로 평가는 필수는 아니고 성능을 확인하기 위함이에요!

0

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

분류 문제에서 타깃 데이터가 object로 표시되어 있을 때, 이를 반드시 int로 변환해야 하는지에 대한 질문을 주셨네요. 일반적으로 머신러닝 모델은 타겟 데이터가 범주형일 때 이를 인식할 수 있도록 숫자형 데이터로 인코딩을 해야 합니다.

그러나 RandomForestClassifier나 LightGBM과 같은 모델은 내부적으로 범주형 데이터를 인식할 수 있으므로, 특별한 인코딩 없이도 학습이 가능합니다. 따라서 이러한 모델을 사용하는 경우, 타깃이 범주형 데이터(object)일 때 숫자로 변환하지 않고도 사용할 수 있습니다.

다만, 예측 결과를 기반으로 평가를 할 때, 평가 지표에 따라 적절한 반응을 설정해야 할 경우가 있을 수 있습니다. 예를 들어, F1-score를 계산할 때 ‘양성(1)’ 범주를 지정하는 것처럼 말이죠.

관련된 다른 질문들은 다음 링크를 참조해 주세요:

  1. 혹시 타겟값이 object라면 다른 범주형 데이터처럼 인코딩이나 타입 변경을 해줘야 하나요?
  2. 데이터 전처리시 궁금점!

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

인옥님의 프로필 이미지
인옥

작성한 질문수

질문하기