자격증 & 문제풀이/자격증 후기

[ADP] ADP실기 20회 후기 (복기 포함)

YSY^ 2021. 3. 30. 00:12

ADP실기 20회 후기 (복기 포함)

ADP실기를 위해 준비한 것들

1. 회귀분석(회귀분석 평가 및 statsmodel을 활용한 회귀 통계 분석, 잔차의 정규성/독립성/등분산성 확인, 변수선택법 등)

2. 분류분석(RandomForest, gradientboost, 로지스틱회귀, 인공신경망 등의 각종 분류방법과 voting 등 각종 앙상블 방법 및 confusion matrix등 분류분석 평가 등)

3. 교차분석, 분산분석(ANOVA), 상관분석

4. 군집분석(KNN, SOM. EM알고리즘 활용 등)

5. 연관분석(Aprori 알고리즘)

6. 표본추출과 T검정

7. 탐색적 요인분석(FA), 주성분분석(PCA), LEE 등 다양한 차원축소법

8. 시계열분석(ARIMA, SARIMA, MARIMA, MA, AR, 정상성 처리 등등)

9. 타겟변수 불균형 처리 해결(언더샘플링, 오버샘플링)

10. 특징선택(분산, 단일변수 선택, 특성중요도 계산)

11. Datetime, Random 등 기타 pandas 활용 함수들

요즘 ADP시험이 시계열을 집중적으로 출제하길래, 시계열을 집중적으로 공부하였다. 하지만 2회연속 시계열이 나왔길래 또 나올까했는데..

 

ADP 20회 문제 및 Review

- 이번 20회부터는 시험범위를 공개하지 않는다고 합니다. 기존에는 대충 기계학습과, 통계분석, 텍스트 마이닝에서 나온다고 그랬는데, 뭘 대단한걸 공개했다고 저것도 공개를 안한다는지 모르겠습니다. 텍스트 마이닝이 출제범위에 포함될때도 있고 아닐때도 있는데 이것도 공개를 안하겠다는 것이고, 이것도 5일전에 공지사항에 올려 대충 알려준것입니다.

- 시험문제를 써서 나올 수 없어 기억에 의존하여 복기하였기에, 문제가 정확하지 않을 수 있다는 점 미리 말씀드립니다.

 

1. 시계열분석(DATA : 온도예측) (총 50점)

- 1년간의 온도 데이터를 줍니다. 독립변수로는 년,월,일,실제온도(실제값-타겟변수), 지연값1(1일 지연 칼럼), 지연값2(2일 지연칼럼), Friend(친구가 예측한 칼럼 ->필요없는 칼럼), foreast_min(예측최소값), foreast(예측값), foreast_max(예측최대값)등의 칼럼이 있었습니다.

- 보통 모든 칼럼 설명을 해 놓는데 foreast_min(예측최소값으로 추정), foreast(예측값 으로 추정), foreast_max(예측최대값으로 추정)은 칼럼 설명이 없었습니다. 문제에서 설명을 해놓는걸 실수한 것인지, 데이터에 실수로 넣은건지, 의도한건지를 모르겠습니다. 이미 실제값이 있는데 예측값을 같이 넣어놓은 것이 무슨 의도로 넣은 건지 모르겠습니다.

1-1 : 데이터 전처리 (10점)

- 문제 : 결측값 처리, 필요없는 칼럼 처리, 데이터 전처리가 되었다는 증명, train/test셋을 어떻게 나눌지 등를 설명해아합니다.

1-2 : 위 데이터를 RandomForest로 검증하고 분석하기(15점)

- RandomForest 예측한계선을 설정하는 방법들을 말하고 어떤 방법을 써야하는지 논해야합니다..(예측한계선인지 정확히 단어가 기억이 안나는데, 단어의 뜻도 뭔지를 모르겠습니다.)

- RandomForest를 활용해 예측 및 검증하고, 데이터 및 파라미터를 조정하여 성능을 강화해야합니다.

- 칼럼별 중요도를 시각화해야 합니다.

1-3 : 위 데이터를 SVM(서포트 백터 머신)으로 검증하고 분석하기(15점)

- SVM 예측한계선을 설정하는 방법들을 말하고 어떤 방법을 써야하는지 논하라.(예측한계선인지 정확히 단어가 기억이 안나는데, 단어의 뜻도 뭔지를 모르겠습니다.)

- SVM를 활용해 예측 및 검증하고, 데이터 및 파라미터를 조정하여 성능을 강화해야합니다.

- 칼럼별 중요도를 시각화해야 합니다.

1-4 최적의 모델 선택하기

- SVM과 RandomForest의 장단점을 논하기

- 위 두모델 중에서 어떤 모델이 좋은지 고르고 그 이유를 설명하기

- 선택한 모델의 한계점을 이야기하고 한계점을 해결할 방법을 설명하기

 

문제 해결(1-1)

- 처음 문제를 보았을 때는 단순 회귀분석인줄 알았으나, 지연값 칼럼이 들어있다는 점, 1년치 데이터라는 점, train/test를 어떻게 나누어야 하는지를 물어보는 점을 보고 시계열 분석이라는 것을 깨달았습니다. (아닐 수도 있습니다만 가능성이 높습니다.)

- 따라서 타겟변수가 비정상적이라는 것을 ADF와 KPSS를 통해 증명한 후, 로그변환 및 차분을 통해 정상화 한 것을 보여주었습니다.

- train/test를 나누는 것은 시간순서를 기준으로 하여 나누었습니다.( 시계열이기 때문에 train_test_split같이 단순히 랜덤으로 7:3으로 나누면 안됩니다.)

- Friend칼럼은 당연히 필요없기 때문에 삭제하였고, 실제값이 주어져있기 때문에 예측값 관련 칼럼들도 삭제하고 시작하였습니다.

- 1년 데이터를 가지고 검증하는 것이기 때문에 Year(년)칼럼도 삭제했습니다.

추가사항(cafe.naver.com/sqlpd/18900 참고)

https://towardsdatascience.com/random-forest-in-python-24d0893d51c0

- 위 링크와 문제가 굉장히 유사하게 나왔습니다. 참고하면 좋을 것 같습니다.

- actual을 기준으로 lag 1, lag2가 맞는지 검증했는데 몇개가 틀리다고 합니다. 데이터의 무결성을 체크하라는 점이 이부분인 것 같습니다.

 

2. 군집분석(DATA : 가구별 15분 단위의 전력사용량) (총 25점)

- 년월일, 시간, 가구코드, 전력사용량 등의 칼럼을 줍니다.

2-1 클러스터링(10점)

- 가구별, 15분 단위로(????) 전력사용량의 합을 구하고, 이 데이터를 군집화하고 다음과 같이 표를 완성시켜라

가구코드 DATE Total_P(전력사용량의 합) Cluster
       
       
       

 

2-2 Heatmap으로 시각화하기(15점)

그룹별로 15분마다의 전력사용량을 요일별로 평균낸것을 Heatmap으로 시각화하라

월요일                  
화요일                  
수요일                  
목요일                  
금요일                  
토요일                  
일요일                  
  1:15 1:30 1:45 2:00 2:15 2:30 2:45 3:00 3:15

위 와 같은 그림으로 각 그룹별로 Heatmap으로 시각화하면 됩니다.(총 5개를 만들어야 합니다.)

 

문제 해결 방안

- 문제는 가구별, 15분 단위로 전력사용량의 합을 구한 다음, 군집화 하라고 하는데.. 애초에 데이터를 15분단위로 줬으면서 어떻게 하라는 건지 이해를 못했습니다.(문제 설명이 정말 거지 같습니다.) 표에서 시간칼럼이 DATE길래 날짜 단위로 합치는 것이라고 판단하여 가구별/일별 단위로 전력사용량의 합을 구한 다음 이를 클러스터링 하였습니다.(K-means를 사용하였지만 어떤 것을 사용하든 문제없습니다)

- 위에서 구한 클러스터링을 다시 원데이터처럼 15분 단위로 만든 뒤 요일별로 전력사용량을 평균낸 다음 그룹별로 히트맵을 만들어야 합니다. 히트맵예시는 시험지에 주어졌으나, 그것과 똑같이 만드는 것이 꽤 어려웠습니다.

 

3. 회귀분석 (총 25점)

- 데이터는 기억이 잘 안납니다. 하지만 회귀분석의 Flow를 보여주면 되는 문제였습니다.(전처리, 스케일링, 모델링, 예측, 검증 등..)

- train/test를 7:3으로 나누고, 검증 후 R2 score/RMSE/정확도 3개 지표를 구해야합니다.

- 회귀분석에는 정확도라는 지표가 없는데(분류분석에만 있습니다) 정확도를 구하는 공식을 주었습니다. 실제값>예측값인 경우 (1-예측값/실제값), 실제값<예측값인 경우 (1- 실제값/예측값)으로 하고 이것들을 평균내면 됩니다.(공식이 정확하지 않을 수 있습니다)

- 위 과정들을 담은 코드를 제출해야 합니다.

- 회귀분석 모델링은 어떤 모델을 쓰든 상관없습니다. 3개문제 중에서 그나마 무난한 문제였습니다.

 

ADP 20회 총평

  다행인지 아닌지 Ramdomforest, SVM 등 그래도 어디서 들어본 것들을 출제해서 저번 19회 처럼 요건 몰랐지(SARIMA 등등...)같은 문제는 없었..다고 생각했는데 예측기준선? 이런거보니 요건몰랐지가 있던 것 같습니다. 난이도는 저번 시험에 비해 굉장히 어려웠습니다. 4시간을 꽉 채우고도 시간이 부족했을 정도였습니다. 또한 언제나 그랬듯이 문제 설명이 굉장히 빈약한 것이 문제였습니다. 위에 문제 복기한 것을 읽어보면 이해 안되는 것들이 종종 있을 텐데, 문제가 기억이 안나서 그렇기 보다는, 저부터 문제가 이해가 제대로 안되어서 그렇습니다. 

  그리고 요즘따라 시계열을 정말 좋아하는 것 같습니다. 제 예상처럼 첫번째 문제가 시계열이였다면, 3번연속 50점짜리 문제를 시계열문제로 낸 것입니다. 시계열이 계속 나오길래 시계열을 좀 공부를 했었습니다. 하지만 설마 또 나올것이라고는 예상하지 못했습니다..

아직 결과는 나오진 않았지만.. 1번문제에서 여기저기 못쓴것들이 많아 또 다시 시험을 봐야할것 같습니다. ㅠㅠ 이번에 시험보신 분들 고생많으셨습니다.

그나저나.. RandomForest와 SVM의 '예측기준선'에 대해 아시는 분들은 답글 좀 부탁드리겠습니다 ㅠㅠㅠ

 

** 위 후기에 대한 피드백은 언제든지 환영입니다 **

728x90
반응형