한국어
    • 한국어
    • ENGLISH
    • 日本語
    • 中文-繁體

    2016.09.06 Data Science

    R을 활용한 데이터 분석 #3 –재현성과 실행 가능성

    R을 활용한 데이터 분석, 3편에서는 데이터 분석에 있어 가장 중요한 두 가지 요소를 다뤄보겠습니다.

    그 두 가지 요소는 바로  ‘재현성’과 ‘실행 가능성’인데요, 엔씨소프트 데이터분석팀 이은조 팀장의 쉽고(!) 친절한(!) 설명을 들어 보실까요~?   ( ͡° ͜ʖ ͡°)


    이번에는 R과 직접 연관이 있으면서 좀 더 포괄적인 이야기를 하도록 하겠습니다. 데이터 분석에 있어 가장 중요한 것은  ‘재현성(reproducibility)’과 ‘실행 가능성(actionability)’입니다.

    재현성과 실현 가능성, 그것이 핵심! 

    재현성은 어떤 분석 결과에 대해 다른 사람이 같은 방법으로 분석했을 때, 같은 결과가 나올 수 있는 것을 말합니다. 데이터 분석이 소위 말하는 ‘데이터 과학’이라 불릴려면 이 재현성이 반드시 보장돼야 하죠.

    재현성을 충족시키지 못해 문제가 된 대표적인 사례를 하나 보시겠습니다. 2014년, 일반 세포를 줄기 세포로 만드는 법에 대한 논문으로 과학계에 혜성처럼 나타났던  일본 과학자 오보카타 하루코를 기억하시나요?

    만능 세포사기극으로 열도를 들썩이게 만든 오보카타 하루코

    기존 과학계를 흔드는 엄청난 결과에, 보기 드문 여성 과학자라는 점이 작용해 언론에서 엄청난 스포트라이트를 받았죠. 하지만 다른 사람들이 논문에 나온 방법대로 실험을 해도 재현이 안 되면서 연구 결과의 진위 여부에 대한 의혹이 불거졌습니다.

    의혹에 따른 결과는 눈물의 기자회견 (´д`、)

    결국 논문 내용이 조작된 결과임이 들통나면서 오보카타 하루코는 ‘일본판 황우석’이라는 오명을 얻은 채 사람들의 관심 밖으로 사라졌죠.

    그런데 사실 오보카타 하루코의 사례는 언론의 스포트라이트를 받은 연구였기 때문에 더 크게 회자됐던 것이고, 이 사례뿐만 아니라 학계 전반에 재현성 문제가 만연하면서 ‘재현성 위기’라는 용어가 등장했습니다.

    이런 분위기를 반영하듯이, 올해 3월에는 미국 통계 학회(America Statistics Association)에서 올바른 데이터 분석을 위한 지침서를 발표하기도 했죠.

    재현을 했을 때 반드시 같은 결과가 나와야 한다...! 

    데이터 분석에서도 비슷한 사례가 있습니다. 페이스북에서 근무하던 ‘피터 와든’ 이라는 데이터 분석가가  페이스북의 친구 관계 네트워크를 분석하던 중, 이 연결 정보에 의하면 미국은 7개 지역으로 나눌 수 있다는 내용을 자신의 블로그에 실었습니다.

    피터 와든이 만든 친구 관계에 의해 구분된 미국 지도 

    이 내용은 많은 이들의 흥미를 끌면서 널리 퍼졌고, 급기야 뉴욕 타임즈에도 실리게 되었죠. 그러나 한참 후에 피터 와든은 사실 7개 지역으로 구분한 자료는 엄밀한 분석을 통해 나온 것이 아니라고 밝혔습니다.

    블로그에 실은 내용은 그저 주관적인 감으로 시각화해서 만든 것이라고 고백한 것이죠. 즉 이 분석은 다른 사람에 의해 얼마든지 다른 결과가 나올 수 있는, 다시 말해 재현이 안 되는 분석이었습니다.

    한편 실행 가능성은 말 그대로 실제 활용할 수 있는 분석을 해야 함을 뜻합니다. 이 실행 가능성은 재현성과도 크게 상관이 있습니다. 재현이 되지 않는 분석을 활용할 수는 없으니까요.

    성공과 실패를 가르는 핵심은 실행 가능성! 

    여기서 더 나아가 재현이 될 뿐만 아니라, 서비스에 활용할 수 있는 결과물을 만드는 것이 필요합니다. 아마 실제 업무를 수행하고 계신 데이터 분석가들은 다 공감하시리라 생각합니다.

    많은 노력과 시간을 들여 분석한 결과들이 단 한 번의 PT로 산화하며 사라지는 경우가 태반이니까요. 이렇게 수많은 분석 결과들이 단지 화려한 PT로 끝나는 이유는 여러 가지 말 못할 이유(...)도 있겠지만 실행 가능성이 고려되지 않았기 때문이기도 합니다.

    실행 가능성이 없는 분석 결과는 빼박 거짓...

    재현성과 실행 가능성. 그런데 사실 이 두 가지 요소를 만족시키는 것은 굉장히 어려운 일입니다. 단지 툴을 잘 활용한다고 해서 충족시킬 수 있는 것도 아니고요.

    다만 R이 갖고 있는 프로그래밍 언어적인 특성을 최대한 잘 활용하면 이런 문제를 줄이는 데 어느 정도 도움이 됩니다. 그만큼 잘 만들어진 언어이기 때문이죠.

    엔씨소프트에서는 데이터 분석 시, 탐사 분석 단계에서부터 R코드와 여기서 사용한 데이터를 다른 사람이 재현할 수 있도록 코드를 정리합니다. 그래서 누구나 R코드와 데이터를 내려 받아서 첫 줄부터 차례로 실행하면서 분석 보고서의 결과와 과정을 그대로 재현할 수 있죠.

    R을 활용하면 분석 결과와 과정의 재현이 쉽다는 사실! 

    일반적인 GUI 기반의 분석 도구는 비록 사용은 편리하지만 전체 분석 절차를 체계적으로 정리하기가 어렵습니다. 그러나 R은 모든 것이 코드로 표현되기 때문에, 이렇게 분석 결과물 자체가 전체 분석 과정을 담게 되는 것이죠.

    물론 이것은 엄밀한 의미의 재현성과는 약간 다릅니다. 그러나 적어도 이런 식의 정리를 통해 다른 사람들이 분석가의 작업을 동일한 절차대로 재현할 수 있게 하면, 해당 작업을 리뷰하며 오류를 검증해 볼 수도 있고 더 나아가 기존 분석 작업을 변형해서 새로운 결과를 얻을 수도 있기 때문에 매우 유용하죠.

    재현 가능한 결과물의 나쁜 예

    또한 2편에서 설명했듯이 R은 예측 결과를 그대로 서비스에 연동하기 편리한 언어이므로 실행 가능성 측면에서도 매우 유리합니다( 오해가 있을 수 있어 덧붙이자면, 실행 가능성은 단지 구현 상의 문제만은 아닙니다).

    심지어 서비스 서버에서 직접 실행하는 모듈 형태로 서비스할 수 있을 뿐만 아니라, R에서 만든 예측 모델을 다른 서비스나 개발 환경에서 사용할 수 있도록 ‘PMML(Predictive Model Markup Language)’ 이라는 형식의 데이터로 제공하는 것도 가능하죠.

    R에서 생성한 예측 모델을 PMML 형식으로 제공

    지금까지 요즘 대세인 R의 효용성과, 엔씨소프트 데이터분석팀에서 R을 활용해 어떻게 데이터를 분석하고 있는지에 대해 다소 장황하게(?) 설명을 드렸습니다.

    결론을 아주 깔끔하게 요약해드리자면, ‘R은 데이터 분석뿐 아니라 그 결과를 활용해 서비스에 적용하는 데에도 아주 훌륭한 도구이다.’라고 할 수 있겠습니다.

    R이 그렇게 좋다며? / 얘는 그걸 말이라고~ 

    다시 한번 말씀 드리자면 R은 보기보다 어렵지 않답니다(글이 어려웠다면 그것은 전적으로 글쓴이의 잘못입니다). 데이터 분석이나 머신 러닝에 관심 있는 분들이라면, 망설이지 말고! 두려움 없이! 기초적인 것부터 도전해 보시길 권합니다.