인프런 커뮤니티 질문&답변
train_test_split, ttest_1samp
해결된 질문
작성
·
73
·
수정됨
0
안녕하세요!
세가지 질문 있습니다
[작업형 2 관련]
오늘 유형2에서 train_test_split을 사용 못하고
point = int(len(train)*0.8)
x_tr = train[:point]
x_val = train[point:]
와 같은 형태로 앞에서부터 자른 데이터로 학습/검증 진행했는데..
이런 경우에, train_test_split 을 사용했을때보다
점수가 많이 낮을까요? ㅜㅜ
pred == y_val 단순 비교 시 87% 일치했습니다
(object type column과 결측치는 없어서 인코딩은 생략했습니다 )
[작업형 3-1 관련]
1번문제가 특정값=N일 때와 비교하여
특정값=P일때의 종속변수 오즈비 구하는 문제였는데
특정값=N인 경우는 coefficient가 안나오더라구요..
np.exp(P인 경우의 coefficient)로 제출했는데
제가모델 만들때 뭔가 빠트린걸까요?
[작업형 3-2 관련]
동일집단의 전후 비교를 물어봐서 대응표본검정 문제 같았는데,
집단의 과거 시점 데이터 중에 주어진건
특정 컬럼의 “평균값“이라서,
단일표본검정 문제를 풀듯이
ttest_1samp(df[“A“], (A의 과거 평균값) )
으로 넣고 풀었습니다.
정확한 출제 내용 없이 질문드려서 좀 그런데..
제가 유형 분석을 맞게 한걸까요?
답변 2
0
[작업형 2 관련]
큰 문제 없지만
불균형 데이터여서 한쪽에 2값이 완전히 없을까 걱정이되네요!!
그래도 2의 데이터 수가 작아서 괜찮을 것 같습니다.
[작업형 3-1 관련]
범주형 변수 있때 자동으로 1개 컬럼이 제거되는 것이 맞습니다(다중공선성 문제)
알파벳 순으로 첫 컬럼이 제거됩니다
[작업형 3-2 관련]
네 맞아요 대응같은 단일표본으로 보여집니다 ㅎㅎ
고생 많으셨습니다:)
문제 파악하느라 답변이 늦었네요!!
0
안녕하세요, 인프런 AI 인턴입니다. osy님.
질문 주신 내용은 train_test_split 대신 데이터셋을 수동으로 나누는 방법에 대한 것입니다. train_test_split 함수를 사용하면 데이터를 랜덤으로 분할하기 때문에 데이터의 분포를 더 잘 반영할 수 있습니다. 반면, 데이터셋을 앞에서부터 특정 비율로 잘라서 나누는 경우, 데이터가 정렬되어 있을 경우에는 학습 데이터가 대표성을 잃을 가능성이 있습니다.
수동 분할 방식의 장단점
장점:
- 데이터가 시간순으로 정렬되어 있는 시계열 데이터와 같은 경우에는 수동으로 나누는 방식이 더 적절할 수 있습니다.
- 데이터가 시간순으로 정렬되어 있는 시계열 데이터와 같은 경우에는 수동으로 나누는 방식이 더 적절할 수 있습니다.
단점:
- 데이터가 특정 패턴에 따라 정렬되어 있는 경우, 수동 분할은 데이터의 대표성을 떨어뜨리고, 모델이 특정 유형의 데이터를 더 많이 학습하게 되어 성능이 떨어질 수 있습니다.
- 결과적으로 비슷한 조건의 다른 데이터에 대해서는 예측력이 떨어질 가능성이 있습니다.
- 데이터가 특정 패턴에 따라 정렬되어 있는 경우, 수동 분할은 데이터의 대표성을 떨어뜨리고, 모델이 특정 유형의 데이터를 더 많이 학습하게 되어 성능이 떨어질 수 있습니다.
점수가 0.87이라면 꽤 좋은 성과를 얻으신 것 같지만, 데이터를 랜덤으로 분할해서 사용하면 더 다양한 상황에서의 모델 성능을 검증할 수 있습니다. 한번 train_test_split을 사용해 비교해보시는 것도 좋습니다.
유사한 내용이 강조된 게시물을 아래 링크에서 확인하실 수 있습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





