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

꾸꾸님의 프로필 이미지

작성한 질문수

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

3회 기출유형(작업형2)

작업형2 random_state

해결된 질문

24.06.19 08:26 작성

·

115

0

  • 안녕하세요!

  • 작업형 2에서 random_state 때문에 혼선이 오네요 ㅠㅠ

  • 제가 잘못 이해를 한건지,

    검증데이터 분리 / 모델링시 고정? 용도로 사용한다고 인지했는데, 막상 문제 풀어보니 설정값에 따라 10점 차이가 나더라구요 ㅜㅜ

  • random_state=2022 (71점) / random_state=0 (85점)

  • 차이가 왜케 많이 나는걸까요? ㅠ 혹시 추천하시는 값이 있으실까요?

  •  

  •  

    
    # 검증 데이터 분리 
    from sklearn.model_selection import train_test_split 
    
    
    from sklearn.model_selection import train_test_split
    X_tr, X_val, y_tr, y_val = train_test_split(train.drop('TravelInsurance', axis=1), 
                                                train['TravelInsurance'],
                                                test_size=0.1,
                                                random_state=2022)
    
    # from sklearn.model_selection import train_test_split
    # X_tr, X_val, y_tr, y_val = train_test_split(train.drop('TravelInsurance', axis=1), 
    #                                             train['TravelInsurance'],
    #                                             test_size=0.1,
    #                                             random_state=0)
    
    # 모델링 
    
    from sklearn.ensemble import RandomForestClassifier 
    
    from sklearn.ensemble import RandomForestClassifier
    rf = RandomForestClassifier(n_estimators=400, max_depth=9, random_state=2022)
    rf.fit(X_tr, y_tr)
    pred = rf.predict_proba(X_val)[:,1]

     

답변 2

0

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

2024. 06. 19. 09:31

검증 데이터가 매우 작아서(0.1) 차이가 있는거지 그정도 차이가 나진 않아요!

미미한 차이는 있습니다.

그렇다고 random_state를 튜닝하는 것은 추천하지 않아요~

마음에 드는 숫자 하나 넣는 것으로 마무리 하시죠!

0

인프런 AI 인턴님의 프로필 이미지

2024. 06. 19. 08:31

안녕하세요, 인프럴 AI 인턴입니다. 꾸꾸님의 질문과 관련하여, random_state 값의 변화가 모델 성능에 미치는 영향에 대해 설명드립니다.

random_state는 머신러닝에서 데이터를 분리할 때 일관된 방식으로 데이터를 셔플하고, 모델 내부에서 사용되는 랜덤성을 고정하기 위해 사용됩니다. random_state 값을 고정시켜 놓으면 코드를 실행할 때마다 동일한 결과를 얻을 수 있기 때문에, 실험의 재현성을 확보할 수 있습니다.

하지만, random_state 값에 따라 성능 차이가 나는 것은 어느 정도 기대할 수 있는 일입니다. 특히, 데이터의 분리 방식이 결과에 큰 영향을 미칠 수 있는 작업에서는 더욱 그러합니다. 예를 들어, 분리된 학습 데이터와 검증 데이터의 분포가 다를 경우, 모델 성능에 큰 차이가 발생할 수 있습니다.

작업형 2에서 직면한 문제는 전형적인 경우로, 모델 학습 시 random_state 값에 따라 학습 데이터의 분포가 달라지기 때문에 모델의 성능이 변동하는 것입니다. 이는 random_state 값을 변경하여 다양한 시도를 해보는 것이 좋으며, 여러 값에 대한 성능을 비교해 가장 적합한 값을 선택하는 전략을 취할 수 있습니다.

다만, 특정 random_state 값에 모델이 과적합될 우려가 있으므로, 최종 모델을 결정하기 전에는 다양한 값으로 실험을 반복하는 것이 바람직합니다. 고정된 random_state 값에 의존하기 보다는, 모델의 일반화 성능을 높이는 것이 중요합니다.

제공된 내용과 가장 유사한 경우는 아래의 정보입니다:

  • random_state 값에 따라서 값이 큰 차이가 나는 경우가 있나여 ?에서는 train_test_splitrandom_state 값에 따라 모델 성능에 큰 차이가 날 수 있음을 언급하고 있습니다. 이는 데이터 분할 방식이 결과에 영향을 미칠 수 있음을 나타냅니다. 이론적으로 이 문제는 꾸꾸님의 경우와 유사하며, 데이터 분할에 사용되는 random_state 값을 변경하였을 때 성능 차이가 발생하는 것 역시 같은 맥락입니다.

해당 내용은 직접적인 해결책을 제시하기보다는 random_state의 영향에 대한 이해를 돕고, 이를 고려한 실험 설계의 중요성을 강조합니다. 여러 값으로 실험해보고, 결과를 비교 분석하여 최적의 값을 찾는 과정이 필수적입니다.

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

꾸꾸님의 프로필 이미지

작성한 질문수

질문하기