해결된 질문
작성
·
136
·
수정됨
0
7회 기출유형 작업형3 문제1-3 질문입니다.
model = logit('gender ~ weight', data=train).fit() target = test.pop('gender') pred = model.predict(test) >0.5
# (0.5보다 크면 1, 0.5보다 작으면 0)
학습 후 예측값을 넣어주는데 predict 라는 값을 그대로 넣어주는것이 아니라 조건을 넣어 True,False 의 값을 넣게됩니다.
앞전에 작업형2에서는 pred 값을 그대로 넣었는데 0.5 를 입력하여 pred 에 넣는이유는 무엇이고 0.5 는 어디에 정의되어 있는건지 궁금합니다.
답변 1
0
로지스틱 회귀 모델은 확률값을 결과로 출력합니다.
정확도(평가지표)는 확률이 아니라 0또는 1의 클래스로 구분된 예측의 성능을 평가해요!
작업형2에서 확률로 평가한 지표는 roc-auc입니다.
이에 모델 결과 확률을 0과 1로 변경을 해야 합니다.
이 기준의 정확한 명칭은 임계값(threshold, 스레스홀드)라고 부르고 기본적으로 0.5입니다.
작업형2에서 배운 분류모델도 모두 스레스홀드가 존재하고 그 기준으로 분류가 됩니다. 기본은 0.5입니다.
제가 predict()의 결과만 설명하고 작동하는 과정은 생략했는데 랜덤포레스트 분류 모델에서 예측하면 0과 1이 나오지만 실제로는 0.5 기준으로 확률이 크면 1, 작으면 0으로 분류되는거죠!
6. 이에 기본값을 그대로 사용해서 계산했습니다. 만약 문제에서 임계값 (스레스홀드)가 명시 된다면 그 기준에 따라 주시면 됩니다.