📂 Etc/✨ 데이터 관련 자격증 후기

[ADP] 데이터 분석 전문가 29회, 30회 실기 후기

민이언즈 2023. 9. 13. 20:32

ADP는 29회, 30회 이렇게 두 회차를 봤는데

29회차 후기를 따로 포스팅하지는 않아서 이 포스팅에서 짧게 같이 다뤄보려고 한다.

 

장소 : 서울은 역시나 서일대 배양관

 

29회 첫 시험 짧은 후기

복기는 데이터 마님 사이트에서 잘 해주셔서, 복기 토대로 다시 풀어보았다. 

29회 머신러닝 풀이 : https://github.com/Minju-nimm/ADP/blob/master/ML/29%ED%9A%8C_ML.ipynb 

 

  • 난이도 : 중상 

29회부터 머신러닝 60점 (2문제;;) + 통계분석 40점 배점으로 바뀌었다. (아마 이 형태로 계속 가지 않을까)

뜬금 머신러닝 2문제라 무엇보다도 시간이 부족해도 너무 부족했었고, 데이터 전처리가 관건이었다. 

일단 데이터 설명도 이해가 안갔고 문제도 대체 무슨 소리인지 가독성이 안좋았다.

그래서 나를 비롯한 많은 사람들이 야구 데이터를 손도 못댔다고 하는데.. ^_^

 

통계는 생각보다 쉽게 나왔는데, 뜬금없는 이항분포 문제가 나와서 시험장에서 당황했었다.

어찌보면 기본적인 문제였는데 통계 검정, 추정만 파고 가서 시험장에선 기억이 안났음..

그리고 29회 시험 전날 베이즈룰 열심히 공부해갔는데 하필이면 소파에 필기본을 두고와서

당당하게 문제를 틀렸다..!! 이것도 결국 실력일 수 있겠지만. 

 

무튼 지금와서 생각해보면 통계만 다 맞췄어도 통과하지 않았을까 해서 아주 살짝 아쉬움 

 

하나 더 추가하자면, 피쳐 중요도를 비롯해서 시각화 할 때 한글 데이터다보니 글자가 깨져나왔는데, 해결을 못했다.

(논란이 있어서 그런지 30회에서는 아예 한글 설정하는 코드 설명이 있었음) 

 


30회 후기

  • 난이도 : 중 ~ 중상 정도? 닿일 듯 닿이지 않는 ADP랄까

생존분석이나 베이지안 회귀 같은 난이도의 문제는 나오지 않아서 다행인가 싶지만..

무튼 이런 계속 이런 방향이라면, 머신러닝은 기초를 물어보는 문제가 나올 것 같다.

그래도 머신러닝 2문제라는 점이 시간을 많이 잡아먹는다.

(솔직히 EDA도 헐레벌떡 해야하는 게 마음에 안듦.)

 

그리고 통계에서 선형계획법의 업그레이드 버전인 수송계획법?이 15점으로 출제됐다..ㅋㅋ

 

여러모로 가성비 좋지 않은 자격증이라고들 하지만 괜한 오기가 생긴다. 

 

30회 문제 복기 & 시험장에서의 풀이 방식

  • 복기 참고 : 내 기억 + 데이터 마님 

머신러닝 첫번째 데이터 : 건강 관련 데이터

1.1 EDA
1.2 이상치 처리?
  • 순서를 비롯해서 정확한 문제 복기인지는 기억이 잘 안나지만 범주/수치형 변수 시각화, info(), describe() 등등으로 EDA함
  • 이상치 처리를 따로 했었나 정확히 기억 안남
  • 결측치 확인 및 제거 

 

1.3 train_test_split 으로 DBP 7:3 비율로 나누고 잘 분리됐는지 분포? 확인
  • 비율 나누기 전 후로 value_counts() 해서 수치 비교함. 또 다른 걸 했나 기억이 잘.. (지금 복기된 문제에 따르면 value_counts 쓸일이 없었던 것 같은데;; 무튼 이 문제가 중요한 것 아니었던 것 같다.)

 

2.1 차원축소 필요성 확인
  • 다중 공선성 확인을 위한 상관 히트맵으로 상관계수 확인
  • 상관성 높아보이는 변수 한 쌍 있었는데 아마 몸무게 & 허리둘레? 얘네 였던 것 같음. 그래서 몸무게가 증가할수록 허리 둘레 또한 증가하기 마련이라는 식으로 이유 서술
  • 차원축소하게 되면 변수 해석이 어려워지고, 본 데이터 경우에는 변수들이 가지는 의미가 명확하므로 차원축소 불필요하다는 식으로 서술

 

2.2 회귀식 가정 확인
  • jarque-bera 등으로 3가지 가정 다 확인하느라 시간 소요
  • 정규성, 등분산성, 선형성 세가지 확인했던 듯

 

3.1 회귀분석 알고리즘 3개 고르고 장단점 비교
  • 랜덤포레스트, lgbm, xgb 선택하고 머신러닝 완벽 가이드책 참고해서 장단점 나름 그럴싸하게 씀

 

3.2  rmse값 기준으로 가장 잘 나온거 선정, 가장 잘나온 모델 K-fold 진행
  • xgb였나 .. rmse가 9 정도였음. 그리고 gridsearch 돌림 (cv는 kfold로 지정해서) 

 

머신러닝 두번째 데이터 : 교통사고? 관련 데이터 (거의 다 범주형 변수)

4.1 요일 컬럼을 생성해서 평일은 평일, 주말은 주말로 만든 파생변수 생성
  • date 칼럼에서 dt.weekday였나 이걸로 요일 추출, def 함수 직접 생성해서 평일, 주말 매핑해줌

 

4.2 사고유형별 각변수 차이 검증 (통계 검정)
  • 거의 다 범주형 변수라 카이제곱 독립성 검정 진행하고, 나머지 하나만 t-test 실행

 

4.3 SMOTE 오버샘플링하고 변수별 빈도를 나타내고 연속형이면 평균을 내라
  • 인코딩 한 후 다시 또 바꾸기엔 시간이 부족해서 0은 뭘 의미하고 1은 뭘 의미한다 이런식으로 서술함
  • 인코딩 적용하고 빈도표 제시하라면 어떤 게 효율적인 방법인지..

 

4.4 로지스틱회귀분석, xgb 분류분석.
영향도 있는 변수 확인하기. (난수 1234 / 단, 기준변수 설정하기 차대사람, 날씨는 맑은 등)

  • 각 모델 실행하고 기준변수 설정하지는 못함.즉 제대로 풀진 못했음

 

내가 겪었던 이슈 :  SMOTE 관련 에러 + 빈도표 제시하라는 문제

이전 기출에서도 SMOTE가 자주 나왔기때문에 나름 열심히 연습했는데, 시험장에서 처음 보는 에러를 맞닥뜨렸다. 

SMOTE 할 때 ndarray 관련 에러가 자꾸 났다. 정확히 어떤 문구였는지 기억나지는 않는다.

 

피쳐들이 대부분 범주형 변수였기때문에 인코딩 관련 에러인가 싶었는데

이 문제 해결하느라 시간을 엄청 소요했다. 

 

찾아보니까 SMOTE는 주로 수치형 변수에 사용되고, SMOTE-NC라는 방법을 사용하면

수치형 및 범주형 변수 모두를 고려할 수 있다고 하는데 이 주제로 추후 포스팅 하려고 한다.  

더 배워가는 거라고 생각하며. ㅠㅠ  

 

삽질 포인트

1. 인코딩 안하고 SMOTE 해서 잘못됨을 인지 

2. get_dummies 함수 썼다가 해결안돼서 다시 LableEncoder 사용

3. 근데 연관 문제로 SMOTE 이후에 빈도표 제시하라는 문제가 있어서 인코딩한 것들을 따로 하나하나 서술해줌 ;

이런 식으로 계속 삽질 하느라 ML 맨 마지막 문제는 덜 푼 상태로 제출했다..

(덧붙이자면, 나름 머신러닝 파트에서 고득점을 취득했지만 이런 부분에서 감점됐을 것으로 생각한다.)  

 

통계분석

5.  공장 수요 공급 도표, 가장 비용을 적게 운송 가능한 조합은? (15점)
  • 선형계획법 문제라고 서술하고, 코딩 하다가 시간 없어서 다 못풀고 제출함

 

6. 헤드셋 판매량 - 연령 관계
6.1 가설설정 
6.2 통계 검정 실시
  • 카이제곱 독립성 검정으로 풀이

 

6명의 자녀를 가진 5 가족 중에 아들과 딸일 확률이 0.5이다.
7.1 딸 4명이 3가족 이상일 확률 
7.2 딸 4명 이상인 가족수의 기대값
  • 1번은 이항분포로 식 구현, binom 함수 사용해서 풀이
  • 2번은 기대값 문제인줄 생각못해서 오답.

 

 

걱정했던 머신러닝은 생각보다 점수가 잘나왔고

통계는 와장창.. 근데 어쩜 내가 덜 신경쓴 부분, 안나올 거라고 생각했던 부분이 나왔을까 의문이다.

안나오겠지 = 높은 확률로 나온다 ...

 

솔직히 선형계획법 관련 문제는 앞으로 또 안나오겠지 했는데 출제됐고,

이항분포도 바로 이전 기출에 나왔기 때문에 연달아 나오진않겠지 했는데 출제된 것이다.. 

 

다음 회차엔 고득점으로 합격할거다 꼭꼭꼭

728x90