inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

roc_auc_score 관련 질문 (캐글 흡연자 예측(분류))

해결된 질문

184

미미밍

작성한 질문수 12

0

선생님 안녕하세요. 랜덤포레스트랑 roc_auc_score 관련 질문 드립니다.

 

  1. roc_auc_score는 이진분류라서 [:,1]을 해야하는 걸로 알고 있는데요

    train = pd.read_csv('/kaggle/input/smoker-binary-class/train.csv')
    test = pd.read_csv('/kaggle/input/smoker-binary-class/test.csv')
    
    train.isnull().sum() #결측치없음
    # train.info() -> 전부다 float형
    # print(train.shape,test.shape) (15000, 24) (10000, 23)
    # train.head(2)
    
    #id삭제
    train = train.drop(columns = 'id')
    test_id = test.pop('id')
    y= train.pop('smoking')
    
    #train_test_split
    from sklearn.model_selection import train_test_split
    x_tr,x_val,y_tr,y_val = train_test_split(train,y,test_size = 0.2, random_state = 42)
    # print(x_tr.shape,x_val.shape,y_tr.shape,y_val.shape) (12000, 22) (3000, 22) (12000,) (3000,)
    
    #랜포
    from sklearn.ensemble import RandomForestClassifier
    model= RandomForestClassifier()
    model.fit(x_tr,y_tr)
    pred = model.predict_proba(x_val)[:,1]
    
    from sklearn.metrics import roc_auc_score
    # print(roc_auc_score(y_val,pred))
    # 0.8775897293980339
    answer = model.predict_proba(test)[:,1]
    pd.DataFrame({'id' : test_id, 'smoking' : answer}).to_csv('12345.csv',index = False)
    
    
    
    만약 roc_auc_score가 아닐경우
    pred = model.predict(x_val)
    print(f1_score(y_val,pred))
    answer = model.predict(test)
    

    pred = model.predict_proba(x_val)[:,1]

     

    from sklearn.metrics import roc_auc_score

     

    # print(roc_auc_score(y_val,pred))

     

    # 0.8775897293980339

     

    answer = model.predict_proba(test)[:,1]

이렇게 pred = 하는 부분에서 [:,1] 하고 정답제출(answer) 부분역시 이렇게 동일하게 하면 되는게 맞는지 문의드립니다.

만약 roc_auc_score가 아닌 경우에는 그냥 pred = predict까지만 하면 되는게 맞을까요?

 

  1. 그리고 train_test_split 할때는 random_state = 42(숫자 고정) 하는데
    model = RandomForestClassifier() 이렇게 전부다 생략을 해버리니


    이게 실행시킬때마다 고정이 안돼서 그런가 값이 바뀌더라고요.
    어느 분은 n_estimators도 하시고, random_state도 작성하시는 분이 계신데
    시험환경에서 ()이렇게 비워두면 큰 문제가 될까요?

python 머신러닝 빅데이터 pandas 빅데이터분석기사

답변 1

0

퇴근후딴짓

  1. 네 맞습니다. 다만 1을 묻고 있는 것이 맞는지는 확인해주세요:) 일반적으로 0을 묻지는 않는데 만약 문제에서 묻는다면 [:,0]입니다.

  2. 아니요. 큰 문제가 되지는 않습니다. 여력이 되면 튜닝을 해주시고 안된다면 RandomForestClassifier() 외에 lightgbm 하나 더 준비해서 비교하면 어떨까 싶네요!

수강 연장 문의드립니다.

0

33

2

강의 연장 문의

0

35

2

수강 신청 연장 문의드립니다.

0

49

2

작업형 1번문제... 환경관련

0

32

2

12회 기출은 언제 업데이트 될까요??

0

41

2

8/6 작성한 연장문의 질문글에 대한 재요청

0

39

2

수강기간 연장 문의

0

42

2

수강기간 연장문의

0

37

2

수강기간 연장 요청 문의드립니다

0

38

2

수강 기간 연장 문의

0

47

2

수강연장 가능 문의 (기간 약 한달반)

0

60

2

수강기간 연장 가능할까요 선생님

0

74

2

Section15. 수업에 사용하는 데이터 주소가 다 보이지 않아서 실습을 위한 데이터를 다운 받지 못하고 있습니다.

0

56

3

수강연장요청 문의

0

92

2

아무래도 다음 시험 연장은 어렵겠죠?

0

112

2

빅분기 12회 결과 관련 문의

0

114

1

책이랑 강의랑 순서나 예제가 다른것 같네요

0

83

2

수강연장 문의

0

107

2

재검토 요청 방법 좀 알려주셔요...-.-;;

0

109

2

12회 실기 질문(작업형 2)

0

94

2

뒤로가기 버튼 같은 것이 있나요?

0

68

1

강의 연장 문의

0

101

2

출력값 질문

0

74

2

수업노트가 어디에 있나요?

0

64

1