빅데이터 관련 프로그래밍

1. 미니콘다 설치

아나콘다는 오픈소스 파이썬의 플랫폼으로, 단순설치로 환경설정을 한번에 끝내주기 때문에 아주 편리하다.
아나콘다에서 떨어져나온 미니콘다(miniconda)는 핵심만 뽑아서 재구성한 플랫폼이다. 오픈소스 관리패키지인 콘다와 파이썬만 포함하기 때문에, 설치가 훨씬 빠르다.

  1. https://conda.io/miniconda.html 에 들어가서 윈도우 비트수에 맞게 다운받아서 설치한다. 혹시 자기 윈도우가 몇비트인지 모르는 사람은 내컴퓨터 우클릭> 속성 > 시스템 종류에서 확인한다.
  2. 최신버전(2018. 2. 22)인 MiniConda phython3.6 64비트를 다운받아 설치한다.
    image 

    image
  3. 윈도우메뉴 > 프로그램 및 검색 에서 [ cmd ]를 검색하여 명령 프롬프트을 실행 > [ conda]를 입력하여 파이썬이 제대로 설치되었는지 확인한다.
    나같은 경우, d:\User\사용자폴더\ 에 설치하였다. 그리고 cmd 혹은 명령프롬프트에서 conda명령어가 안먹혔다. 그래서 시작메뉴 > 설치된 아나콘다 > [Anaconda Prompt ]를 실행해서 conda 를 치니 정상적으로 확인이 되었다.
    image
    image

         - 명령어들은 콘다라는 패키지매니져의 커맨드들을 나타나는 것을 확인 할 수 있다.



2. conda 버전 업데이트하기

Anaconda Prompt에서 [ conda update conda ]를 입력해준다.
image


3. 파이썬 버전 확인하기

[ python --version ]을 입력하면 미니콘다를 통해 설치된 파이썬의 버전을 확인할 수 있다.
image


4. iPython설치

파이썬의 패키지매니져 중에 하나인 pip명령어를 통해서 ipython과 여러 라이브러리를 설치한다.

  • ipython설치 : [ pip install ipython ]을 입력하여 설치한다.
    image
  • ipython실행 : [ ipython]을 입력한다.
    image
  • ipython종료 :  [ exit() ]를 입력한다.(엑시트 함수)
    image



5. 실습 폴더 사전작업

윈도우 탐색기에 들어간, c:\User\cho(사용자명)은 홈폴더이다.  이 폴더에 데이터분석을 위한 폴더를 몇개 더 만들 것이다.

  • 홈폴더에서 새로운 폴더 [python_da] 를 만든다.
    image
  • 다시 python_da폴더에 새로운 폴더 [data]를 만든다.
    image


 

6. 라이브러리 설치

  1. Numpy 설치 : 커맨트창에 [ pip install numpy ]를 입력하여 바로 설치한다.
  2. pandas 설치 : [ pip install pandas ]를 입력하여 설치한다
  3. matplotlib 설치 : [ pip install matplotlib ]을 입력하여 설치한다.
    image
  4. jupyter 설치 : [ pip install jupyer ]를 입력하여 설치
    * ipython 라이브러리를 사용하도록 해주는 라이브러리이다.


IPython Notebook

Python에서는 Python shell이라는 기본적인 대화식 프로그래밍 툴을 제공하는데, IPython은 이 기본 툴에 몇 가지 강력한 기능을 덧붙인 툴이라고 할 수 있다.

IPython Notebook은, IPython의 대화식 프로그래밍 방식을 기본적으로 제공하면서, 여러분이 데이터 분석을 하는 과정을 노트 형식으로 보기 쉽게 기록하고 정리해 놓을 수 있도록 도와주는 강력한 툴이다.


참고 사이트


파이썬 데이터분석 라이브러리

Scipy(싸이파이)에서 제공하는 라이브러리들로  수학, 과학 분야를 분석하는데 특화된 에코시스템이다.

  • 넘파이(NumPy) : 벡터 및 행렬계산에 엄청난 편의를 제공하는 라이브러리로, 앞으로 사용할 pandas, matplotlib의 기본 베이스가 되는 라이브러리
  • 판다스(pandas) : 가장 많이 사용하게 될 라이브러리로, 고유하게 정의된 자료구조를 활용해서 빅데이터를 분석해준다. 기존 엑셀로 하던 모든 분석을 높은 수준으로 스켈과 속도가 커진다.
  • 맷플롯립(matplotlib) : numpy와 pandas를 통해 얻은 데이터 분석결과를 시각화 해주는 라이브러리


어떠한 데이터를 다룰까?

  • 인터넷 주소를 줄여주는 bit.ly은 json(키-벨류)형식의 인터넷 트래픽 dataset을 분석해서 정부에 제공했다.
  • MovieLens는 인터넷 고객의 영화평점을 분석해서 예상평점이 높은 영화를 추천하는 시스템을 공개했다. 사용자별로 id와 영화별id, 평점, 날짜를 분석했다.
  • kaggle은 US Baby Names(1880 ~ 2014)의 dataset을 분석했다. 미국의 사회보장국에서 얻은 정보 행의 값인 id, Name, Year, Gender, 총 출생수Count로 분석했다. 그외 대선득표율, 대출상태 관련 데이터셋도 제공했다.

데이터란?

데이터란?  어떤 대상에 대한 측정이나 관찰을 통해, 모아놓은 값이며, 사실을 모아놨다고 해서 데이터셋(Dataset)이라고도 한다.

분석이란? 대상을 더 잘이해하기 위해, 유효적절한 방법으로 나누고 쪼개서 그 대상을 잘 이해하는 것이다.

우리는 데이터의 의미를 도출하기 위해 데이터를 분석한다.


빅데이터에 대한 분석 방법

  1. 탐색적 데이터 분석(EDA, exploratory data analysis)
  2. 가설검정
  3. 기계학습
  4. 자연어 처리
  5. 패턴인식


탐색적 데이터분석은 모든 데이터분석의 출발점으로서, 각종 통계적 기법을 적용하여 특징을 발견하고 시각화한다.

이 때, 데이터에 대한 가설을 세우고 검증하는 방법으로 간다. 이제부터 탐색적 데이터분석을 데이터분석이라 줄여서 부르기로 한다.

데이터분석을 통한 수익 창출의 예

  • amazon : 고객이 구매한 이전애 구매한 서적을 분석한 뒤, 해당고객과 유사한 구매성향을 가진 고객들에게 그 서적을 추천하는 시스템을 통해 전체 매출의 35%를 차지했다.
  • 독일 국가대표팀 : 2014년 독일국가대표팀은, 통계기업에 데이터분석을 요청하였고, 팀워크&개인기량을 높이기 위한 피드백을 제공함. 이를 통해 선수들이 3초->1초까지 공 소유시간을 줄었다.



빅 데이터란?

양이 많이 많고 복잡해서, 통상적인 데이터분석이 먹히지 않는 것이다.

큰수의 법칙(Law of Large Numbers)에 의하면, 표본의 크기가 커질수록 모집단의 평균과 가까워진다는 것이 알려져있다.

예를 들어, 양면의 동전을 여러번 던진다면 결국 앞면과 뒷면의 비율은 1:1로 수렴하게 된다.

image_thumb4

데이터의 양이 많을 수록, 분석을 통해 보다 사실에 가까워질 가능성이 높아진다는 것을 알 수 있다.

이 때문에, 분석자들의 입장에서는 어떻게 하면 데이터를 많이 모을 수 있을 까가 화두였다.

하지만, 오늘날 모바일 과 인터넷기술의 발전으로 데이터를 데이터를 축적되는 속도가 매우 높아졌다.

앞어 살펴본 2가지 사례와 같이, 분야를 막론하고 빅데이터의 분석은 어떤 일의 성패와 매우 관련성이 높다.



왜 파이썬인가?

오늘날의 빅데이터란 테라바이트 단위를 말한다. 하지만 개인이 다룰 데이터는 수백 메가바이트 혹은 기가바이트 수준일 뿐이다.

WLWCodeColorizer.zip

첨부파일을 다운 받아서, 다 모든행이 열리지도 않음에도 불구하고,  년도에 따른 출생자를 구하기 위해, 일부행을 지운 상태에서
데이터 > 부분합 > Year, 합계, Count를 선택해서 구해보자.

image

왼쪽 상단의 2번 탭을 눌러서, 각 년도에 따른 출생수(Count)를 살펴보자. 하지만 우리는 각 년도별 성별(남/여)에 따른 출생수의 합도 구해야한다. 이때, 부분합을 한번 더 누른 다음 [ gender , 합계, Count, 새로운값으로 대치를 해제 ]하면 된다. 3번째 탭에서 확인해보자.

image

근데 우리가 해야할 분석은 부분합 2번 하는 것보다 더 복잡할 수 도 있다. 예를 들어, 각 연도별 성별 조합에 따른 출생수의 합 내에서 전체대비 상위 1000가 차지하는 이름의 비중을 구하는 방법은 어떻게 할 것인가?
각 연도별 성별 내에서, 출생수를 기준으로 내림차순 정렬한 다음, 출생수가 많은 이름별로 1번부터 1000번까지 세야한다.

이렇게 엑셀을 통한 빅데이터분석은 계산과정도 함수도 너무 복잡해진다. 결정적으로 데이터가 1048576행까지밖에 로드가 안되며, 그 상태에서 여러방향으로 분석하려해도 속도가 느리고 유연성이 떨어진다.

반면 파이썬에서는 2줄이면 파일을 모두 로드할 수 있고, 차트도 한번에 해결된다. 대신 데이터를 일일히 보여주진 않는다. 작은 데이터규모는 엑셀이 편한데, 빅데이터의 경우에는 파이썬이 압도적이다.


다른 언어도 있는데 왜 수많은 언어중에 파이썬인가?

  • 언어 자체가 너무 쉽다.
  • 컴퓨터와 대화가 가능하다. 대화식 프로그래밍 방식은 파이썬 이외에 스크립트언어의 특징이기도 하다.  자바, 스칼라, 루비 등이 있다.
    특히, 파일이 바뀔때마다 컴파일을 해야하는 수고가 던다.
  • 강력한 라이브러리를 가진 것이 독보적이다.(NumPy, pandas, matplotlib)
  • 공짜다(R과 Phython은 모두 무료인 open source)

R과 python은 무슨 차이인가? 위의 장점들은 R도 가지고 있으나, 파이썬은 경우 다양한 목적으로 사용할 수 있는 언어다.

예를들어,  오늘의 주식시장을 분석한 데이터를 웹사이트에 업데이트하고자 한다. 이런 경우에는, 파이썬 라이브러리를  사용하여 주식시장 데이터를 긁어온 다음, 미리 분석가가 짜놓은 데로 원하는 데이터분석을 실시간으로 하도록하고, 파이썬 웹 프레임워크로 웹사이트를 만들 수 도 있다.


+ Recent posts