[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
비전공자, 입문자가 빅데이터 분석기사 실기를 빠르게 취득할 수 있도록 안내해드려요! 이론은 가볍게, 실전은 확실하게 복잡한 배경지식 없이도, 기출문제를 중심으로 시험에 꼭 나오는 포인트만 집중 학습합니다.
수강생 5,753명
난이도 입문
수강기한 12개월


안녕하세요.
제13회 필기시험 접수가 내일(8/7 금) 18:00에 마감될 예정입니다.
혹시 필기 합격 유효기간(2년)이 경과하여 필기시험을 다시 응시하셔야 하는 경우, 기간 내에 접수해 주시기 바랍니다.
▶ 접수 기간: 08.03(월) 10:00 ~ 08.07(금) 18:00
감사합니다.
작업형2
0점 처리와 관련해 문의 주신 분들이 많아,
내용을 영상으로 정리해 봤습니다.결론: (마이너스 예측 값 처리에 대해서는 알 수 없으니) 발표를 기다려 보시죠!!
열심히는 했는데 뭔가 불안한 당신을 위한 마지막 점검
[공통]
help(),dir(),__all__로 모든 걸 해결할 수는 없어요.
막상 시험장에서 처음 쓰면 생각보다 어색하니, 미리 시험 환경에서 테스트 해보세요자리 키보드·마우스·컴퓨터가 이상하면 테스트 시간 직후, 시험 시작 전에 자리 변경을 요청하세요. 중간에 바꾸려 하면 멘탈이 흔들립니다. 문제는 초반에 바로 해결하고 가는 게 좋아요.
여러번 제출 가능한데 한번 제출하고나면 "제출"라고 나타납니다. "제출"로 뜨다보면 다시 제출 한다고 했다가 깜박할 수도 있으니 주의해 주세요. 마지막 제출본으로 체점합니다.
[작업형1]
상단 데이터 탭 → '기본보기' 클릭 후
Ctrl + F로 찾아서라도 확인하세요. "눈으로라도 풀어보겠다"는 마음으로 접근하면 됩니다.정답만 맞으면 됩니다. 과정 코드가 어떻든 상관없어요. 깔끔한 코드보다 정확한 답이 우선입니다.
groupby는 확실히 숙지하고 가세요. 피벗까지는 아니어도 그룹별 집계는 눈으로 풀기 어렵습니다. 이건 코드로 처리해야 해요.결과는 반올림·소수점 자리수·정수 변환 지시를 꼭 확인하세요.
round()를 빠뜨리거나 자리수를 틀려서 정답을 코앞에서 놓치는 경우가 많습니다.정렬 문제는 오름차순/내림차순, 동점 처리를 잘 보세요.
sort_values()의ascending옵션,reset_index여부까지 챙기면 좋습니다.조건 필터링 시
&,|와 괄호를 정확히.df[(조건1) & (조건2)]에서 괄호 빼먹으면 에러납니다.
조건을 cond 변수에 넣는다면 괄호 필요 없음날짜 데이터는
pd.to_datetime()으로 변환 후.dt.year,.dt.month,.dt.dayofweek등을 쓸 수 있게 해두세요. 요일·월별 집계 문제가 종종 나옵니다.자주 쓰는 함수는 손에 익혀두기:
value_counts(),nlargest()/nsmallest(),quantile()(IQR 이상치 문제),fillna(),drop_duplicates(),astype().이상치·결측치 문제는 문제에서 준 기준(IQR, 표준편차, 특정 조건)을 그대로 따르세요. 본인이 아는 방식으로 임의 적용 금지.
[작업형2]
모델을 1개만 쓸 거라면 lightgbm으로 전체 학습하고 끝내면 됩니다.
2~3개 이상 쓸 거라면 검증 후 비교하세요. 평가 지표가 헷갈리면 본인이 확실히 아는 지표로라도 비교하면 됩니다.
rf, lgb, xgb 위주로 보세요. 이 외 모델이 더 좋은 성능을 내는 경우는 아주 드뭅니다.
비교가 끝났다면 전체 데이터로 다시 학습하는 것도 추천해요. 데이터마다 달라 성능 향상을 장담할 순 없지만, 11회처럼 불균형이 심각하다면 저는 전체로 학습하겠습니다.
불균형 데이터라고 파라미터·하이퍼파라미터를 만진다고 성능이 무조건 오르진 않아요. 오히려 기본값일 때 가장 좋은 성능이 나오기도 합니다. 불안하면 기본 + 전체 학습
스케일링에 너무 힘 빼지 마세요. rf, lgb, xgb는 모두 트리 계열 모델이라 스케일링에 따른 성능 변화가 미미합니다.
train/test 컬럼을 똑같이 맞추세요. 인코딩·전처리는 train과 test에 동일하게 적용해야 합니다. 원-핫 인코딩 후 컬럼 개수가 달라지는 실수가 있어요. 아직 기출에서 나온 적은 없지만 예시 문제에 있으니, train과 test를 합쳐서 처리하는 방법도 할 줄 알아야 합니다.
예측 대상(target)을 명확히 하세요. 확률을 요구하는지(
predict_proba), 클래스를 요구하는지(predict) 문제를 정확히 읽으세요. roc_auc면 확률, f1·accuracy면 보통 클래스입니다.제출 형식을 문제 그대로 맞추세요. 파일명, 컬럼명, 인덱스 포함 여부(
index=False)까지. 행의 수 틀리면 0점 입니다.시간이 부족하면 성능향상 욕심내지 말고 일단 lightgbm으로 끝까지 돌려서 제출 파일부터 완성하세요. 완성이 우선, 최적화는 그다음입니다.
[작업형3]
작업형3은 "분석하시오" 같은 서술형·자유 분석 문제가 아닙니다. 문제에서 요구하는 분석만 정확히 시행하면 됩니다. 임의로 분석을 추가하거나 확장할 필요 없어요. 묻는 값만 구해서 출력하세요. 등분산인지 아닌지 문제에서 묻지도 않은 분석 수행 X
C() 사용은 분석 종류에 따라 다릅니다. 여기서 헷갈리는 분이 정말 많아요.
분산분석(ANOVA): 독립변수(범주형)에 모두
C()를 사용합니다.예:
ols('y ~ C(집단)', data=df), 이원배치라면ols('y ~ C(A) + C(B) + C(A):C(B)', data=df)집단 간 차이를 보는 분석이라 독립변수를 범주형으로 처리해야 하기 때문입니다.
회귀 / 로지스틱 회귀:
C()를 함부로 쓰지 마세요.연속형(숫자) 변수는 그대로 넣습니다.
"이 변수는 숫자처럼 보이지만 범주형으로 처리하라"는 명시적 언급이 문제에 있을 때만
C()를 씁니다.임의 판단 금지!
summary() 읽는 법을 반드시 익혀두세요. 회귀·로지스틱 회귀에서 계수(coef), p-value, R-squared, 오즈비 등을 표에서 바로 찾아 답할 수 있어야 합니다. 포기하지 말고 이것만이라도 보고 가세요.
가설검정은 유의수준(보통 0.05)과 p-value 비교가 핵심입니다. p < 0.05면 귀무가설 기각. 어떤 게 귀무/대립가설인지 문제에서 확인하세요.
검정 종류를 정확히 고르세요 (단)일표본/대응(쌍체)표본/독립표본 t검정, 카이제곱(독립성·적합성), 상관분석, ANOVA 등을 보고 판단합니다.
소수점 자리수, 반올림 지시는 작업형3에서도 똑같이 챙기세요.
print()출력도 잊지 말고요.
작업형마다 어려운 문제가 1~2개씩 나올 수 있어요. 그 문제만 붙잡고 시간 다 쓰지 마세요. 어려운 문제는 잠시 두고, 풀 수 있는 다른 문제부터 확실히 검증하면서 점수를 챙기세요. 만점이 목표가 아닙니다. 70점, 합격이 목표예요!여기까지 준비하신 것만으로도 충분히 합격권입니다. 화이팅!! 시험 잘 보고 오세요! 💪
여러분의 합격을 응원합니다. - 퇴근후딴짓-
혹시 모든 문제를 풀어보셨나요?
그렇다면 작업형 2번 (3번 문제)에서 날짜 데이터 파생 변수 생성에도 도전해보세요!아직 거기까지 오지 않으셨다면, 새로운 내용에 욕심 내기보다는 지금까지 공부한 내용을 차근차근 정리하는 것을 추천합니다.

날짜 파생변수 (요일/월/주말) — train, test 둘 다 똑같이! train['date'] = pd.to_datetime(train['date']) train['dayofweek'] = train['date'].dt.dayofweek # 요일(월=0~일=6) train['month'] = train['date'].dt.month # 월(1~12) train['is_weekend'] = (train['date'].dt.dayofweek >= 5).astype(int) test['date'] = pd.to_datetime(test['date']) test['dayofweek'] = test['date'].dt.dayofweek test['month'] = test['date'].dt.month test['is_weekend'] = (test['date'].dt.dayofweek >= 5).astype(int)화이팅입니다!
이번 데이터에 주의 깊게 보셔야할 부분은
전체 데이터(주석 5번) 학습입니다. 비교 후 전체 학습 코드를 넣어놨습니다. 결과를 비교해 보시죠!
파라미터(class_weight, 하이퍼파라미터 등)는 무조건 추가/변경한다고 좋아지지 않는다. 검증셋으로 직접
비교해서 채택 여부를 정해야 합니다.
시험 상황에서 파라미터 판단하기 애매하면 기본값 (설정하지 않은 상태)로 가시죠. 안정적인게 중요할 것 같습니다!
무조건 전체 데이터 학습도 좋습니다!
코딩팡(https://code.sideonai.com/)에 작업형 2 문제 업데이트 했습니다.
빅이시 강의 부분에 모든 코드에 lightgbm 추가했습니다. (

코딩팡 장업형2 베이스 라인 안내드려요. EDA부분은 제외했습니다.
1번 문제
import pandas as pd # 1) 데이터 불러오기 train = pd.read_csv('data/car_train.csv') test = pd.read_csv('data/car_test.csv') # 2) 범주형 변수 원-핫 인코딩 target = train.pop('target') print(train.shape, test.shape) train = pd.get_dummies(train) test = pd.get_dummies(test) print(train.shape, test.shape) # 3) 검증용 분리 (제출 전 성능 비교) from sklearn.model_selection import train_test_split X_tr, X_val, y_tr, y_val = train_test_split(train, target, test_size=0.2, random_state=0, stratify=target) # 4) 세 가지 모델 학습 from sklearn.ensemble import RandomForestClassifier rf = RandomForestClassifier(random_state=0) rf.fit(X_tr, y_tr) pred = rf.predict(X_val) from sklearn.metrics import f1_score print(f1_score(y_val, pred, average='macro')) from lightgbm import LGBMClassifier lgb = LGBMClassifier(random_state=0, verbose=-1) lgb.fit(X_tr, y_tr) pred = lgb.predict(X_val) print(f1_score(y_val, pred, average='macro')) from xgboost import XGBClassifier xgb = XGBClassifier(random_state=0, verbosity=0) xgb.fit(X_tr, y_tr) pred = xgb.predict(X_val) print(f1_score(y_val, pred, average='macro')) # 5) 선택한 모델을 전체 train으로 다시 학습 후 test 예측 (선택) # lgb.fit(train, target) # pred = lgb.predict(test) # 6) 제출 파일 저장 (pred 컬럼 1개만, index 제거) result = pd.DataFrame({'pred': pred}) result.to_csv('result.csv', index=False) # 제출파일 확인 print("\n ===== 제출파일 (샘플) =====") print(pd.read_csv("result.csv").head()) print("\n ===== 제출파일 (크기 확인) =====") print(pd.read_csv("result.csv").shape)2번 문제
import pandas as pd # 1) 데이터 불러오기 train = pd.read_csv('data/bike_train.csv') test = pd.read_csv('data/bike_test.csv') # 2) 범주형 변수 원-핫 인코딩 target = train.pop('count') print(train.shape, test.shape) train = pd.get_dummies(train) test = pd.get_dummies(test) print(train.shape, test.shape) # 3) 검증용 분리 (제출 전 성능 비교) from sklearn.model_selection import train_test_split X_tr, X_val, y_tr, y_val = train_test_split(train, target, test_size=0.2, random_state=0) # 4) 세 가지 모델 학습 from sklearn.ensemble import RandomForestRegressor rf = RandomForestRegressor(random_state=0) rf.fit(X_tr, y_tr) pred = rf.predict(X_val) from sklearn.metrics import root_mean_squared_error print(root_mean_squared_error(y_val, pred)) from lightgbm import LGBMRegressor lgb = LGBMRegressor(random_state=0, verbose=-1) lgb.fit(X_tr, y_tr) pred = lgb.predict(X_val) print(root_mean_squared_error(y_val, pred)) from xgboost import XGBRegressor xgb = XGBRegressor(random_state=0, verbosity=0) xgb.fit(X_tr, y_tr) pred = xgb.predict(X_val) print(root_mean_squared_error(y_val, pred)) # 5) 선택한 모델을 전체 train으로 다시 학습 후 test 예측 (선택) # lgb.fit(train, target) # pred = lgb.predict(test) # 6) 제출 파일 저장 (pred 컬럼 1개만, index 제거) result = pd.DataFrame({'pred': pred}) result.to_csv('result.csv', index=False) # 제출파일 확인 print("\n ===== 제출파일 (샘플) =====") print(pd.read_csv("result.csv").head()) print("\n ===== 제출파일 (크기 확인) =====") print(pd.read_csv("result.csv").shape)작업형1, 작업형3 모의문제를 업데이트했어요! 🎉
시험 환경과 최대한 비슷하게 풀 수 있도록 코딩팡 사이트를 만들었는데요, 거기에 새 문제들을 올렸습니다.
실제 시험처럼 코드를 직접 짜면서 풀 수 있으니, 꼭 들어와서 연습해보세요 😊 시험 꼭 합격하길 바랍니다!
👉 코딩팡 링크: code.sideonai.com

아직 베타 버전이라 혹시 버그가 있다면 알려주세요!
시험이 일주일 앞으로 다가왔네요.
빅분기 준비 라이브 일주일 전 모임(6.13) 녹화본을 공유합니다.
한 시간 짜리라 빠른 배속으로 한번 쭉 훑어보세요!
모두 화이팅입니다 :)

(전체 강의 시간으로 12회 시험 후 삭제예정)
시험이 2주 앞으로 다가왔습니다!
시험 환경을 한번 살펴보시기 바랍니다.
(확인만 해보시고, 실제 학습은 속도를 위해 기존 코랩에서 계속 진행해 주세요!)다만 실제 시험 환경에서는 외부 링크로 데이터를 불러오거나 파일을 업로드하는 것이 불가능합니다.
이 점을 보완하기 위해, 기존에 사용하시던 링크 방식과 파일 업로드가 모두 가능한
"코딩팡" 베타 버전 환경을 새롭게 만들어 보았어요
아직 베타 단계라 미흡한 부분이 있을 수 있습니다. 사용해 보시고 불편한 점이 있으면 언제든 피드백 주세요. 적극 반영하겠습니다. 🙏
크롬(Chrome) 브라우저 권장드리며, 실행 속도는 사용자 노트북(PC) 성능에 따라 달라질 수 있어요!






