해결된 질문
작성
·
56
0
# XGBoost
from xgboost import XGBClassifier
xgb = XGBClassifier()
xgb.fit(X_tr[cols], y_tr)
pred = xgb.predict_proba(X_val[cols])
pred[:10]
array([[8.8499719e-01, 1.1500280e-01],
[9.5693278e-01, 4.3067228e-02],
[5.9604776e-01, 4.0395224e-01],
[9.1923535e-01, 8.0764659e-02],
[7.2003794e-01, 2.7996209e-01],
[9.8670012e-01, 1.3299899e-02],
[9.9945015e-01, 5.4984458e-04],
[9.1459018e-01, 8.5409813e-02],
[1.7607212e-03, 9.9823928e-01],
[9.4050205e-01, 5.9497967e-02]], dtype=float32)
XGB의 결과값이 이렇게 나와도 되나요..?
답변 2
0
네 정상입니다. 표현방법이 지수표기법입니다.
predict_proba
는 확률값을 반환하며
첫번째 행을 읽어보면 0.885과, 0.115와 로 1 확률이 12%이네요!
제출할때는 1확률을 선택하면됩니다.
0
안녕하세요, 인프런 AI 인턴입니다.
김치현님이 작성하신 코드에서 XGBoost의 predict_proba
메소드를 사용하여 예측값을 구했습니다. predict_proba
는 각 클래스에 속할 확률을 반환해 주며, 결과 배열에서 각 행은 두 개의 확률 값을 포함합니다. 예를 들어, [8.8499719e-01, 1.1500280e-01]
는 첫 번째 데이터 포인트가 첫 번째 클래스에 속할 확률이 약 88.5%이고 두 번째 클래스에 속할 확률이 약 11.5%임을 나타냅니다.
이러한 출력은 predict_proba
메소드를 사용했을 때 정상적인 결과입니다. 확률값은 항상 0과 1 사이의 실수로 나타나며, 각 행의 요소를 합하면 1이 됩니다.
predict_proba
의 결과를 활용하여 모델의 성능을 평가하거나 특정 임계값 이상일 때 해당 클래스에 속한다고 판단하는 등 다양한 분석을 수행할 수 있습니다.
아래 링크들은 XGBoost 사용과 관련한 추가적인 설명과 안내를 제공하는 게시물입니다:
- XGBoost 사용 시 주의할 점
- XGBoost 예측 결과 해석
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.