inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

11회 2유형

11회차 2유형 질문.

55

parkjh980226

작성한 질문수 6

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)

자료실 문의합니다. AIDU 툴 다운받으려고합니다.

0

2

0

수강연장요청 문의

0

3

1

저장 공간

1

16

2

수업자료 안열림

0

11

0

41강 1분 39초 영상에서 import test_module이 조회 안 돼요.

0

14

1

실습파일이 제대로 올라와 있지 않습니다.

0

10

1

정처기 26-2회. 9번 질문드립니다!

0

26

1

1-11 소수 나열하기 (에라토스테네스의 체)

0

15

0

이론 보면서 질문이 있습니다.

0

29

2

테마 개발의 한계, 업종이 대체 할 수 있을까요?

0

17

2

정보처리기사 실기 26년 2회 SRT 스케줄링 문제 단위 질문

0

37

2

유튜브(정보처리기사 실기 | 26년 2회 기출문제 코드 해설)

0

53

2

262 정처기 실기 C언어코딩

0

24

1

정보처리기사 262 실기 Hash(해시) 질문

0

44

2

static 변수 질문입니다.

0

35

2

파이썬 4강 질문입니다.

0

46

2

colab 코드 실행시 error

1

28

2

모의고사 1회 3번문제

0

75

3

41강 30:10

0

50

2

이론 공부법 질문 있습니다.

0

71

2

7회 3유형 2번문제 질문

1

38

2

알고런io 이용 관련 문의

0

52

1

강의내용관련

0

54

1

기출문제 pdf 없음

0

64

2