Inflearn brand logo image

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

이진욱님의 프로필 이미지
이진욱

작성한 질문수

[2025년 최신 기출 반영] 빅데이터 분석 기사 실기 시험 100% 합격 ! 기출 문제의 패턴이 보인다 !

3회 작업형2 문제1

작업형 유형 2에서,,, train, test, split 시 성능

작성

·

62

0

안녕하세요

선생님 덕분에 열심히 공부하고 있습니다.

 

질문 있습니다.

 

작업형 유형 2

분류든 회귀든 랜덤포레스트 할때,

train_test_split 할때와 하지 않을때

f1_score나 accuracy_score 등 성능점수에 차이가 보입니다. (데이터 분할 시 성능이 더 낮게나옴)

 

제가 직접 해봤을 때

1. train_test_split 한 이후

x_val_pred = model.predict(x_val)

accuracy_score(x_val_pred, y_val) 성능 점수

 

2.별도 train_test_split 안하고

y_hat = model.predict(x_train)

accuracy_score(y_hat, y_train)시 성능점수

 

데이터를 분리한 1의 성능점수가 더 낮게 나오는데

왜 그럴까요,,,, ㅜㅜ

 

 

 

답변 2

0

코딩 대한민국님의 프로필 이미지
코딩 대한민국
지식공유자

네 ~ 답변드립니다. 데이터를 분할 했을때 성능이 낮게 나온 이유는 과적합 때문입니다.

2번 방법이 성능이 더 좋은 이유는 훈련할때 다 공부한 데이터로 그대로 시험을 보았기 때문에 더 좋은 결과가 나온거구요. 1번은 공부할때 한번도 보지못한 문제를 봐서 성능이 낮게 나온겁니다

0

안녕하세요, 인프런 AI 인턴입니다. 이진욱님께서 질문해 주신 train_test_split을 사용한 경우와 사용하지 않은 경우의 성능 차이에 대해 설명드리겠습니다.

train_test_split과 성능 차이

train_test_split을 사용하면 데이터를 훈련 데이터와 검증 데이터로 나누어 모델을 학습시킵니다. 이 과정에서 모델의 일반화 능력을 평가하기 위해 검증 데이터를 사용합니다.

  1. train_test_split 사용 (1번 케이스):

    • 훈련 데이터로 모델을 학습하고, 검증 데이터에서 모델의 성능을 테스트합니다.
    • 모델은 훈련 데이터에는 최적화되어 있지만, 검증 데이터는 처음 보는 데이터일 수 있어 성능이 다소 낮을 수 있습니다. 이는 모델이 훈련 데이터에 과적합되었다는 신호일 수 있습니다.
  2. train_test_split 미사용 (2번 케이스):

    • 데이터를 나누지 않고 전체 데이터를 훈련에 사용하고, 같은 데이터에서 모델의 성능을 측정합니다.
    • 이 경우 성능이 더 좋게 나오기 쉬운데, 이는 모델이 훈련 데이터에 과적합되었고, 새로운 데이터에 대한 일반화 능력이 낮을 수 있음을 의미합니다.

왜 차이가 있는가?

  • 과적합(overfitting): 모델이 훈련 데이터에 과도하게 맞춰져 있어서 검증 데이터나 새로운 데이터에 대해 일반화된 예측을 잘 하지 못하는 경우입니다. train_test_split을 통해 검증 데이터에서 성능을 평가하면, 과적합 여부를 확인할 수 있습니다.
  • 일반화 능력: 데이터 분리를 통해 모델이 실제 환경에서 다양한 패턴을 처리할 수 있는지를 평가할 수 있습니다. 분리하지 않은 경우는 같은 데이터 세트로 평가를 하게 되기 때문에 항상 높게 나올 가능성이 있습니다.

참고할 자료

기존에 유사한 질문에 대한 토론이 있는 자료를 추천해드립니다:
- “훈련 데이터와 테스트 데이터의 성능 평가 차이”
- “train_test_split의 중요성 및 사용법”

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

이진욱님의 프로필 이미지
이진욱

작성한 질문수

질문하기