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

빅분기수강생님의 프로필 이미지
빅분기수강생

작성한 질문수

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

5-3 작업형 2 모의. 평가지표 값이 전부 1 나옴

해결된 질문

작성

·

119

0

선생님 안녕하세요.

5-3 강의보면서 따라하는데

roc_auc, f1, 정확도

평가지표 값이 전부 1로 나옵니다.... 검증 데이터 분리까지 똑같이 따라 했고요

(random_state = 값은 동일하게만 주면 된다고 해서 전 그냥 다 100으로 놓고 했습니다)

 

일단 작성한건 아래와 같고요

# 랜덤포레스트    ROC-AUC, 정확도(Accuracy), F1

from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import f1_score, accuracy_score, roc_auc_score


rf = RandomForestClassifier(random_state=100)
rf.fit(X_tr,y_tr)
pred_rf = rf.predict(X_val)
proba_rf = rf.predict_proba(X_val)

print(roc_auc_score(y_val,proba_rf[:,1]))    # "ROC_AUC:",
print(f1_score(y_val,pred_rf))                    # "F1:",
print(accuracy_score(y_val,pred_rf))        # "Accuracy:",

결과 값은 다

1.0

1.0

1.0

으로 나오는데... 이거 뭔가 잘못 된거 같은데, 뭘 잘못한걸까요...?

 

 

 

 

답변 1

0

퇴근후딴짓님의 프로필 이미지
퇴근후딴짓
지식공유자

데이터가 매우 작은 형태라

극단적인 결과가 나올 수도 있기는 합니다만

데이터 분리는 어떻게 했을까요?

분리된 데이터 각 shape과 X_train.head()를 확인시켜주실 수 있을까요?

전처리& 피처엔지니어링

trian = train.drop("id",axis=1)
test_id = test.pop("id")

test.head()

검증 데이터 분리

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=100)

이렇게 한 다음 위의 작성글 처럼 랜덤포레스트 돌렸습니다

 

 

퇴근후딴짓님의 프로필 이미지
퇴근후딴짓
지식공유자

네, 코드상에 큰 문제는 보이지 않습니다. 다른 데이터로도 이런 현상이 발생되면 문제가 있지만 아니라면 데이터로 인해 발생한 것 같아요!

빅분기수강생님의 프로필 이미지
빅분기수강생

작성한 질문수

질문하기