대메뉴 바로가기 본문 바로가기

데이터 기술 자료

데이터 기술 자료 상세보기
제목 R을 이용한 기존 분석 환경 전환 방법론
등록일 조회수 5410
첨부파일  

Oracle R 기반의 Big Data 분석 Tip

R을 이용한 기존 분석 환경 전환 방법론



국내외 기업들은 이미 상용 통계소프트웨어를 이용해서 분석환경을 구축하였으며, 이를 빅데이터 기반의 환경으로 변환하는 것에 많은 고민을 하고 있다. 이러한 분위기에 함께 이슈화 되고 있는 것이 Open Source 기반의 통계소프트웨어인 R이다.

저자 - 임상배 컨설턴트, 한국오라클 Technology사업본부(sangbae.lim@oracle.com)



기업의 분석 환경에 R을 적용하기 위한 첫 번째는 기존의 통계소프트웨어가 커버하고 있는 영역에 대한 대체 가 가능한지를 판단하여야 한다. 기본적인 통계분석을 위한 도구뿐만 아니라 Data Mining과 같은 고급분석 소프트웨어를 대체 가능하여야 대체 가능하다고 할 수 있겠다. 두 번째는 Open Source로서의 단점을 극복 할 수 있는 방법과 정보를 가지고 있는 DBMS, Hadoop 등의 시스템 활용을 극대화 할 수 있는 방안 마련하 도록 하여야 한다. 마지막으로 분석인력에 대한 지속적인 교육 및 가이드가 필요하다. 분석인력이 가지고 있 는 기존 통계소프트웨어의 지식을 R로 전환할 수 있도록 소프트 스킬뿐만 아니라 IT 전반적인 스킬을 업그레 이드 할 수 있는 체계적인 교육 및 가이드라인이 필요하다. Oracle에서는 Open Source의 단점을 극복하면 서 분석 환경을 R로 전환하고, 기존의 IT 인프라의 성능을 극대화 시킬 수 있는 방안으로 ‘Oracle Advanced Analytics’ 기능을 제시하고 있으며, 지속적인 기능의 업그레이드를 통해 R 기반 하에서의 빅데이터 분석 환 경을 갖출 수 있도록 지원하고 있다.



기본 기능 비교


통계 소프트웨어는 일반적으로 데이터를 처리 할 수 있는 Base 부분, Data를 통계적인 기법으로 탐색할 수 있는 EDA 부분, Statistics Model을 생성할 수 있는 Stat부분, 시각화를 할 수 있는 Graphics부분으로 구 성되며, Data Mining과 같은 GUI 환경의 모델링 Tool로 나누어 생각할 수 있다.

본고에서는 타 통계소프트웨어로서 기능비교를 통해 Oracle Advanced Analytics Option이 기업의 분석 환경에 적용 가능한지를 알아보도록 하겠다.
※ 타 통계소프트웨어나 Oracle Advanced Analytics는 많은 기능들을 가지고 있다. 모든 기능을 다룰 수 는 없지만 많이 사용하는 기능을 위주로 기술하였음을 고려해 주기 바란다.



Oracle Data Miner는 Oracle 데이터베이스에서 In-Database 알고리즘을 사용할 수 있는 분석 환경 프레임워크이며 SQL Developer를 통해 GUI 환경으로 구동할 수 있다. 일반적인 기업의 마이닝 프로젝트에서 주로 사용되는 알고리즘 위주로 구현되었으며, 데이터의 생성, 탐색, 변환, 모델, 평가하는 기능뿐만 아니라, SQL/PLSQL 기반의 Script를 생성해 주는 기능을 포함하고 있다.



Data Mining Project에서의 Oracle Advanced Analytics 적용






기업의 데이터 마이닝 프로젝트는 일반적으로 ‘Plan → Analyze → Design → Build → Validation → Implement’의 6단계로 진행된다.

1. Plan단계 업무별 현업의 요건을 수집/분석

2. Analyze단계 가설에 따른 필요 데이터를 확보, Factor의 요건정의 및 추출로직을 정의하고 확보된 데이 터에 대해서 통계소프트웨어의 기능을 통해 데이터 품질을 평가

3. Design단계 마이닝 모델의 타겟을 정의하고 분석수행 기간을 설정하며, Over-Sampling을 통해서 모델 의 정확도를 높이기 위한 작업을 수행

4. Build단계 모델 생성을 위한 마트 생성 및 유의 변수 선택 작업을 수행하며, 마이닝 툴을 이용한 모형을 생 성

5. Validation단계 테스트 데이터에 생성된 모델을 적용하여 적합성 및 효율성 검증. 현업과 모델에 대한 협 의를 통해 비즈니스적 의미 확인

6. Implement단계 최종 확정된 모형을 시스템에 적용 가능한 코드로 변환하고, 이를 시스템 테스트를 통해 적용한다.



Analyze - 데이터 품질 평가






데이터 품질 평가를 위해서는 빈도분석(Frequency)과 단변량분석(Univariate)을 활용하게된다. 데이터관리자로부터 인계받은 모든 데이터를 일일이 테이블명과 컬럼명을 확인해서 코드로 타이핑하기에는 많은 무리가 따른다. 하지만 R의 반복문 기능을 이용하여 처리하게되면 쉽게 수많은 테이블과 컬럼들을 처리 할 수 있다.



Analyze - Correlation








기초적인 데이터 탐색 기법으로 많이 활용되는 것이 각 Factor간의 상관관계를 볼 수 있는 Correlation 분석이다. R의 함수를 이용하여 상관관계를 분석하게되면 아래와 같은 형식의 상관행렬을 구할 수 있으며, corrplot를 활용하여 시각화 할 수 있다.

ORE의 ore.corr 함수를 이용하면 동일한 통계량 값을 얻을 수 있다. 하지만 행렬형태의 결과가 아닌 DB형태의 결과를 출력하여주므로 유의하기 바란다.



Analyze - Association Rule




상품간의 연관성을 분석하기 위한 Association Rule 분석이다. 일반적으로 Open Source R에서는 apriori 함수를 사용하지만 메모리의 제약사항으로 인해 수행 시간이 많이 걸린다. 하지만 ODM의 ore.admAssocRules함수를 사용하게 되면 오라클의 데이터베이스에서 함수를 이용해 연산함으로 대용량의 데이터에서도 안정적으로 활용할 수 있다.

(그림 4)는 ore.admAssocRules의 수행결과를 Lift값 상위 50개의 Rule만 추출한 것으로써 arulesViz Library를 이용하여 네트워크 다이어그램으로 시각화한 것이다.





Design - Sampling


일반 기업의 마이닝 프로젝트에서 빠지지 않고 수행되는 것이 Sampling이다.

‘빅데이터 환경이니까 전체 데이터에 대해서 모델 개발이 가능한 것 아닌가?’라는 생각을 가질 수도 있지만, Classification 모델을 개발하기 위한 타겟, 예를 들어 FDS의 부당청구건, 이탈모형의 해지고객 등은 전체 고객대비 많은 비율이 아닌 경우가 많다. 이런 경우에 Over-Sampling기법을 적용하여 전체 대상과 타겟 대상의 비율을 조정하게 된다. 위의 경우는 타겟에서 380명을 추출하고 나머지에서 1140명을 추출하여 3:1로 추출하는 예제이다.

이제 Analyze단계에서 정의된 Factor와 Over-Sampling기법에 의해서 추출된 고객을 대상으로 분석용 마트를 생성해서 GUI Tool인 Oracle Data Miner를 활용한 모델링을 수행하도록 하겠다.



Build - Oracle Data Miner




‘데이터소스’ 노드를 이용하여 오라클 데이터베이스에 있는 테이블을 선택하고 Classification 모델을 생성하기 위해 ‘분류’노드를 연결한다. 노드를 연결한 후에 ‘편집’ 메뉴를 클릭하면 ‘분류생성노드편집’창을 활용하여 타겟을 설정하고 ID컬럼을 설정한다. 또한 필요없는 알고리즘을 선택하여 삭제할 수 있다.

또한 ‘고급 모델 설정’ 메뉴를 이용하여 각 알고리즘의 설정을 변경하여 모델링을 수행할 수 있다.

팝업메뉴에서 ‘실행’을 선택하게 되면 In-DB 알고리즘에 의해 모델링을 수행하고, 완료를 해당 노드에 표시하여 준다. 다시 팝업메뉴에서 ‘모델보기’를 선택하게 되면 생성된 모형의 결과를 볼 수 있다.



<그림 9>는 Decision Tree 모형에 의한 결과이다. 노드5의 결과를 살펴보면 ‘If HOUSEHOLD_SIZE isin ( “3”, “4-5”) And EDUCATION isin ( “Assoc-A" "Bach." "Masters" "PhD" "Profsc") Then 1’ 로 분류하고 있으며, 1로 분류된 확률이 71.76%이다. 이와 같이 각 알고리즘의 특성에 따라 결과를 제공하고 있다.



Validation - 모델성능 평가


모델의 성능 평가는 Classification노드에서와 테스트 노드에서 가능하다. Classification노드에서의 성능평가는 입력 데이터를 Random Sampling하여 학습데이터와 평가용 데이터를 자동으로 나누어 모델링을 수행하며, 사용자가 직접 지정하여 비율을 설정할 수도 있다. 테스트 노드의 경우에는 따로 테스트용 테이터를 준비한 경우에 활용 할 수 있는 평가 방법이며, 마이닝 프로젝트에서는 Design단계에서 테스트를 위한 데이터 기간 설정을 통해서 정의하고 데이터를 생성한다.

성능탭에서는 성능매트릭스, ROC, Lift, Profit 탭의 결과에 대한 요약정보를 제공한다.



위의 결과에서는 예측신뢰도와 평균정확도면에서는 GLM모델이, 전체정확도면에서는 SVM모형델의 예측력이 좋은 것으로 나타났다. 사실 모델의 선택은 통계량 값을 기준으로 선택할 수도 있지만 현업의 이해수준이나 시스템 적용의 편의성을 고려해 선택하기도 한다.



Implement - Batch Job 생성


최종 선택된 모델 결과를 시스템에서 자동으로 수행하기 위해서는 R코드 보다는 범용적인 언어인C, JAVA, SQL/PLSQL 같은 언어로 변환되는 것이 활용하기에 편리하다.



Oracle Data Miner에서는 생성된 모형의 적용을 위해 ‘적용’노드에서 SQL/PLSQL로 자동으로 변환하여 생성하여 준다. 아래 그림은 Batch Job생성을 위한 작업창이며, Batch Script는 *.sql파일로 지정된 위치에 생성하여 준다.



상용 통계소프트웨어와 ORE 장단점 비교


Open Source R은 다양한 패키지를 통해 분석이 가능하며, 강력한 visualization 기능을 가지고 있다. 반면 기업에서 사용하고 있는 상용 통계소프트웨어는 안정적이며, 소위 A/S라 표현할 수 있는 Support가 잘 시행되며, 많은 레퍼런스를 가지고 있다.

하지만 Open Source R과 상용 통계소프트웨어와의 가장 큰 차이점은 공짜라는 점과 비싸다는 점이다. 이에 오라클의 Advanced analytics option은 R이 가지고 있는 모든 장점을 포함하고 있으며, 오라클의 장점인 DB에서의 분석 수행, 병렬처리 그리고 SQL과 PL/SQL을 동시에 사용할 수 있는 장점을 가진 기업에 적합한 소프트웨어라 할 수 있겠다.



Open Source R의 단점을 보완하면서 기존의 분석환경을 변환하기 위한 방법으로 Oracle Advanced Analytics를 활용한다면, 효율성측면에서는 요즘 이슈화 되고 있는 DB보안, 자원관리 등을 통합관리 할 수 있으며, SQL/PLSQL 등을 활용한 시스템 Batch작업으로의 전환이 수월할 수 있다.

비용측면에서 따로 분석서버를 구축하지 않아도 되며, 추가패키지의 구매 없이도 In-DB, In-Memory와 같은 High-Performance 분석 수행이 가능하며, Embedded R Execution 기능을 활용해 병렬로 처리함으로써 빠른 분석이 가능해질 것이다.




출처 : 한국오라클

제공 : 데이터 전문가 지식포털 DBguide.net