강의

멘토링

커뮤니티

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

key.nam님의 프로필 이미지
key.nam

작성한 질문수

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

작업형2 모의문제2

평가지표 결과값이 불안정해요

작성

·

25

·

수정됨

0

데이터 분리 단계의 random_state 값을 10, 50, 100, 200, 2022 등등 여러바꾸어보았는데

 

r2값의 편차가 큽니다.

심하면 음수값도 나오고, 높아봐야 0.3정도 수준까지 나와요.

(제공해주신 코드 그대로 쓰면 0.3에 근접하게 나오나, random_state값만 바꿔도 전반적으로 떨어집니다)

 

내가 뭘 잘못했나 하면서.. 혼자서 몇 시간 동안

전처리 단계에서 nunique 수가 많은 object 컬럼을 추가적으로 제거해도 마찬가지고

인코딩 단계에서 one-hot과 label을 바꾸어가며 써봐도 마찬가지고

모델학습 단계에서 하이퍼파라미터값을 조정해봐도 마찬가지입니다...

 

gpt로도 요리조리 돌려봤는데 애초에 데이터의 질 자체가 나쁘면(편차가 큰 경우 등) 코드를 아무리 수정해봐야 평가값 결과가 불안정하게 나온다고 하는데

 

  1. 제가 뭘 잘못하고 있는건지, 해당 문제의 데이터에 문제가 있는건지 궁금해요.

     

  2. 그리고 이런 경우

    실전에서도 이대로 풀이를 하고 제출해도 문제가 없을까요? randomstate 값만 바꿔가다가 train 데이터에서 결과 좋은 걸 찾아 끼워 맞춰봤자, test 데이터에서는 또 전혀 다른 결과가 나올 것 같아서요

    (코드를 제가 잘못짰나 싶어서 공유된 코드 그대로 써도 마찬가지입니다.. random_state값 조금만 바꿔도 평가결과값이 크게 떨어짐)

답변 3

0

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

제가 데이터 셋을 만든지 꽤 시간이 흘러 정확하진 않는데 데이터 크기를 많이 줄여서

머신러닝 모델 학습에 불안정할 수는 있을 것 같습니다.

시험 사이즈에 맞추려다 보니 양해 부탁드려요 !

0

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

제가 사용한 이 데이터 셋은 임의로 생성한 질 떨어지는 데이터는 아니고

입문자 용으로 집값을 예측하는 유명한 데이터 셋입니다.

다만 성능을 올리는 전처리를 알려드리지 않는 이유는 시험과 거리가 멀어지고 과한 심화 학습으로 가는 방향이기 때문이에요! 단순 파라미터 튜닝보단 EDA와 전처리 작업을 많이 해야 됩니다.

 

시험이 얼마 남지 않은 상황에서 기출에서는 이렇게까지 하지 않으셔도 될 것 같습니다.

튜닝없이 2~3개 모델 비교 정도면 충분합니다.

끝에 있는 뒤에 있는 연습 문제를 더 많이 풀어보면서 동일한 패턴으로 실수없이 작성에 집중하시죠!

40점은 튜닝 없어도 인코딩만 하면 잘 나왔습니다.

0

안녕하세요, 인프런 AI 인턴입니다. key.nam님.

랜덤 상태(random_state)는 데이터 분리에 있어 반복 가능성을 보장하기 위해 사용되지만, 데이터의 성격이나 분포에 따라 평가 지표의 결과가 크게 달라질 수 있습니다. 특히 데이터가 불균형하거나, 모델이 특정 데이터 세트에 과적합(overfitting)되었다면, 다른 random_state 값이 결과에 큰 영향을 미칠 수 있습니다.

  1. Random State의 영향:

    • 다양한 random_state 값에 대해 평가 지표가 크게 달라지는 것은 데이터 분포가 변하기 때문일 수 있습니다. 이는 샘플 크기나 데이터의 편향된 분포에 의해 야기될 수 있으며, 로버스트한 성능을 가지기 위해서는 다양한 테스트 셋에 대해 일관된 성능을 보이는 것이 중요합니다.
  2. 평가 지표의 의미:

    • r² 값이 낮거나 음수로 나오는 경우, 모델이 데이터를 잘 설명하지 못함을 의미합니다. 이는 단순히 모델의 문제일 수도 있지만, 데이터의 질이나 전처리의 문제일 수도 있습니다.
  3. 해결 방안:

    • 데이터 전처리: 이상치 제거, 스케일링, 누락 데이터 처리 등으로 데이터를 더욱 최적화할 수 있습니다.
    • 모델 선택: 보다 캡처할 수 있는 고급 모델(LightGBM, XGBoost 등)을 고려해볼 수 있습니다.
    • 교차 검증: 다른 데이터 분할에 대한 안정성을 평가하기 위해 cross-validation을 사용해 보세요.
  4. 실전에서의 접근:

    • 시뮬레이션된 환경과 실제 시험 환경에서는 요구되는 정밀도가 달라질 수 있습니다. 본인이 구현한 베이스라인보다 조금이라도 더 나은 결과가 지속적으로 나온다면, 실전에서는 이 결과를 제출해도 무방할 수 있습니다.

유사한 질문과 답변이 논의된 게시물을 참고해 보시면 추가적인 이해에 도움이 될 것입니다:

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

key.nam님의 프로필 이미지
key.nam

작성한 질문수

질문하기