inflearn logo
강의

Khóa học

Chia sẻ kiến thức

[2026] Chinh phục toàn diện đề thi thực hành Kỹ sư Phân tích Dữ liệu lớn [Đã bổ sung kỳ thi lần thứ 12. Bao gồm tất cả các kỳ thi · Liên tục cập nhật · Cung cấp môi trường thực hành chuyên dụng]

Lần 11, loại 2

11회차 2유형 질문.

103

작성자 없음

1

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

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

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

Câu trả lời 1

1

algolearn

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


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

시험 자체만을 두고 봤을 때 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

0

xgboost 사용 시 오류 이유

0

14

2

강사님 강의 더 주세요

0

13

0

<핸즈온 머신러닝 with 사이킷런, 파이토치> 예제 코드 해설 쿠폰관련

0

19

3

작업형 2 제출하는 법

0

35

2

Section 5. 문자열 슬라이싱, 파생변수, 평균값 질문 드립니다.

0

20

1

예시문제 작업형2(ver. 2025)

0

23

2

수강 연장 문의드립니다.

0

35

2

강사님 강의 잘듣고있습니다! 오류관련 질문 드립니다!

0

30

0

예시문제 작업형2(ver. 2025)

0

37

2

작업형2 모의문제 3 질문

0

42

1

오랜만에 인사드립니다 강사님

0

30

1

수강연장 관련 문의

0

52

2

강의신청 후

0

44

1

안녕하세요 강사님 문의사항이 있습니다

0

40

1

수강 연장 문의

0

80

4

수강기간 연장 관련 문의

0

57

2

작업형2모의문제3_updated2026.10

0

75

2

안녕하세요. 수강연장 신청드립니다

0

51

2

코랩 링크

0

47

2

7회 3유형 2번문제 질문

1

79

2

알고런io 이용 관련 문의

0

90

1

강의내용관련

0

87

1

기출문제 pdf 없음

0

101

2