Booking.com 에서의 축차 검정 (Sequential Testing)
원문: Sequential Testing at Booking.com
고민의 흔적을 보여주세요
저는 2016년 12월부터 현재까지 7년 정도 데이터 분석가로 일을 하고 있습니다. 최근에 채용을 위해 이력서를 많이 보고 있고, 인터뷰를 진행하면서 안타까운 마음이 들어서 몇 글자 적어봅니다.
앞으로 할 이야기들은 저는 제대로 못했던 것임을 우선 고백하고 시작하겠습니다.
이제 막 대학교를 졸업하거나, 부트캠프를 마친 경우에는 이력서에 딱히 적을 게 없을 것입니다. 저도 마찬가지였고요. 그렇기 때문에 개인적으로 진행했던 프로젝트들을 정리해서 노션, GitHub, 개인 블로그 등 다양한 방법으로 공유해주셨습니다. (아, 그리고 결과물을 공유해주실 때는 꼭! 권한 설정을 여러 번 직접 확인해보고, 다른 사람들에게도 확인해보시길 권장 드립니다. 특히, 구글 드라이브나 노션을 공유해주시는 경우에요)
그런 결과물들을 보면서 느꼈던 안타까웠던 부분 중 하나는 여러분들의 고민의 흔적이 잘 안 보이는 경우가 많았다는 것입니다.
Exploratory Data Analysis, 즉 탐색적 데이터 분석은 ‘분석’ 과정이어야 합니다. 단순히 각 컬럼들의 분포가 어떤 모습인지 그림을 그리고나서 ‘아 EDA 다했다’ 고 넘어가서는 안 됩니다. 여기서 고민을 해야할 부분은, 결측치가 얼마나 있는지, 결측치가 있는 데이터는 버릴지, 아니면 다른 값으로 채워 넣어야 하는지, 채워 넣는다면 평균으로 채울지, 별도의 예측 모델을 또 만들어서 채울지 등을 고민해 봐야합니다.
뿐만 아니라 각 컬럼들의 분포를 살펴보고 이후 모델링 과정에서 변환이 필요할지, 변환을 한다면 어떤 변환을 하는 게 좋을지, 하지 않는다면 어떤 모델을 사용하는게 좋을지 등을 고민할 필요가 있다고 생각합니다.
앞에서 EDA 를 진행하면서 했던 고민들을 가지고 모델링을 하려고 합니다. 독립변수와 종속변수의 특성을 파악했고, 각 특성에 맞게끔 변환도 했거나, 하게 될 것입니다. 모델의 특성을 고려하여 적절한 변환이 무엇인지 고민을 할 차례입니다. Python 의 scikit-learn 에서는 꽤나 다양한 전처리 함수를 제공해주는데, MinMaxScaler 와 StandardScaler 는 어떻게 다른지, 내가 가진 데이터셋에는 어떤 변환 방법을 취하는 게 가장 적절한지 고민을 하시면 좋을 것 같습니다.
전처리에 대한 고민 이후 적절한 방법을 선택하여 전처리까지 마쳤습니다. 이제 이진 분류를 하는 예측 모델을 로지스틱 회귀 모형을 이용해서 만들었다고 합시다. 이것은 개인적인 취향일 수도 있지만, 제가 같이 일하고 싶은 동료는 단순히 성능 좋은 모델을 만드는 사람보다는 본인의 결과물에 대해서 설명을 할 수 있는 사람입니다. AutoML 을 사용했더니 그게 제일 성능이 좋아서 썼다거나, 캐글에 보니까 다들 XGBoost 를 쓰길래 썼다거나, 참고한 논문에서 RandomForest 를 사용해서 그대로 썼다는 이야기가 적혀있으면 ‘깊게 고민을 하지 않았구나, 모델이 어떤 특징을 가지고 있는지는 알고 있을까?’ 라는 생각부터 하게 됩니다. 즉, 본인이 사용한 모델이 어떤 특징을 가졌는지 꼭 공부하세요.
이력이 없는 신입분들의 경우 면접관(?)은 기본적인 지식에 대해서 질문을 할 수 밖에 없습니다. 그러니 최고의 성능을 가진 모델, State-of-the-Art 에 집착하실 필요 없이 기본에 집중하시는 걸 저는 권장 드립니다. 다양한 모델들이 있는데, 각 모델의 특징은 뭐가 있고, 비슷한 모델과는 어떤 점에서 차이가 나고, 이 모델을 쓰기에 적절한 경우가 무엇인지 등을 공부하는 게 Accuracy 0.2 높이는 것보다 중요하다고 생각합니다.
제 개인적인 경험이기 때문에 다른 분들은 어떤 생각을 가지고 계실지도 많이 궁금합니다. 아래 댓글에 공유해주시면 감사하겠습니다.
그럼 멀지 않은 미래에 같이 일할 동료가 될 수도 있는 모든 분들께 잘 부탁드린다는 말씀을 드리며 마치겠습니다.
원문: Sequential Testing at Booking.com
가장 좋은 방법은 당연히 영어 밖에 사용하지 못하는 환경에 강제로 처해지는 것이겠지만 그것이 어려우니…
고민의 흔적을 보여주세요
을 찾습니다.
원문: Charts & Accessibility
모수, 큰 수의 법칙, 그리고 중심극한정리에 대하여
그리고 여러분들도 (아마도) 하지 않아야 하는 이유
회사 서비스의 추천 시스템을 개선하기 위해 팀 내에서 (아직까진 두 명이긴 하지만) 지난 두 달 동안 스터디를 진행했습니다. 얼마 전 두 번째 스터디가 끝났고 이에 대한 회고를 해보려고 합니다.
원문: Dark Side of Data: Privacy by Emre Rencberoglu
원문: RStudio Projects and Working Directories: A Beginner’s Guide by Martin Chan
원문: TidyTuesday GitHub Repository
원문: How programming languages got their names
원문: How to Make Meetings Less Terrible 팟캐스트: How to Make Meetings Less Terrible (Ep. 389)
생키 다이어그램 (Sankey Diagram) 은 흐름(Flow) 다이어그램의 한 종류로써 그 화살표의 너비로 흐름의 양을 비율적으로 보여준다.
2년 전 일본어로 책을 내긴 했지만 대부분의 독자들이 이 책을 읽을 수는 없을 것 같았다.
자기회귀 모형이란 무엇인가?
회귀분석을 실행하기 위해 필요한 가정과 조건들에 대해 알아보자.
통계적 검정과 회귀분석에서 자주 사용되는 정규성 가정과 정규성 검정에 대해 알아보자.
여러 통계 검정과 모형에서 사용되는 독립성 가정에 대해 알아보자.
시계열 모형 중 ARMA 모형에대해 알아보자.
시각화에서 주의할 점인 넓이를 표시하는 원칙에 대해 알아보자.
평균 양쪽의 z-값들 사이의 넓이를 구하는 방법에 대해 알아보자.
분산분석의 개념과 방법에 대해 알아보자.
분산분석(ANOVA; ANalysis Of VAriance) 와 회귀분석의 개념을 섞은 공분산분석(ANCOVA; ANalysis of COVAriance)에 대해 알아보자. 이 글을 이해하기 위해서는 아래의 글을 먼저 읽는 것이 좋다.
Akaike’s Information Criterion 의 정의와 이를 구하는 방법에 대해 알아보자.
수정된 R제곱과 그 용도에 대해서 알아보자.
통계 용어 중 정확도(Accuracy)와 정밀도(Precision) 에 대해서 알아보자.
절대 오차와 평균 절대 오차에 대해서 알아보자.
가설 검정이란 무엇이며, 가설 검정의 다양한 방법에 대해 알아보자.
회귀분석이란 무엇이며, 회귀분석 과정에서 사용하는 용어와 다양한 방법에 대해 알아보자.
이 글은 MathJax 를 GitHub Pages Jekyll blog 에 추가하는 방법을 다룬다. 이탤릭체로 된 부분은 본문에는 없고 제가 따라하면서 고치거나 추가한 부분이니 참고하세요.
모집단과 표본집단을 이용하는 경우 통계학에서 말하는 10% 조건이 무엇인지에 대해 알아보자.
여러분의 GitHub 블로그에 Jupyter notebook 을 바꿔서 올릴 수 있도록 도와줄 글입니다. 직접 바꾸는 방법은 1회성 글들을 위해서 추가했고, 변환 과정과 파일 이동, 그리고 여러분의 블로그에 올리는 것까지 한 번에 할 수 있는 자동화 bash 를 만드는 자세한 방법...
68 95 99.7의 법칙이란 무엇인가?
단위근 검정 방법 중 하나인 Augmented Dickey Fuller 검정에 대해 알아보자.
이 자료는 데이터 과학과 관련된 특정 주제에 대한 연재물이며, 다룰 주제는 다음과 같다. 회귀분석, 군집화, 신경망, 딥러닝, 의사결정나무, 앙상블, 상관관계, 파이썬, R, 텐서플로우, SVM, 데이터 축소, 피쳐 선택, 실험 계획법, 교차검증, 모델 피팅 등. 이 글을 계속 받...