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

김치현님의 프로필 이미지
김치현

작성한 질문수

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

모델링 및 평가(분류)

xgboost의 결과값

해결된 질문

작성

·

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 예측 결과 해석

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

김치현님의 프로필 이미지
김치현

작성한 질문수

질문하기