R, 그리고빅데이터 제 30 회 Open Technet - 빅데이터오픈소스플랫폼기술세미나 2012.07.26 이동우 지티원
R, 그리고빅데이터 2
What is R? R is a language and environment for statistical computing and graphics. l Data analysis software l A programming language - 통계학자들이디자인하고통계학자들을위한개발플랫폼 l An environment - 데이터와관련된입출력, 핸들링, 관리, 분석, 그래픽등최신의알고리즘및라이브러리제공 l An open-source software project - Free, open, and active l A community - 수천명의 contributors, 2 백만이넘는사용자 - 각업무도메인과관련된리소스와도움말제공 3
R : Open source analytics for the enterprise 4
R 에대한관심의증가 l 폭발적인사용자증가와개발자의확산으로, 대학교육의표준툴로 자리잡음 출처 : Revolution Analytics 5
기업체에서의 R 의활용 l 빅데이터기업의분석플랫폼엔진으로사용중이며, 유수기업에서 데이터분석 tool 로사용중임 6
기업체에서의 R 의활용 l 특히, Google 과 Facebook 은 R 을자사의주된분석플랫폼으로 활용하고있음 Google's R Style Guide Google uses R for data exploration and model prototyping, it is not typically used in production: in Bo s group, R is typically run in a desktop environment. - Bo Cowgill, Google http://www.dataspora.com/2009/02/predictive-analytics-using-r/ Itamar conveyed how Facebook s Data Team used R in 2007 to answer two questions about new users: (i) which data points predict whether a user will stay? and (ii) if they stay, which data points predict how active they ll be after three months? - Itamar Rosenn, Facebook 7
소프트웨어 Vendor 의 R 적용 l Oracle, IBM 의 Netezza, SAP 의 HANA, Teradata 등에서 in-memory 혹은 in-database 분석엔진으로 R 을적용함 8
통계소프트웨어 Vendor 의 R 적용 l SAS 나 SPSS 등의통계소프트웨어에서 R 과의연동을통해새로운 분석방법을제공 SAS/JMP 9
SAS understands why R A key benefit of R is that it provides near instant availability of new and experimental methods created by its user base without waiting for the development/release cycle of commercial software. SAS recognizes the value of R to our customer base Michael Gilliland, Product Marketing Manager SAS Institute, Inc. 10
SPSS with R l 왜 SPSS 에서는 R 이필요한가? - 가장최신의 가장많은알고리즘보유 - 오픈소스의강점으로, 매우희귀한분석이나다양한최신의알고리즘이 R 을 통해서, 자유롭게공급배포되고있음. ( 일반상용통계패키지가접근이어려운점 ) l SPSS Statistics 17 버전 ( 권장은 18 이후 ) 이후 R 과의결합으로상호 Win-Win 달성 - 더욱더강력해진 SPSS, 활용도가높아진 R 평소에 SPSS 를이용하여, 회귀분석이나, 각종 TEST 를수행을하여, 논문및연구보고서를만들었는데, 새로운연구의경우 Tobit 회귀를써야했어요 그러나 SPSS 에서분석기능이지원이되지않아, 다른통계패키지를배우고, 습득하는데, 고생이많았습니다. SPSS 쓰다다른패키지갔다가 헷갈리기도하고 그러나이번확장모듈로간단히해결이됐습니다!!! 출처 : RUserConf2011 - SPSS 를이용한 R 연동기능소개와분석기능의시너지효과, 허준, SPSS Korea, 2011.10.28 11
Big Data 분석을위한 R 의활용 l 빅데이터분석을위한아키텍처전반에걸쳐공통적인분석플랫폼으로 자리잡음 출처 : Revolution Analytics 12
R 의특징 l In-Memory Computing - 빠른처리속도, H/W 메모리크기에영향을받음 l Object-oriented programming - 데이터, 함수가 object로관리되어짐 - 클래스 (class) & 메소드 (method) l Package - 최신의알고리즘및방법론을적용 - 다양한함수및데이터내장, Help의 Examples 바로사용가능 l Visualization - 분석에통찰을부여할수있는그래픽에대한강력한지원 - Chart, Plot, MotionChart, Map 연계등을 R에서바로사용가능 13
History of R 출처 : 유충현 ( 넥스알, 빅데이터애널리틱스인사이드 2011) l R은 1993년뉴질랜드오클랜드대학의통계학과교수 2명 (Ross Ihaka, Robert Gentleman) 에의하여개발 l 1976년 Bell Lab의 John Chambers, Rick Becker, Allan Wilks에의하여개발된 S Language에그뿌리를두고있음 14
The R Foundation (http://www.r-project.org) l R Development Core Team 멤버들에의하여설립된비영리단체 l R 의배포와수정은 R Development Core Team 과많은기여자들에 의하여이루어지고있음 15
CRAN (The Comprehensive R Archive Network) http://cran.r-project.org/ Korea : http://cran.nexr.com/ l R 은 CRAN Site 를통하여자유롭게다운로드받아설치할수있음 l 현재 39 개국 87 개 Mirror 사이트운영중 16
R Package R Package (http://cran.r-project.org/web/packages/) R 패키지수 l CRAN Site 에 3,938 개등록됨 (2012 년 7 월 20 일기준 ) l 이러한패키지들은새로운통계분석알고리즘이나새로운 IT 기술의응용에관한것을포함 l Software Vendor에의하여 Version Up이되지않는다는것이다른통계분석소프트웨어와의차이임 17
R Package CRAN Task View (http://cran.r-project.org/web/views/) 18
R Package Crantastic! (http://crantastic.org) 19
ggplot2 패키지 R Visualization l ggplot2 is a flexible, colorful, and dynamic graphics package: 20
Word Cloud R Visualization l R 에서 text mining 시많이사용하는 Word Cloud 결과를바로출력 21
2-D contour map of Maunga Whau volcano R Visualization 22
R Visualization 3-D contour map of Maunga Whau volcano Make it 3-d: 23
googlevis 패키지 R Visualization l R 에서구글데이터시각화 API 를이용 MotionChart 기술은 Gap Miner 를 googlevis 에붙여서 R 에서바로사용이가능 Hans Rosling: No more boring data: TEDTalks http://code.google.com/p/google-motion-charts-with-r/ 24
RgoogleMaps 패키지 R Visualization l 구글지도상에다양한정보를표출 고속도로영업소위치표출 # 패키지로딩... library(rgooglemaps) # 데이터읽어들이기 tollgate_info <- read.csv(" 영업소정보.csv") # 지도중심위치설정 map.center.loc <- c(36, 128) # 지도레벨 input.zoom <- 7 map_data <- tollgate_info # 고속도로영업소표시 win.graph() mymap <- GetMap(center = map.center.loc, zoom = input.zoom, maptype = "road", format = "roadmap", destfile = "mymap.png") PlotOnStaticMap(mymap, lat = map_data$y 좌표, lon = map_data$x 좌표, destfile = "mymap.point.png", cex = 1, pch =20, col="blue ) 출처 : 베가스 R 소개자료, 김준기 25
animation 패키지 R Visualization l R Graph 결과를 animation 으로생성 # animation 으로생성 savehtml({ for(map.i in 1:length(unique.name)) { mymap <- GetMap(center = map.center.loc, zoom = input.zoom, maptype = "road", format = "roadmap", destfile = "mymap.png") PlotOnStaticMap(mymap, lat = map_data[map_data$ 지역본부 == unique.name[map.i], ]$Y좌표, lon = map_data[map_data$ 지역본부 == unique.name[map.i], ]$X좌표, destfile = "mymap.point.png", cex = 1, pch =20, col="blue") } }, img.name = "unif_plot", imgdir = "unif_dir", htmlfile = "random.html", autobrowse = FALSE, title = " 고속도로영영소 ", description = c("rgooglemaps 패키지를활용한데모.\n\n")) 출처 : 베가스 R 소개자료, 김준기 26
RGUI Useful R IDE l RGui 실행기본화면은메뉴, 단축아이콘, 콘솔창으로구성 27
Useful R IDE R Studio (http://www.rstudio.org/) 28
R Studio Useful R IDE 29
Useful R IDE Red-R (http://www.red-r.org/) 30
Red-R Useful R IDE 31
Useful R IDE Rattle (http://rattle.togaware.com/), (install.packages("rattle")) 32
Useful R IDE Rattle (library(rattle); rattle()) 33
Useful R IDE RExcel (http://rcom.univie.ac.at/) 34
RExcel Useful R IDE 35
Useful R IDE R Commander (install.packages("rcmdr"), library(rcmdr)) 36
R Commander Useful R IDE 37
Revolution R (http://www.revolutionanalytics.com/) Useful R IDE 38
Revolution R Useful R IDE 39
Useful R IDE StatET for R (http://www.walware.de/goto/statet) 40
StatET for R Useful R IDE 41
R 을배우는데도움이될만한곳 l http://www.r-project.org l http://www.r-project.kr ( 한국 R 사용자모임 - KRUG) l http://www.r-bloggers.com l http://stackoverflow.com l http://stats.stackexchange.com l http://www.inside-r.org/ l http://www.r-statistics.com/ l http://support.rstudio.org/ l http://quora.com 42
R 을배워업무에적용하려면 43
Learning R 출처 : Revolution Analytics 44
R, 그리고빅데이터 45
advantage Compe etitive Advanced Analytics l 요즘화두가되는고급분석 (Advanced Analytics) 은통계분석, 예측 ( 스코어 ) 모형, 시계열분석과최적화등을의미합니다 대부분의기업들은고급분석이가능한분석전문가들을리포팅작성에활용하고있습니다 Optimization What s the best that can happen? Predictive Modeling Forecasting/extrapolation Statistical Analysis Alerts Query/drill down Ad hoc Reports What will happen next? What if these trends continue? Why is this happening? What actions are needed? Where exactly is the problem? How many, how often, where? Analytics Access and Reporting Standard Reports What happened? Degree of Intelligence 출처 : Davenport and Harris, Competing on Analytics, Harvard Business School Press (2007) 참조 46
What is Big Data Analysis? 출처 : SAS and IDC 47
What makes a good data scientist? l Technical expertise( 기술적인전문성 ): the best data scientists typically have deep expertise in some scientific discipline l Curiosity( 호기심 ): a desire to go beneath the surface and discover and distill a problem down into a very clear set of hypotheses that can be tested. l Storytelling( 스토리텔링 ): the ability to use data to tell a story and to be able to communicate it effectively. l Cleverness( 영리함 ): the ability to look at a problem in different, creative ways. * Patil, DJ (2011-09-22). Building Data Science Teams. O Reilly Media 48
빅데이터분석에서의 R 의문제점 l Single Core 연산 - 멀티코어 CPU 에서 1 코어만사용한다 - R 2.14 부터 parallel 패키지기본탑재 l In-Memory 연산의특징상메모리한계문제 - 모든데이터를메모리에로딩후처리하는작업방식 - 불필요한데이터저장으로인한메모리부족현상 è Open Source 에서의대응방안 l Snow, multicore, parallel, bigmemory 등의패키지들이 Multi-core 사용및논리적으로메모리한계를극복한패키지들을제공하고있음 l 하지만위의방법들모두로컬머신으로데이터를가져온다는문제로 인하여다른방법의해결책이필요 49
RHIPE (http://www.datadr.org/index.html) l RHIPE(R and Hadoop Integrated Programming Environment) 는 Purdue Univ. 의통계학박사과정학생이었던 Saptarshi Guha 에의해 개발된 R 패키지 l R 을 Hadoop 환경에서 MapReduce 개념의분산처리가가능하게해줌 l 이후 Revolution Analytics 사에서 RHadoop 패키지를공개함. l Divide & Recombine (D&R) 기법, not parallel processing. Facebook 에서 RHIPE 소개하는 Video (2010.03.09) http://www.lecturemaker.com/2011/02/rhipe/ 50
RHadoop (https://github.com/revolutionanalytics/rhadoop) l Hadoop 기반의 Map-Reduce 기능구현을 R Code 로작성할수있어 쉽게 Hadoop 기반의분석이가능함 출처 : Revolution Analytics 51
RHadoop (Word Count Example) 출처 : 베가스 R 소개자료, 김준기 52
RHive Motivation of Rhive (NexR) 출처 : R and RHive in Data Scientists toolbox, 전희원 (2011) 53
RHive (https://github.com/nexr/rhive) l R 과 Hive 기술을접목하여, 작은데이터는 R 에서바로처리하고 빅데이터는 Hive 의기술을이용하여 Hadoop 에서처리가가능 출처 : R and RHive in Data Scientists toolbox, 전희원 (2011) 54
RHive Example 출처 : http://www.nexr.co.kr/nexrcorp_en/products_and_services/rhive_usecase.php 55
RevoScaleR l RevoScaleR 을통하여 Single Core 문제및메모리제한문제를해결 l 또한 HPC Clusters/Cloud 에 R 분산처리를가능하도록지원 RevoScaleR on Sing Computer RevoScaleR on Multiple Computers 주 ) 현재는 HPC Clusters, IBM LSF Cluster 에서지원, 2012 하반기에 Linux Clusters 도지원예정 출처 : Revolution Analytics 56
High-Performance Computing (http://cran.r-project.org/web/views/highperformancecomputing.html) l Parallel computing: Explicit parallelism à Rmpi, snow, snowfall, foreach, dompi l Parallel computing: Implicit parallelism à fork, multicore l Parallel computing: Grid computing à GridR, xgrid, biocep-distrib l Parallel computing: Hadoop à RHIPE, Rhadoop, EMR(Elastic Map Reduce) l Parallel computing: Random numbers à dorng, rprng l Parallel computing: Resource managers and batch schedulers à batch, BatchJobs l Parallel computing: Applications à caret, maanova, tm, bcp l Parallel computing: GPUs à gputools, cudabayesreg, OpenCL, WideLM l Large memory and out-of-memory data à bigmemory, biglm, ff, HaddpStreaming l Easier interfaces for Compiled code à inline, Rcpp, rjava l Profiling tools à profr, proftools 57
RevoDeployR (Architecture) l RevoDeployR 을통하여 R 분석환경을웹 Application 으로구현가능 출처 : Revolution Analytics 58
RevoDeployR (Sample App) l DeployR 과 HTML5 plot library from JingCharts 를이용한웹화면 출처 : Revolution Analytics 59
고객의니즈 l 빅데이터가있는데저장할수있는지? : 법적으로보관해야하는데이터라서무조건일정기간보관해야함그렇지만상용 RDBMS (Scale-up) 로는비용이너무많이들어가고, 한곳에서다처리를못해서분리해서데이터를저장함. è 빅데이터처리를저비용으로한곳에서 Scale-out 방식으로할수있는지? l 저비용으로빅데이터분석환경을구축할수있는지? : 빅데이터를모우고나면분석을해야하는데, 고성능의 SAS나 SPSS를사용하려니비용이너무비싸서엄두를못냄. 특히해당라이선스가일회성이아닌매년유지료를내야하므로비용감당이어려움. è 저비용으로빅데이터분석을할수있는기업용고급분석환경을구축해줄수있는지? 60
LCBEx (Low Cost But Excellent) 분석플랫폼 l 바람직한분석시스템의구축은분석엔진을중심으로마련된저비용 (Low Cost) 이지만고성능이며확장성이나인터페이스가뛰어난 (Excellent) Analytic Platform( 분석플랫폼 ) 을중심으로이루어져야함 Efficiency 저비용 오픈소스소프트웨어기반으로구축해최대한도입비용을낮춰야함 고성능 구현사상을고려하였을때, 빠른계산처리및새로운알고리즘, 방법론이제공되어야함 분석플랫폼 Scalability 확장및통합용이성 독립된형태의분석시스템구축없이분산처리를통한처리가가능하여야함 Hadoop과같은오픈소스기반의솔루션을활용할수있음 Agility 구현신속성 분석방법이나결과등을오브젝트로관리하여공유, 재활용이가능하여야함 정형화된분석프로세스의패키징이용이하여이관이나재활용이용이하여야함 출처 : 베가스 R 소개자료, 김준기 61
결론 l 빅데이터는있다. 하지만 l 어떤가치를찾아야하는건가? 다양한시도를해볼수있는환경 ( 비용저렴, 기술공개 ) 이만들어지고있다. è 결국가치를찾고자하는사람이 Data Scientist 가되려고노력 ( 기술의내재화 ) 을해야한다. Slow and Steady Wins the Race. Study, study, study, study.study. 62
감사합니다. 이동우 지티원 DG 서비스사업부 Tel : 010-4801-6609 email : leewow@gtone.co.kr 63