newbom

02장. 빅러닝 환경 본문

1. 빅러닝 분석 도구

빅러닝 도구 필수 조건

1. 데이터 포맷 지원

대부분의 분석 솔루션이 테이블 데이터를 처리할 수 있으며, 이들 테이블에는 보통 숫자, 문자열, 시간 등 다양한 데이터형이 포함될 수 있다.

테이블 형태의 데이터 처리에 필요한 필터링(filtering), 정렬(sorting), 조인(joining), 합계(aggregation) 등의 연산을 제공한다.

 

2. 속도와 용량

하둡은 거의 무한대의 용량을 처리할 수 있으며, 인텍스 및 크러스터 구축 여부에 따라 RDBMS 역시 테라바이트급의 데이터를 저장 및 처리할 수 있다.

 

3. 확장성

최근에는 판다스, 넘파이, 심파이 등을 포함하는 파이썬 기반의 솔루션이 많이 사용되고 있다.

 

4. 지원

예측/시각화 이외에 부가적인 기능이라 할 수 있는 시각화 기능의 경우 R이나 파이썬이 가장 강력한 기능을 제공하지만, 기본적인 기능은 엑셀에서도 제공한다.

 

파이썬과 R

구분 파이썬 R
장점 • 특정 주제나 용도에 국한되지 않은 배우기 쉬운 언어
 다양한 용도의 언어
 데이터 시각화
 라이브러리 생태계
 데이터 사이언스의 통용어
단점  시각화
 데이터 분야 도전자 파이썬
 느린 속도
 어려움

 

결론은 파이썬

파이썬이 범용 프로그래밍 언어의 장점은 물론 매트랩과 R같은 특정 분야를 위한 스크립팅 언어의 편리함을 함께 가지고 있으므로 파이썬을 더 선호하게 됐다.

 

1. 단순 프로그래밍

파이썬이 처음 만들어졌을 때 주된 목표는 읽고 쓰기 쉬운 언어였으므로 다른 개발자로부터 빅러닝 애플리케이션을 넘겨받을 때 적은 노력이 필요한 언어로써 단순성에서 우수하다.

 

2. 풍부한 라이브러리

판다스, 사이킷-런(Scikit-learn)부터, 텐서플로우(TensolFlow), CNTK, 아파치 스파크 MLlib(Apache Spark MLlib) 등 알려진 머신러닝 및 딥러닝(Deep Learning) 프레임워크 대부분이 파이썬의 영역에 있거나 파이썬 API를 지원한다.

 

3. 느린 파이썬 그래도 좋다

파이썬은 개발 편의성 대신에 순수한 성능을 선호한다. (연산 집약적인 작업을 처리하는 것은 파이썬이 아니기 때문이다)

 

4. 애플리케이션 개발

파이썬에서 가장 대표적인 웹 프레임워크 중 하나인 장고(django), 플라스크(flask) 등을 이용하면 신속하고 빨리 웹 애플리케이션을 개발할 수 있다.

[그림 1] 파이썬 트렌드

 


2. 개발 환경 준비

아나콘다 설치

 

아래의 링크를 따라가면 맥(MAC) / 윈도우(Window) 두 버전의 아나콘다(Anaconda) 설치를 확인할 수 있다.

newbom.tistory.com/category/%EC%95%84%EB%82%98%EC%BD%98%EB%8B%A4%28Anaconda%29%20%EA%B0%80%EC%83%81%ED%99%98%EA%B2%BD%20%EC%84%A4%EC%A0%95

 

파이썬 주요 라이브러리

 

1. 판다스

판다스(Pandas)는 월스트리트 금융가의 분석 전문가 웨스 매키니(Wes McKnney)가 개발한 패키지로 행과 열의 정형 데이터 즉, 2차원 데이터 처리에 사용된다.

 

설치 : pip install pandas
사용 : import pandas as pd

 

2. 맷플롯립

맷플롯립(Matplotlib)은 파이썬 시각화 표준 패키지이며 맷플롯립은 파이썬에서 그래프 등 시각화 이미지 등을 표현할 때 사용한다.

 

설치 : pip install matplotlib

사용 : import matplotlib.pyplot as plt

 

3. 시본

시본(Seaborn) 패키지는 맷플롯립 패키지에서 지원하지 않는 시각화 라이브러리를 지원한다.

 

설치 : pip install seaborn

사용 : import seaborn as sns

 

4. 넘파이

넘파이(Numpy)는 파이썬 과학 패키지이며, 선형대수, 배열 등 수학 연산에 필요한 필수 합수들 외에 자료형이 고정된 다차원 배열 클래스와 백터화 연산을 지원하는 패키지입니다.

 

설치 : pip install numpy

사용 : import numpy as np

 

5. 사이파이

사이파이(SciPy)는 고급 수학 함수, 수치적 미적분, 미분 방정식 계산, 최적화, 신호 처리 등에 사용하는 다양한 과학 기술 계산 기능을 제공한다.

 

설치 : pip install SciPy
사용 : import scipy as sp

 

6. 심파이

심파이(SymPy) 패키지는 인수 분해, 미분, 적분 등 심볼릭 연산 기능을 제공한다.

 

설치 : pip install sympy

사용 : import sympy as sym

 

7. 머신러닝 딥러닝 패키지

사이킷런(Scikit-learn)은 머신러닝 학습용 패키지로 다양한 머신러닝 모형 즉, 알고리즘을 하나의 패키지에서 모두 제공하고 있다.

 

설치 : pip install scikit-learn

사용 : import sklearn as sk

 

텐서플로(Tensorflow)는 구글에서 개발한 텐스플로 신경망 모형 등의 딥러닝 모형을 위한 파이썬 패키지로 대량 연산을 필요로 하는 딥러닝 학습에 필수 패키지이다.

 

캐라스(Keras) 패키지는 텐서플로 패키지를 쉽게 사용할 수 있도록 도와주는 고수준 패키지로 지금은 텐서플로에 통합됐다.

 

파이토치(PyTorch) 패키지는 는 텐서플로와 같은 저수준 API와 캐라스와 같은 고수준 API를 같이 제공한다.

 

8. 스태츠모델

스태츠모델(Statsmodels)은 검정 및 추정, 회귀분석, 시계열분석 등 다양한 통계 분석 기능을 제공하는 파이썬 패키지이다.

 

설치 : pip install statsmodels

사용 : import statsmodels as sm

 

9. 지오판다스

지리정보 데이터 GIS(Geospatial Information System)는 좌표, 주소, 도시, 우편번호 등 위치 정보를 모두 포함하는 분야로 지오판다스(GeoPandas)는 파이썬에서 지리정보 데이터 처리를 위한 패키지이다.

 

설치 : pip install geopandas

사용 : import geopandas as gdp

 

10. 텍스트 분석

소이 NLP(Soynlp)는 한국어 텍스트 분석을 위한 파이썬 패키지 중 하나로 사용자 사전과 형태소 분석 없이 Cohesion(Character n-gram)기반으로 토큰화할 수 있는 기능을 제공한다.

설치 : pip install Soynlp

 

 


3. 분석 보고서 만들기

 

데이터 분석 결과는 코드와 결과물(그래프) 등이 기반이 되는 분석 보고서로 최종 완성된다.

데이터 분석 보고서는 동일한 분석 과정에 따른 결과를 보장하는 재현성(Reproducibility)이 중요하다.

("내가 하던 남이 하던 동일한 결과물을 내야 합니다.")

데이터 사이언티스트나 프로그래머들은 소스 코드를 편집하고 이를 실행하는 과정에서 '플레인 텍스트(ex> 윈도우 메모장 텍스트)'를 선호한다.

 

마크업

마크업 언어는 '마크(Mark)'로 지정된 언어로 '태그(Tag)'로 되어 있다.

HTML, XML 등 대표적 마크업 언어들은 문서의 구조를 정의한다.

 

마크다운

마크다운은 텍스트 기반의 마크업 언어이다.

마크다운이 최근 각광받기 시작한 이유는 깃허브(https://github.com) 덕분이다.

깃허브의 저장소에 관한 정보를 기록하는  README.md가 대표적인 마크다운 문서이다.

장점 단점
간결하여 별도의 도구 없이 작성이 가능하며 다양한 형태로 변환이 가능함 표준이 없음
표준이 없기 때문에 도구에 따라서 변환 방식과 결과물이 다름
모든 HTML 마크업을 대체하기 못함
텍스트로 저장되기 때문에 용량이 적어 보관이 용이함
텍스트 파일이기 때문에 버전관리시스템을 이요하여 변경 이력을 관리할 수 있음
지원하는 프로그램과 플랫폼이 다양함

 

Comments