데이터를 핸들링 하는 사람들이 가장 많이 듣는 말중에 하나가 GIGO(Garbage In, Garbage Out)이라는 말이다.
이는 “잘못된 데이터가 입력이 되면 아무리 알고리즘이 좋고 퍼포먼스가 좋은 시스템이 있더라도 결국 잘못된 값을 출력할 수 밖에 없다” 라는 의미를 내포하고 있다.
그러나 통계쪽나 ML쪽을 하다보면 많은 사람들이 GIGO의 의미를 잘못 이해하고 있다는것을 볼 수 있다.
바로 Garbage In, Gospel Out으로 말이다. (쓰레기를 넣는데 복음성가가 나오다니..@.@)
이는 특정 패키지 및 툴을 사용해서 데이터를 핸들링 하거나 유명한 통계적인 방법을 사용해서 나온 결과를 컴퓨팅 결과를 아무 비판없이 맹신한다는데 문제가 있다는것을 알려준다.
값비싼 SPSS, SAS 나 데이터마이닝 패키지를 이용했다고 그 결과까지 맹신할수는 없다.
그러나 복잡한 알고리즘을 간단하고 빠르게 처리해주는 소프트웨어의 보급과 허무맹랑한 광고가 넘쳐남에 따라서 거의 신성화 수준으로 발전하고 있다.
일단 이런 패키지들은 학술적으로 인정된 알고리즘을 구현하고 있고 일정 포멧의 데이터가 들어올때 적절한 값들만 뽑아주는 역할을 한다. 그래서 자신이 처리하는 데이터가 똥인지 된장인지 구분하지 못하며 더군다나 결과에 대한 보장을 해주지 못한다.
예를들어 평균과 표준편차는 데이터에 대한 뭔가 획기적으로 다른 정보를 주지 않는다, 다만 데이터를 요약해서 보는 창구역할만 하는것 뿐이다.
쓰레기를 넣어도, 깨끗한 정보를 넣어도 모두 평균과 표준편차를 구할 수 있다. 하지만 믿어야 되는지 말아야 되는지는 그 평균 및 표준편차만 보고 판단할 수 없다.
그래서 데이터를 수집, 정제하는 노가다 작업이 필요하다.
작년 데이터마이닝 수업 시간에 교수님이 하신 말씀이 생각난다.
“데이터에서 정보를 뽑는 프로세싱에도 80/20 법칙이 적용된다. 80%의 작업은 데이터를 처리하기 위한 전처리 작업, 그리고 20%는 실제 분석하는 작업에 들어가게 된다. “
나는 이미 논문 작업을 하면서 데이터 준비 및 전처리 작업이 얼마나 힘든지 조금이나마 경험해서 위 말씀이 기억에 남는다.
SAS, SPSS 같은 툴로는 20%의 작업을 빠르게 처리할 수 있을 뿐이다.
80%의 전처리 작업에 대한 시간투자와 노력이 없다면 20%의 작업은 믿을 수 없는 결과만을 양산해 낼 것이다.
Machine Learning 기술을 사용해서 데이터를 학습하고 그것을 프로덕트에 적용하는 과정에 있는 기업의 팀장분들에게 하고 싶은 말은 이렇다.
“툴은 좋은데 정확도가 왜 이모양이야!”
“데이터만 집어 넣으면 될것을 왜 이렇게 시간이 많이 걸려?” 하고 개발자들을 윽박지르거나 재촉하기 보다는 80%의 리소스가 들어가는 데이터 정제작업이 잘 될수 있게끔 지원을 해주는게 필요할것이다.
GIGO에 대한 두가지 관점 by from __future__ import dream is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.