데이터분석

ADP 합격후기

늘근이 2018. 8. 27. 02:04

더이상 기억이 사라지기 전에 적어놓는 ADP 최종 합격후기.10회차 실습을 끝으로 졸업을 하게 되었다.

경영대를 다니면서도 통계 개념들은 재무나 생산관리등에서 종종 등장해왔고, 흥미가 많았었다.

뭔가 경영학의 뜬구름스러움에 대한 아쉬움때문에 컴공 / 통계에 대한 전공을 고려해본적도 있었으니, 사실 지금하는일도 프로그램 개발/분석에 가깝기 때문에 결국에는 취향따라 어떻게든 도착을 하기는 했다.

프로그램 개발을 하다보면, 어느날 도메인 지식에 대한 아쉬움이 느껴질때가 있다. 코딩을 잘하고 설계를 잘하는것도 물론 충분히 가치있는 일이기는 하나, 결국에는 무엇을 만드는지가 굉장히 중요하다. 그 목표를 잡기위해 계속 공부를 하다보면서 다다르게 되었던 곳이 데이터 분석이다. 물론 데이터분석도 도메인에 관한 지식이 없으면 분석력이 떨어지는것은 맞으나, 적어도 개발을 할때 단순히 라이브러리를 이용하는것이 아니라 어떤 라이브러리를 개발할 것인지, 어느분야에 어느 이론을 적용해서 어떻게 개발하면 좋을것인지 브릿지 역할을 해주는것이 데이터분석 분야라고 생각한다.

알파고가 뜨기전에는 사실 우리나라에서 그렇게 머신러닝이라는 단어가 언급이 되지 않았었다. 하지만 이전부터 관심이 계속 이곳에 있었던 사람들은 당연히 한두번쯤은 관심이 생기게 마련이었다. 현재 몇몇 회사에서도 (현재 몸담고있는 회사도..) DS라며 데이터 사이언티스트라는 거창한 이름을 축약해서 부를정도까지 미래먹거리 산업으로 칭송받고 있다. 물론 거품같아 보일수도 있고, 단어 그자체가 너무 인공지능과 맞물려 좀 과하긴하지만, 분명 실무나 기업환경에서 유용하게 쓰여왔고 계속해서 쓰이는 분야이다. 

2018년 중반되서는 거의 뭐, 모든 사람들이 데이터분석을 해야한다고 말을 하고있으니 뭔가 '나만알고싶고 하고싶은것'이라고 말하기는 너무 늦은 시기가 되었지만, 어쨌든 그나마 일찍부터 관심을 가진 탓에 ADP라는 자기만족적인 자격증 하나가 남게는 되었다.

사실 ADP를 목표만을 두고 공부를 하지는 않았다. 시험이란게 어떻게 시험 문제가 어떻게 구성되냐에 따라 지엽적인 지식만을 가진 사람이 우연히 딸 확률이 높고, 내가 되고자 하는 방향은 자격증만을 딴사람이 아닌, 좀더 전체적으로 깊이있는 이론까지 잘 알고있는 사람이 되고싶었기 때문이다. (물론 가야할길이 엄청 멀다)

따라서, 사실 여러 책들을 보기는 봤는데, ADP 용 1000쪽 서적은 거의 보진않았다. 머신러닝이 각광받으면서, 이상한 책들을 필두로 볼만한 책들이 많이 나오기 시작했는데, 시험용으로 가장 도움이 많이 될만한것들은 사실 딱 추천하기가 어렵다. 도움이 많이 되었던 서적은 차라리 adsp용 축약버전 책이다. 간단한 명령어가 어떻게 돌아가는지 확인할수있고, 60점이나 70점을 간신히 넘길만한 얕은 지식이 총망라되어있기 때문이다.

//이쪽에 봤던 책들 망라 

필기를 어떻게 봤더라

필기는 객관식은 어느정도 지식이 있으면 맞는 말을 찍는다고 가정하여 대충 마지노선을 넘는다고 가정하고, 관건은 논술을 얼마나 잘 쓰냐에 따른것이다. 솔직히 출제자풀중 정말 실무에서 미친듯한 빅데이터를 블랙박스 모형으로 훈련해본 경험이 있는사람이 많지 않을거라 생각한다. 결국에 나올수 있는 범위는 간단한 선형회귀분석에 대한 모형을 설명할수 있느냐에 따라 점수의 당락이 결정될 것 같다. 다만, kmeans와 같은 간단한 비교사학습으로 먼저 고객층을 나눈다든지 하는 과정을 쓰게끔 할수 있는데, k를 택하는 방법이라든지, 어떻게 고객층을 나누게 될것인지 썰을 열심히 풀면 될듯하다. 그리고 선형회귀에서는 잔차의 의미와 각 계수를 해석하는 방법, pvalue, 결정계수정도 언급하면 가까스로 합격선에 도달할것같다.

 

실기를 어떻게 봤더라

실기는 보통 나오는게 회귀로 하나, 데이터마이닝 하나정도, 그리고 텍스트마이닝 하나정도 총 세문제가 등장하는 편인데, 이는 크게 틀이 안바뀔것같다. 회귀문제는 사실 feature engineering과 관련이 깊다. 어떤 변수를 어떻게 사용할것인지, 그리고 서로 다중공선성의 문제는 없는지.. 뭐 이런것들을 좀 나열해야한다. 선형회귀란것이 하나의 아웃라이어에도 많은 영향을 받으며, 훈련 변수들끼리 상관이 높다면 결과가 이상하게 나오는 등 문제가 많기 때문에 이를 검증하기에 적당한것같다. 

캐글과 같은 예측경쟁에서는 가용할수 있는 피처를 죄다 뽑아내는데 모든 힘을 다 빼고 있는 편이나 ADP에 등장하는 회귀문제에서는 그냥 뭘 쓰면될지, 뭘빼면될지 뭔가 논리적으로 판단하는데 힘을 써야하는것 같다.

다만, 이제는 오픈북이니 책을 가져가도 되는데 책을 피는순간 시간이 엄청나게 소모되므로 명령어는 대부분 숙지를 하는편이 낫다. 10회부터는 파이썬이 사용가능하나, 대부분은 R을 사용하여 시험을 진행하곤 하는것같다. 현재 한국상황은 학계영향으로 R이 우세한것 같고, 기존의 인력도 R 이 우세하지만 2~3년 후에는 파이썬이 우세할것이라고 믿기때문에 완전 새로 준비하는 사람들은 파이썬을 쓰는편이 커리어에는 나아 보인다. 언어가 거기서 거기니 사실 상관없다고 말할수는 있지만,  R을 준비한다면 난립하는 문법때문에 나름의 기준인 dplyr ggplot2 라이브러리의 사용법에 익숙해져야 하는게 급선무이고 - 파이썬의 경우 넘파이와 판다스 라이브러리 사용법을 익혀야 한다. 둘의 양상은 비슷하게 보이면서도 다르다. 

데이터마이닝 문제에서는 사실 피처를 빼고 말고가 중요하지 않다. 최대한 빠르게 훈련이 가능한 형태로 데이터를 바꿔야 하며, 예를들어 ID가 여러번 등장할경우는 하나로 통일을 해서 훈련데이터를 미리 마사지 해놓는 짓이 필요하다. 라이브러리를 그냥 호출하는건 너무나도 쉽기에 R이라면 reshape2를 능숙하게 사용해서 wide <-> long데이터간 변환을 자유자재로 하면 시간을 단축할수 있을것같다. 파이썬의 경우는 좀더 일반언어와 가깝기 때문에 판다스 그룹바이등과 같은 aggregate이나 람다식을 이용하면 좀더 빠르게 코딩이 가능하나, 반복문에 대한 이해가 좀 있어야 하기 때문에 이해가 어려울수 있다. 

최종적으로 예측하는 문제는 lightgbm을 이용하면 사실 굉장히 빠르고 정확하게 훈련이 될텐데, 시험에서 원하는건 예측력도 있겠지만, 실제로 submission파일을 무조건 만드는것이 중요하다. 그리고 사실은 glm / random forest정도만 빠르게 이용해서 최대한 답안작성시간을 길게 가져가는 편이 나을것같다. 이건 캐글이 아니고 ADP시험이므로..

분류문제의 같은경우 안될것같으면 그냥 모두 1이다 와 같이 내는 센스를 발휘하는것도 중요할텐데 스크리닝이 어디까지 될지는 모르겠다. 

텍스트마이닝은 점수배점이제일 작은것으로 느껴졌다. 이정도 되면 시간이 없을텐데 일단 파일을 불러와 빈도수만 체크하는걸로 일단은 만족하며 제출하는편이 나을것같다. association rule을 적용해서 파기 시작하면 시간없음의 구렁텅이에 빠질 가능성이 높아보인다. 이런식으로 텍스트마이닝을 하면 실력은 인정하나 시험은 떨어질수있다.

ADP도 사실, 정말 제대로된 분석가를 가릴수 있는 시험이 되기에는 조금 방향이 달라보인다. 일단 분석이라는것은 적어도 한달은 두고 도메인이해부터 차근차근 봐야하는 업무이며, 몇가지 문제로 이를 파악하기에는 사실 좀 역부족인 경향이 있다. 

일단은 점점 불나방과 같이 사람들이 달려들고 있는 자격증 - 이므로 뭔가 있어보일지도 모르겠지만 - 이 그사람이 엄청난 실력을 가지는것을 보장하지는 않는다. 캐글상위권이나 유명논문의 빈도를보면 분석가로써 일을 하는사람은 많을수 있지만 정말로 한국이 이 분야에서 두각을 나타내지 못하고 있음을 짐작컨데, 나도 그렇고 우리모두 가야할길이 먼것으로 보인다. 그때까지 정진하며 무언가 가치라도 생산하러 가야겠다라고 생각하며 자야겠다.

두서없이 적어서 나중에 정리를 해야겠다.