inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

빅데이터분석기사 실기 기출 완전정복 [전 회차 수록 ·계속 업데이트 · 전용 실습환경 제공]

11회 2유형

11회차 2유형 질문.

25

parkjh980226

작성한 질문수 5

1

실습에서 문제에 언급이 안된 내용들이 들어가있는데(train -> train,val분할이라던지, 정확도나 auc 구하기라던지

실제 시험에서도 이런 내용도 추가해주는것이 좋은가요?
아니면 인코딩->(분할x)학습->test_x 삽입 이런식으로 결과만 내도 되는건가요?

python pandas statistical-test sklearn 빅데이터분석기사

답변 1

1

알고런 데이터코드 연구소

안녕하세요. 알고런입니다.


질문에 대해서 결론 부터 말씀드리자면,

시험 자체만을 두고 봤을 때 Validation 데이터로 분할하여 정확도, auc 등을 구하는 게 필수는 아닙니다. 시험에서 2유형은 코드 작성 과정이 아니라 제출한 예측 결과(CSV)의 성능만으로 채점됩니다. 따라서 질문처럼 인코딩 → 학습 → test 예측 → 제출, 이렇게 결과만 내도 답안으로 전혀 문제없습니다.

(물론, 실무에서는 100% 데이터를 validation으로 분할하여 정확도, auc 등의 성능 지표를 확인합니다.)


하지만, 시험 칠 때 시간이 절대적으로 부족하거나 코드에 익숙하지 않은 경우를 제외하고는..

가급적이면 validation 데이터셋을 이용해서 여러 성능 지표를 점검해보시기를 권해드립니다.


그 이유는 제출 전에 실수를 하지 않았나, 스스로 점검할 수 있기 때문입니다. 시험장에서는 test의 정답을 알 수 없습니다. 그래서 train 일부를 떼어 검증해 보면, 제대로 문제를 풀었는지 확인해볼 수 있습니다. 예를 들어 다음과 같은 점을 알 수 있습니다.


  • AUC가 0.5 근처로 나온다 → 인코딩 실수, 컬럼 누락 등 모델이 깨졌을 수 있다는 신호를 제출 전에 발견 가능. AUC 의 값은 0.5 ~ 1.0 사이의 값이 나오며 0.5에 가까울 수록 성능이 낮은 겁니다.

  • 확률(predict_proba)을 내야 하는데 라벨(predict)을 내는 흔한 실수도 자연스럽게 걸러낼 수 있음



3~5분 투자로 40점짜리 문제의 치명적 실수를 막아주는 보험이라고 보면 좋겠습니다.


제가 권장하는 코드 작성 흐름은 아래와 같습니다.


  • 인코딩 → train/val 분할 → 학습 → val 성능 확인 → test 예측 → 저장


이때 전체 데이터로 재학습하는 단계를 한 번 더 가져도 좋습니다. 실무에서는 하이퍼파라미터 튜닝 등을 통해 성능을 향상시키는 작업을 하겠지만, 시험에서 하이퍼파라미터 튜닝은 좀 어려울 수 있습니다. 그러니 데이터를 분할하지 않고 전체 train 재학습 과정을 다시 거치는 것도 시험용으로는 나름 괜찮아 보입니다.


  • 인코딩 → train/val 분할 → 학습 → val 성능 확인 → 전체 train 재학습 → test 예측 → 저장


아래는 빅분기 실기 2유형 파이썬 기본 골격 코드입니다. 코드 골격을 익혀 놓으시면 실수를 줄일 수 있습니다. 그럼 수고하시구요. 시험 잘 보시길 응원하겠습니다. 감사합니다.


python

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier #랜덤포레스트는 성능이 좋은 편임 
from sklearn.metrics import roc_auc_score #문제에서 원하는 성능 측정 함수 추가 

# 1. 데이터 로드 및 인코딩
train = pd.read_csv('train.csv')
test = pd.read_csv('test.csv')
X = pd.get_dummies(train.drop(columns=['target'])) #원핫인코딩 
y = train['target']
X_test = pd.get_dummies(test) #테스트용 데이터 원핫인코딩 

# 2. [검증용] 분할 후 성능 확인 — 채점과 무관, 문제 풀이 단계에서 확인용
X_tr, X_val, y_tr, y_val = train_test_split(X, y, test_size=0.2, random_state=42)
model = RandomForestClassifier(random_state=42)
model.fit(X_tr, y_tr)
print('val AUC:', roc_auc_score(y_val, model.predict_proba(X_val)[:, 1]))
# → 0.5 근처면 어딘가 잘못된 것. 제출 전에 발견 가능

# 3. [최종] 전체 데이터로 재학습 후 예측·제출
model.fit(X, y)     #이 단계는 생략 가능. 전체 데이러토 재학습 하는 과정. 실무에서는 미수행
pred = model.predict_proba(X_test)[:, 1]  # 확률 요구 시. 라벨 요구 시 predict()
pd.DataFrame({'pred': pred}).to_csv('result.csv', index=False)

강의 자료를 어디서 확인 할 수 있나요?

0

7

1

FRED API

0

12

0

캐글 제출 점수

0

7

1

VCP 시그널 상태 추가 스크립트 에서 return_pct 조건

0

14

2

캐쉬가 업데이트 안됩니다.

0

13

2

기출 마무리 방법

0

22

1

제가 AWS 에 배포했는데

1

15

1

빅이시 작업형2 기초 - 케이스 1~3 관련 문의

0

13

1

갑자기 stock_prediction은 어디서 발생한건가요?

1

19

2

pipeline/run-buy-pipeline 실행시 "LLM호출전체실패"에러발생

1

18

2

데이터프레임 슬라이싱 인덱싱 질문2

0

15

2

SSL 발급할때 HTTP로 진행하는 이유가 궁금합니다.

0

14

2

단일표본검정, 샤피로검정, 윌콕슨검정

0

25

2

강의자료 다운로드 여부

0

26

2

2-14.\x02 안보임 관련

0

16

0

문제에 첨부된 예시와 실제 출력된 샘플 비교

0

23

2

원핫 인코딩 관련

0

32

2

오늘 처음으로 자동매매가

1

32

2

타겟 분리

0

28

2

Id 삭제

0

31

2

roc_auc_score 질문: 작업형2 모의문제3 09분 48초

0

29

2

알고런io 이용 관련 문의

0

28

1

강의내용관련

0

35

1

기출문제 pdf 없음

0

40

2