제 10회 빅데이터분석기사 실기 복원, 후기, 팁

2025. 6. 23. 17:37·일상

1. 시험 일자

2025년 6월 21일 토요일 오전 10시

 

2. 공부 방법

2 - 1. 선택한 공부 자료는 인프런 강의

지난 9회차에 빅분기 합격한 친구에게 빅데이터분석기사 실기 PDF를 받았다. 

그런데 나는 '퇴근후 딴짓'님의 인프런 강의를 수강했다. 이유는 다음과 같다. 

1. 종강후 7일 뒤 시험. 시간이 없다.

2. 다음 실기 시험이 11월, 너무 오래 기다려야함... 확실하게 1트에 합격하고 싶었다.

 

솔직히 시간 넉넉하고 파이썬에 기본 지식이 있다면 넉넉하게 1-2주 잡고 실기책으로도 충분히 공부가 가능하다...!

 

2 - 2. 실제로 어떻게 공부함?

계획은 종강 후 7일 동안 인프런 강의 보기!....

그러나 하나은행 체험형 인턴 공고가 나서... 거기에 더 집중했다..

하나은행 IT 인턴 진짜 붙고싶어서 자기소개서 두 번을 갈아엎었다.

제출하고 보니 목요일... 나에게 남은 시간은 48시간

 

그래서 목요일에 짠 기본 전략은 이랬다.

작업형 1은 과거 학부수업 '빅데이터분석개론'에서 판다스 좀 돌려본 경험을 믿고 기초 문법은 대충 봤다. 그리고 groupby, unstack, merge 같이 데이터 구조 변형에 대해 시간을 투자했다. + 시간 변환 (pd.to_datetime)도 공부했다. 왠지 나올거같아서..!

 

작업형 2는 주어진 데이터를 보고 분류, 회귀 모델을 만들면 된다.

과거 학부수업 '인공지능개론'에서 인공신경망 모델과 트랜스포머까지 구축해본 경험이 있기 때문에, 모델 프로세스를 이해하는 데 어렵지 않았다. 그치만 외울 코드가 있어서 작업형2 개념 부분을 정독하고 모의고사 문제 풀이는 강의를 안보고 직접 풀었다.

 

작업형 3은 10점만 맞자는 마인드였다.

그래서 시험 5시간 전에 봤다. 고사장 입장 5시간 전 스터디카페를 빌려서 희준이랑 같이 작업형3 부분을 공부했다.

저번 기출에서 다중선형회귀, 로지스틱회귀가 나온걸 보고 이 둘중 하나는 무조건 나오겠다 싶어서 그부분만 공부했다.

근데 이번 시험에 다중선형회귀, 로지스틱회구 둘 다 나옴ㅋㅋ

 

3. 시험

가채점이 어렵다... 모든 답이 소수점 셋째자리까지 반올림해서 제출이라 답을 외우기 힘들었다.

그래도 네이버 카페에 복원된 문제와 후기를 보면서 합격할 거 같은데...? 라는 생각이 듦

 

3 - 1. 작업형 1

[문제 1]

[주어진 데이터]
대주제,소주제,(무슨 id),(학생 id),(정답 여부: 0,1)

[문제]
정답률 = (정답인 학생 수) / (응답 학생 수)라 할 때,
각 소주제별 정답률이 세 번째로 높은 소주제의 정답률
단, 정답률이 같으면 같은 등수로 취급. (ex 0.7, 0.61, 0.61, 0.5 이면 0.5가 세번째임)

[나의 풀이]
1. groupby로 '소주제' + '정답 여부'로 묶은 다음 unstack했다.
2. unstack한 다음 (정답인 학생 수) / (정답 + 오답 학생 수)로 정답률을 계산
3. 혹시나 하고 같은 등수가 있는 지 봤는데 있었다. 그래서 답을 0.568?으로 제출했던 기억이..
[문제 2]

[주어진 데이터]
order_date,category,item,price
​
[문제]
1) 연월별 매출액(price) 합계 중 두 번째로 큰 연/월의 매출액(price)
2) 연월별 매출액(price) 합계 중 네 번째로 큰 연/월의 범주(category)별 매출액(price) 합계의 최댓값

[풀이]
object 타입인 order_date만 datetime으로 변경하면 아주 쉬운 문제
1. order_date을 pd.to_datetime(df['order_date'], format="%Y.%m.%d %H:%M")로 바꾸기
2. df['order_date'].dt.year, df['order_date'].dt.month로 파싱한 새로운 컬럼 만들기
3. year와 month로 그룹화하여 2번 3번 구하기

 

[문제 3]

[주어진 데이터]
레이블(spam:스팸, ham:스팸아님)
내용 (메일 내용 
​
[문제]
Lorem Ipsum is simply dummy text of the printing and typesetting industry
이런 문자열이 있으면 띄어쓰기를 통해서 단어 개수를 구분하는 것..!
"Hi Hello Bye" <- 띄어쓰기가 2개 이므로 2+1해서 단어 개수가 3개!

제출하는 답은 레이블이 'spam'인 단어 수의 평균값, 레이블이 'ham'인 단어 수의 평균값의 차이의 절댓값이다.

[풀이]
str을 이용해서 띄어쓰기개수만 구해서 새로운 컬럼을 만들면 결국 쉬운 문제... 근데 str 메서드를 모른다.
그래서 바로 help(str) 돌려서 메서드 다 찾아봄 그저 갓...
1. str.count(df['내용'], " ") 정확하진 않지만 이 메서드를 사용해서 띄어쓰기 개수를구함
2. 구한 띄어쓰기 개수 + 1해서 df['단어수'] 컬럼 생성
3. label로 그룹화하여 spam과 ham 데이터 분리하여 답안 구함

 

3 - 2. 작업형 2

평가지표 RMSE
회귀 모델 사용

특이하게 결측치는 0으로 채워놨다고 문제에서 명시함.

[풀이]
1. 결측치 이상치 확인 후 별 문제 없어서 그냥 인코딩함. (One-Hot, Label 모두 해봄)
2. 모델은 RandomForest, LightGBM 모두 사용해서 비교
3. RMSE 사용해서 평가지표 비교
4. 제출

[이슈..?]
문제에서 결측치를 0으로 채워놨다고 했는데....
실제로 0인 데이터랑 결측치라서 0으로 채워놓은 데이터를 구별할 수 없다고 판단했음.. 따라서 결측치를 내 임의로 제거하지 않음. 
RMSE 평가지표는 One-Hot인코딩 + RandomForest 사용해서 567.XXX 정도 나와서 해당 모델로 제출했다.

 

3 - 3. 작업형 3

[문제 1]
로지스틱 회귀 문제

맨처음은 모든 독립 변수로 모델 돌리기 -> 유의미한 독립 변수들로 모델 새로 만들어 돌리기 
위 과정에서 문제는 회귀계수합, 결정계수 등등을 제출하라고 함. 

[풀이]
5시간 전에 외운 상태라 기억이 잘 났다.
1. from statsmodels.formula.api from logit하고
logit("종속변수 ~ 독립1 + 독립2 ...", data = df).fit()
2. model.summary()해서 확인
3. model.params로 회귀계수 확인할라는데 자꾸 Sereis 뭐시기 오류떠서 그냥 보이는 수치로 더함

 

[문제 2]
다중 선형 회귀 문제

맨처음은 모든 독립 변수로 모델 돌리기 -> 유의미한 독립 변수들로 모델 새로 만들어 돌리기 
위 과정에서 문제는 회귀계수합, 결정계수 등등을 제출하라고 함.  + Odds도 구하라고 했던거같음

[풀이]
5시간 전에 외운 상태라 기억이 잘 났다.
1. from statsmodels.formula.api from ols하고 ols("종속변수 ~ 독립1 + 독립2 ...", data = df).fit()
2. model.summary()해서 확인
3. model.params로 회귀계수 확인할라는데 자꾸 Sereis 뭐시기 오류떠서 그냥 보이는 수치로 더함
4. import numpy as np해서 np.exp로 odds 구함

 

4. 시험 총평

9회에 비해서는 쉬웠다.

솔직히 인강 없이도 일주일 풀로 공부했으면 비슷하게 풀었을 거 같다.

다만, 시간이 부족했던 나에게 인프런 강의는 최고의 선택이었음..!

 

5. 팁

라이브러리 외우기 진짜 귀찮은데 dir()로 확인할 수 있다.

import sklearn하고 dir(sklearn)하면 관련 라이브러리가 모두 나옴

이걸로 model_selection, ensemble, preprocessing 외울 필요 없이 다 적을 수 있음 (물론 공부하다 보니 그냥 외워짐...)

참고로 lightgbm은 sklearn에 없으므로 외우는 걸 추천

 

작업형1에서 최소 20점 맞고 들어가는 게 제일 좋은 전략 같음

to_datetime 공부하면 좋고, 이번에는 크게 중요하지 않았지만, 데이터 구조 변형하는 함수는 시험이 어려울 경우 잘 활용하면 쉽게 풀 수 있어서 익숙해지는 게 좋다고 생각함.

 

작업형 2는 그냥 회귀, 분류 프로세스만 외우면 무난무난.

뭔가 11회는 결측치 처리 or 대체가 있을 거 같음. 이상치도..?

 

작업형 3은 로지스틱회귀, 다중선형회귀가 가성비인 듯.

 

6. 결과

7/4일에 사전 점수 발표..! 기다려봅시다..!

 

생각보다 점수를 후하게 받았다!

나도 이제 쌍기사 오우너...

'일상' 카테고리의 다른 글

2025 하반기 ICT 인턴십 코딩테스트 후기  (1) 2025.07.14
현대 소프티어 6기 코딩테스트 후기  (0) 2025.06.02
WIS 2025 방문 후기  (0) 2025.05.01
2025년 1회차 정보처리기사 실기 후기  (1) 2025.04.25
빅데이터분석기사 필기 10회 후기  (0) 2025.04.07
'일상' 카테고리의 다른 글
  • 2025 하반기 ICT 인턴십 코딩테스트 후기
  • 현대 소프티어 6기 코딩테스트 후기
  • WIS 2025 방문 후기
  • 2025년 1회차 정보처리기사 실기 후기
koreaioi
koreaioi
  • koreaioi
    koreaioi
    koreaioi
  • 글쓰기 관리
  • 전체
    오늘
    어제
    • 분류 전체보기 (162) N
      • JAVA (3)
      • 알고리즘 (88)
        • 백준 (11)
        • String(문자열) (12)
        • Array(1, 2차원 배열) (13)
        • Two pointers, Sliding windo.. (6)
        • HashMap, TreeSet(해쉬, 정렬지원 S.. (5)
        • Stack, Queue(자료구조) (8)
        • Sorting and Searching(정렬, 이.. (10)
        • Recursive, Tree, Graph(DFS,.. (14)
        • DFS, BFS 활용 (6)
        • 다시 시작! (1)
        • 기초 수학 (1)
      • 일상 (22)
      • Github (1)
      • MSA 공부 (4)
      • 경제, 금융, 디지털, 시사 (3)
      • 라즈베리파이 (10)
      • 프로젝트에서 일어난 일 (18)
      • FrontEnd 공부 (9)
        • React (8)
      • Spring (2)
      • 기술 세미나 (1)
      • DB (1) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
koreaioi
제 10회 빅데이터분석기사 실기 복원, 후기, 팁
상단으로

티스토리툴바