데이터 과학을 시작하는 방법

이 블로그는 ‘우리 모두를 위한 데이터 과학’을 이야기한다. 필자가 전달하고자 하는 주된 메시지는 우리 주변에는 이미 데이터를 수집하고 분석할 수 있는 다양한 수단이 존재하며, 이런 데이터를 활용하여 삶과 업무를 개선하는 일은 결코 복잡하지 않다는 것이다. 이를 위해 이 필자는 중고교 수준의 통계 및 컴퓨터 지식을 갖춘 보통 사람이 데이터 과학을 시작할 수 있는 방법을 제시하고, 이런 방법을 개인의 삶과 업무를 위해 활용하는 다양한 사례를 소개할 생각이다.

불행히도 ‘빅데이터’, ‘데이터 과학’등의 용어는 상당히 거창하게 들린다. 적어도 보통 사람이 ‘나도 한번 해볼까’ 하는 의욕을 갖게 하는 단어는 아니다. 뭔가 대용량 기업용 컴퓨터도 있어야 될 것 같고, 프로그래밍도 알아야 될 것 같고, 적어도 이공계 전공이 아니면 명함도 못 내밀것 같다. 하지만 필자는 그렇지 않다고 단언하고 싶다.

데이터는 우리의 삶과 일에서 당면한 문제를 해결할 수 있게 도와주는 수단에 불과하다. 사실 우리는 이미 체중계나 통장 잔고 등을 확인하면서 ‘오늘은 어제보다 체중이 늘었으니 셀러드를 먹어야 하나?’, ‘아, 이번달에는 전기세가 많이 나갔으니 실내온도를 조정해야겠다’ 등의 의사결정을 하고 있다. 이처럼 데이터를 사용해 현상을 파악하고 문제를 해결하려는 노력이 데이터 과학의 시작이다.

하지만 좀더 생각해보면, 우리가 일상적으로 내리는 ‘데이터 기반의 의사결정’에는 다양한 허점이 있다. 예를 들어 사람의 몸무게는 그날 그날의 신진대사에 따라 1-2킬로그람 정도는 매일 변한다. 따라서 어제와 오늘을 비교하여 체중이 줄었다고 결론을 내리는 것은 오류의 소지가 있다. 마찬가지로, 전기세가 많이 나올 수 있는 원인은 여러가지가 있는데, 이를 난방비와 연관짓는 것은 성급한 일이다.

필자가 생각하는 데이터 과학은 이런 상황을 정확히 이해하고 효과적인 결정을 내리도록 도와주는 수단이다. 예컨대, 앞에서 언급한 체중과 식단의 문제를 다시 생각해보자. 매일매일의 체중변화를 감안하여 일주일 정도 체중을 측정해보면 실제로 체중이 줄고 있는지를 좀더 정확하게 판단할 수 있다. 이때 가급적 같은 시간에 같은 옷을 입고 (혹은 아무것도 입지 않고) 체중을 재면 측정값의 오차를 최소화할 수 있을 것이다. 이렇게 하면 데이터 과학에서 말하는 ‘수집’단계가 끝난 것이다.

데이터 분석도 사실 복잡하고 난해한 것은 아니다. 앞서 수집한 데이터를 엑셀에 넣고 간단한 계산을 하면 평균과 오차 범위1를 구할 수 있다. 만약 채식을 하는 것이 실제로 몸무게를 줄이는지 궁금하다면, 각각 다른 조건하에서 데이터를 모은 후, 두 조건의 데이터 사이에 통계적으로 유의미한 차이가 있는지 비교하면 된다. 역시 엑셀에서 함수 호출 하나로 끝나는 일이다.

위에서 설명한 데이터 수집과 분석은 중고교 수준의 통계 지식와 오피스 활용 정도의 컴퓨터 실력만으로도 충분히 따라할 수 있는 것이다. 물론 데이터 과학에 앞에서 설명한 단순한 데이터 수집 및 분석 작업만 있는 것은 아니다. 사실 최근에 데이터 과학이 조명받게 된 것은 ‘빅데이터’로 대표되는 대용량 데이터의 등장과, 이를 활용한 검색 및 추천등의 데이터 기반 서비스의 등장에 힘입은 바가 크다. 이런 서비스가 일상화되면서, 데이터의 활용 범위와 위력을 실감하는 사람이 늘어난 것이다.

그렇다면 데이터 과학을 공부하는 모든 사람들이 이런 것들을 모두 알아야 될까? 필자는 아니라고 단언하고 싶다. ‘데이터 과학자’로서 알아야 할 데이터 과학과 ‘데이터를 삶과 업무에 활용하고자 하는 개인’이 알아야 할 데이터 과학의 범주는 엄연히 다르기 때문이다. 예컨데 전문가가 아닌 개인이 직접 빅데이터를 다루어야 하거나, 검색이나 추천 알고리즘 등을 구현해야 하는 경우는 거의 없지 않을까.

그렇다면 보통 사람이 데이터 과학을 배워서 활용하기 위한 올바른 접근법은 무엇일까? 필자는 우선 ‘기술’으로서의 데이터 과학보다 ‘사고방식’로서의 데이터 과학을 강조하고 싶다. 즉, 데이터 과학의 구체적인 기술을 습득하는데 초점을 맞추기 이전에, 데이터 기반으로 사고하는 방법을 익혀야 한다는 것이다. 구체적으로 이는 주변에 ‘데이터화’ 할 수 있는 현상에 항상 관심을 가지고, 데이터를 사용해 이를 개선할 수 있는 방법을 고민하는 것을 뜻한다.

또한, 새로운 기술이나 제품에 현혹되기보다는 구체적인 목표 달성이나 문제 해결에 초점을 맞추어야 한다. 하루가 멀다하고 새로운 기술이나 제품이 쏟아져나오는 상황에서 이는 쉬운 일이 아니다. 하지만 아무리 최신 기술이라도 지금 당면한 문제에 도움을 줄 수 없다면 의미가 없다. 좀더 구체적으로 필자는 다음 사항을 제안하고 싶다.

  • 문제 정의에서 시작하라 데이터에 관심을 갖기 시작한 사람들이 범하는 첫번째 오류는 무작정 데이터부터 모으기 시작하는 것이다. 하지만, 이런 접근으로는 어떤 데이터를 얼마나 모아야 할지, 그리고 모은 데이터를 가지고 무엇을 해야할지를 판단할 수 없다.

  • 스몰 데이터로 시작하라 문제 해결에 초점을 맞추다보면 생각보다 많은 데이터가 필요하지 않다는 사실을 발견하게 된다. 따라서 필자는 ‘스몰 데이터’로 시작해야 한다고 말하고 싶다. 스몰 데이터가 한계를 드러내는 경우에만 빅데이터를 사용하면 된다.

  • 주변에 있는 도구로 시작하라 데이터 처리 및 분석을 위한 도구가 대부분 개발자 위주로 되어있는 관계로, ‘개발자가 아니면 데이터 과학을 시작할 수 없다’고 생각하기 쉽다. 하지만, 역시 주변의 문제를 해결하는 것이 목적이라면 대용량 데이터를 다루거나 복잡한 통계 기법을 꼭 써야 하는 것은 아니다. 엑셀 등의 스프레드시트만 활용해도 웬만한 분석은 모두 가능하다.


  1. ‘오차 범위’나 ‘통계적 유의미성’과 같은 용어는 나중에 자세히 설명하겠지만, 우선 측정값이나 결론의 정확성을 나타내는 말로 이해하자. 

  • jisu

    ‘사고방식’로서의 데이터 과학이란 부분 잘 말씀해 주신 것 같습니다. 아무것도 모르지만 시작할 수 있는 용기를 주네요.