반응형
안녕하세요,
오늘은 머신러닝 모델에서 예측을 수행할 때 사용하는 메서드인 predict와 predict_proba의 차이에 대하여 알아보겠습니다.
predict와 predict_proba는 각각 반환하는 결과가 다릅니다.
1. predict:
- predict는 모델이 예측한 클래스 레이블을 반환합니다.
- 주로 분류 문제에서 사용하며, 예측된 샘플이 특정 클래스에 속할 확률이 가장 높은 클래스로 결정됩니다.
- 예를 들어, 이진 분류 문제에서 모델이 샘플을 클래스 0 또는 클래스 1로 예측할 때, predict는 최종 예측된 클래스 (0 또는 1)를 반환합니다.
2. predict_proba
- predict_proba는 각 클래스에 대한 확률을 반환합니다.
- 예측한 각 클래스의 확률 값이 포함된 배열을 반환하며, 이진 분류 문제의 경우 클래스 0과 클래스 1에 속할 확률을 각각 나타냅니다.
- 예를 들어, 클래스 1에 속할 확률이 0.8, 클래스 0에 속할 확률이 0.2인 경우, predict는 1을 반환하지만 predict_proba는 [0.2, 0.8] 배열을 반환합니다.
정리 -
predict는 최종 예측된 클래스 레이블을, predict_proba는 각 클래스에 속할 확률을 반환하는 메서드입니다.
추가 예시 -
예를들어
rfc = RandomForestClassifier() 이면서 X_test라는 데이터 샘플이 있다고 가정하고 진행하겠습니다.
rfc.predict_proba(X_test)[:,1]
위와같은 표현을 했을때 두 부분으로 나눠서 알아보겠습니다.
1. rfc.predict_proba(X_test):
- predict_proba 메서드는 X_test 데이터에 대해 각 클래스에 속할 확률을 예측하여, 2차원 배열을 반환합니다.
- 예를 들어, X_test에 샘플이 5개 있고 이진 분류(클래스 0과 클래스 1)라면, predict_proba의 결과는 아래와 같은 형태입니다
[[p_0_1, p_1_1],
[p_0_2, p_1_2],
[p_0_3, p_1_3],
[p_0_4, p_1_4],
[p_0_5, p_1_5]]
여기서 각 행 [p_0, p_1]은 각 샘플에 대해 클래스 0과 클래스 1에 속할 확률입니다.
2. [:, 1]:
- 이 부분은 슬라이싱을 통해 각 샘플의 두 번째 열인 클래스 1에 속할 확률만 추출합니다.
- 결과적으로 클래스 1의 확률이 담긴 배열 [p_1_1, p_1_2, p_1_3, ...]을 얻을 수 있습니다.
따라서, rfc.predict_proba(X_test)[:, 1]은 X_test 데이터에 대해 모델이 예측한 클래스 1에 속할 확률만을 추출한 1차원 배열을 반환하게됩니다.
감사합니다.
반응형
'BigData' 카테고리의 다른 글
[ 개인 기록용 ] 빅데이터분석기사 실기 관련 정리 사항 (0) | 2024.11.10 |
---|---|
ETL이란 무엇인가? (4) | 2024.11.09 |
OneHotEncoding시에 OneHotEncoding.fit()과 df.get_dummies()의 차이는? (0) | 2024.11.07 |
LabelEncoder와 OneHotEncoder의 차이는 무엇일까? (1) | 2024.11.05 |
빅데이터분석기사) 빅분기 실기 체험 제2유형 (0) | 2024.11.01 |