해결된 질문
작성
·
114
·
수정됨
0
안녕하세요, 학습 중 질문이 있어 글 작성합니다.
코드를 정확하게 이해하고자 자세하게 여쭤보겠습니다.
1. 강의 9:20 경 코드
from sklearn.model_selection import train_test_split
X_tr, X_val, y_tr, y_val = train_test_split(train.drop('output', axis=1), train['output'], test_size=0.15, random_state=2022)
# 랜덤 포레스트
from sklearn.ensemble import RandomForestClassifier
rf = RandomForestClassifier()
rf.fit(X_tr, y_tr)
pred = rf.predict(X_val)
rf.fit에는 당연히 X, y의 train 데이터가 들어가야 하겠는데.
pred에 X_val이 들어가야 하는 이유는 무엇인가요?
2. 강의 22:10 경 코드
pred_proba = xgb.predict_proba(test)
pd.DataFrame({
'id' : test_id,
'output' : pred_proba[:, 1]}).to_csv('0000.csv', index=False)
roc_auc_score에서 pred가 아닌 pred_proba를 사용함은 이해를 했으며(output이 확률이니까),
pred_proba[:, 1] 에서 :1의 의미를 알고싶습니다.
답변주심에 미리감사드립니다!
답변 1
0
pred에 X_val이 들어가야 하는 이유는 무엇인가요?
train데이터를 학습용으로 온전히 모두 사용한 것이 아니라 검증데이터(val)를 분리했어요
만든 모델을 X_val로 예측해보고자 함입니다. (y_val과 비교해서 예측 성능 파악)
pred_proba[:, 1] 에서 :1의 의미를 알고싶습니다
.
print(pred_proba) 해보면
0 확률과 1확률로 나옵니다. 여기서 1확률을 선택했어요
0확률: pred_proba[:, 0]
1확률: pred_proba[:, 1]