본문 바로가기
Data Science/Data Analysis

[책] 헬로 데이터과학 -(3) 데이터 과학 입문

by 알파해커 2017. 10. 20.
반응형

헬로 데이터과학 - (3)



이 책에서 저자는 사람들이 "빅데이터"에 너무 집중하는 것을 우려한다.

그 단어 자체에서 느껴지는 부담감도 부담감이지만, 

어떤 현상을 분석하는데 있어서 반드시 빅데이터가 필요한 것은 아니라는 것이다.


그래서 다음과 같이 빅데이터의 단점을 이야기 한다.


  • 빅데이터는 비싸고 느리다
    • 세상의 이치가 그렇듯이, 데이터의 규모가 커질수록 이를 처리하는 비용은 커지고 속도는 느려진다. 이런 비효율은 데이터와 관련된 모든 작업을 복잡하고 어렵게 만든다. 데이터를 직접 수집해야 하는 경우라면 그 어려움과 비용은 이루 말할 수 없을 것이다. 따라서 정말 그렇게 많은 데이터가 필요한지 꼭 짚고 넘어갈 일이다.
    • 그렇다면 데이터가 많으면 많을수록 좋을까? 더 많은 데이터는 분석의 정확도를 높이지만 데이터양이 많아지면서 추가적인 데이터의 가치는 줄어든다. 이른바 "수확체감의 법칙"이 데이터에 적용되는 것이다. 따라서 최소한의 데이터로 분석을 해보고, 필요에 따라 추가적인 데이터를 수집하는 편이 낫다.
  • 빅데이터는 복잡하고 어렵다
    • 빅데이터는 수집 과정의 특성상 다양한 출처와 속성을 가진 데이터의 복합체인 경우가 많다.
    • 빅데이터의 이러한 복잡성은 각종 통계적인 기법의 적용을 어렵게 만든다. 많은 통계 기법은 단일 한 유형의 데이터에, 각 속성값이 알려진 분포를 가지는 것을 가정하기 때문이다. 따라서 기존 통계 기법을 빅데이터에 그대로 적용했다가는 잘못된 결론을 도출할 위험이 다분하다.
    • 구글의 검색어 패턴을 사용해 독감의 발생을 예측하는 구글 플루(goolge flu) 서비스는 처음에 빅데이터를 활용한 대표적인 사례로 각광받았다. 하지만 몇 년 뒤 많은 의학 및 통계 연구자들은 구글 플루가 내리는 예측의 정확도가 시기에 따라 높은 편차를 보인다는 결론을 내렸고, 데이터 특성을 무시한 예측 모델의 적용이 원인이었다는 결론을 내렸다.
  • 빅데이터를 작게 만들 수 있다
    • 빅데이터의 비효율을 최소화하기 위해 데이터 분석 업무에서 가장 먼저하는 작업이 데이터의 크기를 최대한 줄이는 것이다. 여기에는 다양한 방법이 있는데, 통상적인 방법은 테이블 관점에서 필요한 행과 열만 선택하거나, 집계(aggregation)를 통해 개별 데이터를 그룹화하는 것이다. 또한 분석 작업의 종류에 따라, 데이터에서 적당한 수의 표본을 무작위 추출(random sampling)하여 사용하는 방법도 있다.


그러니까,


스몰데이터로 시작하라


여기서 스몰데이터는 주어진 문제를  푸는 데 필요한 최소한의 데이터를 말한다.

마치 린(Lean) 생산에서 수요에 맞추어 생산량을 조절하듯이, 분석 목표를 달성하기 위한 최소한의 데이터만을 수집해서 사용하는 것이다.


물론 스몰데이터로 시작하다보면 데이터가 부족한 경우가 있다. 그러면 그때그때 필요한 만큼만 모으거나 원본 데이터에서 추출하면 된다. 이렇게 필요에 따라 데이터양을 늘려가는 것이, 처음부터 큰 데이터로 작업하는 비효율을 감수하는 것보다 훨씬 낫다.


단순한 도구와 기술로 시작하라


데이터 과학이 어렵게 느껴지는 또 다른 이유는 복잡한 도구와 분석 기법의 범람 때문이다.

기존의 자료들은 데이터 과학을 하기 위해선, 파이썬/R 프로그래밍, 하둡, 스파크와 같은 엔지니어링 기술과 선형대수 및 통계에 대한 대단한 지식이 있어야만 되는 것 처럼 말한다.


그러나 요술 방망이 같은 기술이나 이론적 지식에 목매는 것보다는 자신이 해결하고자 하는 "문제"의 성격이 어떤 도구와 분석 기법을 사용해야 하는지를 결정해야하는 것이다. 특히 저자는 생각보다 굉장히 많은 문제들이 "엑셀"로도 해결될 수 있다고 말한다.


좀 추상적으로 느껴진다면, 아래의 테이블과 그림을 참조해서 자신이 풀고자하는 문제와 상황에 어떤 도구가 적절한지 생각해보자.


기준

스프레드시트

(엑셀) 

관계형 

데이터베이스 

R / 파이썬 

클라우드 

커스텀 코드 

처리용량 

메모리 용량에 

제한

디스크 용량에 

제한 

(예외: 클러스터 DB) 

메모리 용량에 

제한 

거의 무제한 

구현 방식에 의해 결정 

응답시간 

실시간~ 수 분 

환경설정에 따라 

결정 

(OLTP vs DW) 

실시간 ~ 수 분 

수 분 ~ 수 시간 

구현 방식에 의해 결정 

지원 데이터 

형태

테이블  

테이블 

테이블 / 벡터 / 행렬 

거의 무제한 

(키-값 / 테이블 / 비정형) 

무제한 

프로그래밍 

지원

VBScript 

내장 프로시저 

R function 

다양한 언어 지원 

무제한 

통계 및 

기계학습 기능

제한적인 통계 / 학습모델 지원 

지원하지 않음 

대부분의 통계 / 학습 모델 지원 

대부분의 통계 / 학습 모델 지원 

무제한 

데이터 시각화 

기능

제한적인 시각화 지원 

지원하지 않음 

다양한 시각화 지원 

대부분 지원하지 않음 

무제한 




반응형

댓글