Jupiter Notebook 다중커널을 이용한 Python, R, Tensorflow 설치 및 활용

이미지
IPython Notebook을 이용하여 Python 3, Tensorflow 그리고 R을 설치하고 웹브라우져에서 이를 동시에 사용하면서 데이터 분석을 할 수 있는 Multi Kernel 기능을 활용해보자. 먼저 Anaconda를 설치한다. https://www.continuum.io에서 OS와 Python 버전을 확인하고 아나콘다를 설치한다. 아래와 같이 노트북을 실행하면 # jupiter notebook http://localhost:8888로 접속된 웹브라우져가 열리고 기본 설치된 Python 커널을 사용하여 프로그램이 가능하다. 다음으로 Tensorflow을 설치한다. # conda create -n  tensorflow python=2.7 # source activate tensorflow #  (tensorflow)$ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.9.0rc0-cp27-none-linux_x86_64.whl # (tensorflow)$ sudo pip install --upgrade $TF_BINARY_URL # (tensorflow)$  conda install ipython # (tensorflow)$ condo install jupiter # source deactivate /usr/local/share/jupyter/kernels/python3 폴더를 tensorflow로 복사하고 kernel.json을 아래와 같이 변경해준다. (커널이 없으면 #  ipython kernelspec install - self -- user) {  "display_name": "tensorflow",  "argv": [   "/Us...

CentOS 7에 R 설치하기

이미지
최근 사용의 편의성때문에 Ubuntu를 클라이언트뿐만 아니라 서버로도 사용하지만 그래도 Redhat 계열의 CentOS를 서버로 사용하는 경우가 더 많다. 그래서 CentOS 7에 R을 설치하는 방법을 간단하게 정리해보면, 먼저 CentOS에서 기본적으로 제공하고 있는 Repository로는 R을 직접 설치하지 못하므로 EPEL(Extra Packages for Enterprise Linux) 저장소를 추가해야한다. # yum install -y epel-release 아래 yum 명령어로 epel 저장소가 추가 되었는지 확인한다. # yum repolist 정상적으로 Repository가 등록되었으면 이제 yum 명령어로 R을 설치한다. # yum update -y # yum install -y R 이제 Console에서 R을 실행할 수 있다. # R

Machine Learning 서버 구축

이미지
학계의 수 십년간의 연구와 세미나보다 알파고의 5번의 대국이 Machine Learning(기계학습) 이란 전문용어를 초등학교 학생들 사이에서도 회자되게 하였으니...그 동안 발전된 기계학습의 기술도 대단하지만 기업의 마케팅과 메스미디어의 영향이 얼마나 큰지 보여주는 일면이기도 하다. 그 동안 Deep Neural Network은 Non-linear Activation 문제, Label되어 있는 Data의 부재, Overfitting과 Back-propagation의 한계, Local minima의 문제 등으로 한계에 도달했었으나 최근에 ReLU, Big Data, Dropout, GPGPU의 활용 등으로 그 활용가능성을 충분히 보여주고 있다.  또한 Caffe, Touch, Theano에 이어 구글이 최근 오픈한 Tensorflow 등의 Deep Learning 프레임워크는 Machine Learning을 만개하는 촉매역할을 충분히 하고 있다. 그럼 Tensorflow와 일반 PC를 이용한 Machine Learning 서버를 구축해보자. 하드웨어는    - CPU : Intel Core i7    - Main Memory : 16 GB    - Graphic Card : GeForce GT 620 CPU는 일반 PC에서 사용하는 8 Core i7 정도면 되지만 RAM은 8~16 GB 정도지만 다다익선이고, 그래픽 카드는 Nvidia 980이상을 추천한다. (타이탄 X면 더욱 좋지만 비싸니 집에 돌아 다니는 GT 620도 그런데로...^^) OS는 CUDA 설치를 위하여 최신의 LTS버전인 Ubuntu 16.04 보다는 14.04.4 버전을 설치한다. 우분투는 http://www.ubuntu.com/download/alternative-downloads 에서 64 bit로 다운로드를 받아 부팅이 가능한 CD나 USB로 Burning하여 설치한다. 우분투 설치는 오래전...

오즈와 오즈비, 왜 사용하지?

로지스틱 회귀분석등 범주형 데이터를 이용한 분석에서 오즈(odds)와 오즈비(odds ratio)라는 용어를 자주 접하게 된다. 어려운 계념이 아니지만 조금 혼란스러워하는 부분이 있어 간단하게 정리를 해본다. 먼저, 오즈는 p/(1-p)로써 실패할 확률대비 성공확률로 (또는 실패 횟수대비 성공횟수) 계산이 된다.    즉 실패대비 성공의 비율을 말한다. 오즈비는 두 방법, 즉 방법 1과 방법 2의 각 오즈의 비율로 계산된다.  {p1/(1-p1)} / {p2/(1-p2)} 이렇게 계산된 오즈비로 성공은 실패대비 방법 1이 몇배 더 효과적인가를 알 수 있다. 그런데 왜 이런 조금은 복잡해(?) 보이는  오즈비를 사용하는가? 그 이유는 예를 들어 방법 1과 방법 2를 적용할때 일반적으로 모집단 크기를 알 수 없고, 단지 표본의 크기를 선택하여 성공과 실패 횟수를 얻을 수 있기때문에 통계처리시 많이 이용하게 된다.  

이제는 빅데이터 전문가(Data Scientist) 개인의 역량이 아닌 조직의 역량이 필요

이미지
국내에 빅데이터가 알려진지도 수년이 훨 넘었고, 공공 및 기업에서도 나름 다수의 프로젝트들이 진행되거나 완료되어 성과를 내고 있다.    그런데 아직도 많은 프로젝트들이 전문가(Data Scientist)의 개인 역량에만 의존하다 보니 중간 산출물과 최종 분석모델 그리고 빅데이터 구현 시스템에 대한 품질 분산이 너무 크고 프로젝트의 성공과 실패를 가늠하기 쉽지 않은게 현실이다. 이제 빅데이터도 Data Scientist 개인역량으로만 좌지우지되는 프로젝트가 되어서는 않된다.   빅데이터 프로젝트를 진행하는 조직의 성숙도가 객관적으로 측정되고 프로젝트의 성패를 예측할 수 있는 완성도 높은 방법론이 필요한 시점이다. 얼마전 한국데이터베이스진흥원에서 진행하고 있는 빅데이터 전문가 양성과정 교육에서 "빅데이터 방법론과 기계학습"을 강의하면서 느낀점은 통계와 R문법, 시각화 도구 사용법과 Hadoop 등 기술에만 치우친 교육보다는 프로젝트를 기획하고 실제로 진행할 수 있는 Path를 알려주는 것도 이제는 빅데이터 교육의 한 섹션으로 자리를 잡아야 할 것 같다는 생각이 들었다.

빅데이터 활성화를 위한 다섯 종류의 데이터와 데이터 거래

기업섹터뿐만 아니라 공공섹터에서도 데이터 분석을 위해서는 외부데이터와의 Mashup이 대단히 중요하고 의미있는 결과를 도출하기 위해서는 필수라고도 말할 수도 있다. 이러한 데이터는 크게 다섯 종류가 있다.    1. 거래정보    2. 위치정보    3. 날씨정보    4. 뉴스정보    5. SNS정보 거래정보는 주로 카드사용이나 금융 • 상품거래와 관련된 데이터이고, 위치정보는 교통 및 이동 등에 대한 데이터로 구성될 수 있으며, 날씨정보는 시계열성의 위치별 다양한 기상 데이터이고, 뉴스와 SNS정보는 뉴스 기사와 인터넷 커뮤니케이션 데이터 등이다. 물론 이 다섯가지 이외에도 더 많은 정보들이 필요할 수 있다. 그러나 개인정보보호법과 데이터 거래에 대한 비즈니스 모델이 아직 명확하게 형성되지 못해 현재 몇몇 자료는 데이터 획득에 어려움을 격고 있어 빅데이터산업 활성화에 지장을 주고 있다. 얼마전 모 지자체에서 위치정보를 활용한 빅데이터 프로젝트가 오픈되었는데, 이 정보를 갖고 있는 대기업과 손을 잡지 못하면 제안도 할 수 없는 이해하기 어려운 헤프닝이 있었다.  물론 그 기업이 갖고 있는 자료도 전체 수집해야 될 모집단의 50%도 못되는 데이터였다. 개인정보보호법을 위반하면서 정보를 오픈하거나 불법 데이터 거래가 되어서는 절대 않되지만, 개인식별이 되지 않도록 변경된 정보는 거래가 될 수 있도록 방안을 찾아야 할 것이고 스타트업을 위해서는 샘플 데이터를 빨리 오픈하는 것이 필요하다고 생각된다. 그러한 관점에서 아래 기사는 시사하는 바가 있다. http://media.daum.net/economic/stock/market/newsview?newsid=20150603204413318

맥에서 여러 버전의 R을 사용하기

데이터 분석을 위한 R은 버전에 따라 패키지 설치나 업데이트가 되지 않는 경우가 있다. 특히 맥에서 seewave, tuneR 등의 멀티미디어 분석용 패키지는 버전을 많이 탄다. 맥에 여러 버전의 R을 설치하고, 필요시 쉽게 버전을 변경할 수 있는 Script를 소개합니다. 1. cran 사이트에서 필요한 버전의 R을 다운받아 설치하면     /Library/Frameworks/R.framwork/Versions 에 버전별로 Directory 생성 2. 같은 Directory에 Current라는 Link파일이 현재 사용중인 R 버전을 Pointing 3. 현재 사용중인 R 버전을 확인하려면 ./getR  버전을 변경하려면 ./setR 버전번호 getR     ls -l /Library/Frameworks/R.framework/Versions setR     RPATH=/Library/Frameworks/R.framework/Versions     ln -sfn $RPATH/$1 $RPATH/Current     ./getR