이걸로 밥 벌어먹고 사는 사람이야 많이 있겠지만 데이터를 핸들링 하는 엔지니어로서는 확률 통계는 반드시 알아야될 교양 정도라고 생각했다.
이거 모른다고 개발자를 못하는건 아니니까…
많은 책들의 서문에 아래와 같은 말들이 많이 써져 있다.
“OOO에 대해서 알면 정말 좋지만 몰라도 책을 이해하는데 큰 어려움은 없다”
위와 같은 감언이설에 넘어가서 책을 보다가 큰코 다친적이 한두번이 아니다. 그중에 확률 통계는 단골 메뉴다.
개발을 했는데 이 결과가 좋고 나쁜지 가늠을 하기 위해서는 확률 통계 방법이 필요하다. 그것 말고도 데이터를 한눈에 볼수 있게하는 힘이 있고 그 안에 있는 특정정보에 접근하는 고속도로를 제공한다.
심지어는 데이터 이상치(outlier)를 탐지하는 방법으로도 활용이 가능한데, 확률론에서 데이터의 이상치를 판단하는 방법은 평균과 표준편차를 이용해서 수행한다.
이는 간단하게 평가하고자 하는 데이터가 표준편차의 몇배의 위치에 있는지로 확인한다. 약 +-3배정도면 정규분포에서 99%정도의 데이터를 커버하니 이 범위에 없는 데이터는 이상치로 볼 수 있다. 이 정도는 정규분포표만 있으면 쉽게 확인 가능하고 그게 없어도 엑셀만으로도 정확하게 뽑아 볼 수 있다.
이렇듯 Machine Learning과 Data Mining의 기초개념들이 빼곡히 확률 통계에 녹아 있다.
성능평가 측면에서 엔지니어가 어떤 알고리즘 개선을 했는데 주간 page view가 얼마가 올랐다고 하고 그 결과를 기반으로 알고리즘의 성능을 가늠하는건 엔지니어 입장에 맞지 않는다고 생각한다. 물론 비지니스적인 면을 생각하지 않을 수 없겠지만 그 이전에 수치로 성능향상을 보여주는 과정이 선행 되어야 한다. 그게 우리가 할수 있는 마지막 마무리다. 그 이외의 비지니스적인 부분은 더 전문가들이 케어해주니까. (단, 엔지니어적인 작업은 비지니스를 관리하는 분들하고 필히 사전에 동의 및 공유를 해야 할것임은 분명하다. 하지만 그 후의 성능평가는 page view같은걸로 해서는 안된다고 생각한다.)
그 성능평가 척도를 만들어 주는게 확률 통계다.
이런 방어적인 측면 말고도 다른 엔지니어에게 뭔가를 요청할때 모두에게 인정되는 확실한 근거 데이터도 만들어 준다.
“이번거는 좀 안좋아 보여요.”
감(feel)으로 안좋다는 이야기다. 게다가 뭐가 안좋은지 애매하니 설득력이 없고 상대방의 동의를 구하기 힘들다.
“p-value로 유의수준 1%로로 분석해 봤더니 성능향상이 없다고 나왔습니다.”
얼마나 명쾌한지 모르겠다.
아무도 토를 못달것이다.
이정도면 확률 통계는 데이터를 처리하는 엔지니어에게 교양이 아닌 전공 필수정도 될듯 싶다.
자신이 한 작업에 대해서 효과적으로 어필할 수 있는 언어… 그리고 수단..
확률 통계는 교양이다? by from __future__ import dream is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.