• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    해결됨

predict 와 predict_proba 차이

22.10.27 16:23 작성 조회수 7.84k

0

predict 와 predict_proba 차이 강의자료에 짧게 있지만 잘 이해가 안되서요 자세하게 차이를 알고 싶습니다!

그리고 다중분류일때 사용하는법도 알고 싶습니다!

다중분류일때 predict_proba 를 사용해서 값이나오면 그값이 의미하는것이 무엇인지요~

답변 1

답변을 작성해보세요.

0

DQ K님의 프로필

DQ K

지식공유자

2022.10.27

안녕하세요 mouse님!

질문주신 사항 답변드리겠습니다.

predict는 각각의 모델의 최종적인 예측값을 출력하는 결과인데요.
회귀 모델의 경우 0.98733...과 같이 구체적으로 특정 값을 출력하게 되고,
분류 모델의 경우 0, 1, 2와 같이 가장 확률이 높은 클래스를 출력하게 됩니다.

그리고 이때 분류 모델이 각 클래스에 대한 확률을 일일히 출력하는 것이 predict_proba 입니다.
(predict_proba는 predict probability, 즉 각 클래스의 확률을 예측하라는 의미입니다)
따라서 회귀 모델에는 predict_proba를 사용할 수 없으며, 출력되는 값은 다음과 같습니다.

[클래스가 3개인 문제를 풀 경우]
Input -> [클래스 0일 확률, 클래스 1일 확률, 클래스 2일 확률]

당연히 여러 개의 input을 넣을 경우 그 input만큼의 각 클래스 확률을 출력하게 됩니다.
따라서 강의안에서 제시된 predict_proba[:,1]과 같은 방식은 이진분류 문제일 때,
회귀문제를 분류모델을 통해 푸는 방식을 뜻하며 이는 곧 1일 확률(&0이 아닐 확률)이기 때문에
이렇게 사용됩니다.

 

그리고 다중분류일 때 쓰는 방법에 대해서도 질문주셨는데요.
단순히 다중분류 모델을 사용해서 0, 1, 2 중 하나를 출력하는 방법이 있으며,
이를 predict_proba로 출력한 이후 일정값 이하인 경우 필터링해 사용하기도 합니다.
위 방법을 사용하기 위해선 np.argmax를 통해 각 row별 최대값의 index를 구한 후
해당 값이 기준치 이상인지를 따진 후 출력하는 방식을 사용합니다.

 

추가적으로 궁금하신 사항이나, 위 답변으로 해결되지 못한 부분이 있다면 다시 질문주시면 최대한 빠르게 답변드리도록 하겠습니다.

감사합니다.