지난 시간에 데이터 분석 첫시간으로 아나콘다를 설치하는 방법과 쥬피터 노트북에 대한 간단한 실행에 대해 알아봤습니다. 아나콘다가 200인 이상인 기업체에서도 교육 목적의 사용이라면 무료로 사용이 가능한 policy를 직접 확인해보기도 했습니다. (인터넷에 떠도는 유료화 얘기들이 반은 맞고 반은 틀린 것 같아요 항상 조건이 중요합니다.)
이번에는 Data 에 대해 먼저 알아보고 왜 데이터 분석에 파이썬을 사용하는지에 대해 알아보도록 하겠습니다.
데이터가 왜 중요한가?
경영학쪽에서 Data를 아래와 같이 설명을 합니다.
[데이터]
- 데이터란 사물, 사건, 활동 등에 대한 객관적인 사실이나 관찰 결과를 말합니다.
- 가공하기 전 Raw Data의 상태의 수치, 값 등 단순한 사실 나열
- 예를 들어 아래와 같이 A매장, B매장, C매장 피자가게에 대한 메뉴 가격을 조사했습니다.
[정보]
- 정보란 데이터를 유의미하게 가공된 의미있는 데이터들, 즉 2차 가공된 데이터를 말합니다.
- 의사결정을 쉽게하기 위해 도식화도 합니다.
- 예를 들어 각 매장마다 메뉴별로 가격을 재배열합니다.
[지식]
- 지식이란 정보를 바탕으로 가치있는 정보를 도출하고 이에 대한 Action을 도출합니다.
- 예를 들어 피자를 사고 싶은데 가장 저렴한 B 매장에서 사 먹어야 겠다는 의사 결정을 합니다.
[지혜]
- 지식을 바탕으로 각종 데이터를 분석해보고 패턴을 찾고 새로운 정보를 도출합니다.
- 예를 들어 다른 메뉴들도 B 매장이 가장 저렴하니까 스파게티도 B 매장이 가장 저렴할꺼야 라는 예측을 할 수 있습니다.
이렇듯 데이터를 가지고 숨겨져 있던 패턴을 찾아 내고 그 패턴에 맞는 예측을 하여 새로운 시장을 만들 수 있고 제품의 혁신을 가져올 수 있는 아이디어도 얻을 수 있습니다.
Big Data의 대두
이렇듯 갑자기 Big Data가 뜨는 이유는 무엇일까요?
1. 저장 매체의 발달
- 메모리의 발달로 저장할 수 있는 데이터의 양이 많아졌습니다.
2. IoT 시대의 발전
- 많은 사물들(Things)에 다양한 센서들이 장착되고 이로부터 수집되는 데이터들이 인터넷을 통해 쉽게 수집이 가능해졌습니다.
3. 데이터 분석, 처리 기기의 발달
- 데이터 분석 기술(분산처리 기술, 머신러닝, 딥러닝 등)이 발달했고, 컴퓨터의 처리 속도가 빨라졌습니다.
이러한 이유들로 인해 Data가 많아졌는데, 이 Data들을 어떻게 분석하고 통찰력을 얻어내는 분야가 각광을 받고 있습니다.
데이터 분석에 왜 파이썬을 사용하는가?
데이터가 많아지면서 사람이 데이터를 하나씩 분석하기 어려워졌습니다. 그래서 사람이 컴퓨터에 데이터를 분석하는 등의 일을 시켜야 합니다.. 하지만 언어가 다르기 때문에 컴퓨터에게 직접 일을 시킬 수가 없네요.
그래서 컴퓨터와 소통을 하기 위한 프로그래밍 언어가 필요합니다.
컴퓨터와 소통을 할 수 있는 프로그래밍 언어는 정말 많습니다. C/C++, C#, JAVA, Visual Basic, Assembly, Python, Go, R, PHP 등이 있습니다. 이 중 데이터 분석을 위해서는 머신러닝을 해야 하는데요. 머신러닝을 알기 위해서는 먼저 Kaggle이란 것을 알아야 합니다. 이는 데이터 분석 및 머신러닝에 대한 학습 플랫폼이고 예측 모델 및 분석을 경쟁할 수 있는 대회 플랫폼입니다. Kaggle에 등록되어 활동하고 있는 전문가들이 500만명이 넘는 최고의 플랫폼인데 Kaggle에서 조사한 결과에 따르면, Python은 계속 증가하고 있고 R은 점점 감소하고 있습니다.
Data Scientists 에게 Python을 사용하라고 권하고 있고 구글 트렌드를 봐도 Python 을 사용하는 data science가 현저하게 늘어나고 있습니다.
그리고 데이터 분석을 단계적으로 나누고 분석 도구를 나열해 보면 아래와 같은데,
파이썬으로는 데이터 분석의 모든 단계를 커버할 수 있습니다.
마지막으로 파이썬 특징을 살펴보면, 아래와 같습니다.
1. 인터프리티드(Interpreted) 언어로 즉시 동작 가능
- 컴파일 과정이 없이 인터프리터(Interpreter, 해석기)가 소스 코드를 한줄씩 읽어 들여 바로 실행하는 스크립트 언어임
- 결과를 바로 확인하고 쉽게 수정 가능함
2. 플랫폼 독립적으로 다양한 운영체제 지원
- 리눅스, 유닉스, 윈도우즈, 맥 등 대부분의 운영체제에서 동작함.
- 운영체제별로 별도로 컴파일할 필요가 없어 한번 소스 작성 시 다른 운영체제에서 활용이 가능함
3. 많은 개발자들이 다양한 라이브러리 개발/추가
- 수많은 표준 라이브러리를 제공함으로써 프로그래머는 모든 코드를 일일이 작성할 필요가 없음
4. 사람의 사고 체계와 유사하여 문법이 쉽고 간결함
- 많은 시간을 들이지 않고도 문법 익히기 쉽고 활용이 가능함
- 복잡한 구문으로 인한 오류 발생을 최소화 할 수 있음
5. EDA, 머신 러닝 등에 적합함
- 탐색적 데이터 분석 (Exploratory Data Analysis)와 머신 러닝에 최적화 됨
그럼 파이썬이 만능인가요? 파이썬도 한계가 있는 부분이 있습니다.
시스템과 밀접한 프로그래밍 같은 경우, 빠른 속도/하드웨어 제어 등을 하는 프로그램에서는 한계가 있고, 안드로이드 앱 개발은 안됩니다.
위에서 설명한 것과 같은 이유로,
데이터 분석 분야에서는 파이썬을 권장하고 저도 파이썬을 사용하여 데이터 분석에 관한 강의를 해보도록 하겠습니다.