본문 바로가기
AI 관련/ADsP, ADP

ADSP 요약정리 - 3장 데이터 마트 - 데이터 변경 및 요약

by 팀장일기 2021. 10. 2.

제 1절 데이터 변경 및 요약 

1. R reshape를 활용한 데이터 마트 개발 

   - 고객 데이터 맡 생성하는 일은 CRM(Customer Relationship Management) 관련 업무 중 핵심 

   - 마트 만드는 일 접근법

    * 작게 시작해 크게 만들어 나가는 노력 필요

     - 요약변수 -> 파생변수 -> 모델링

    * 빠르고 간편한(quick and dirty) 방법

     - 미리 검증해보고 변수를 더 만들어 나가는 것이 효율적

   - 마트는 담당자의 역량에 따라 수준 차이가 큼 

 

  가. 요약변수(summary variables)

   - 가장 기본적인 변수로 고객 - 상품 - 채널을 종합(aggregation)한 변수 

    * 단순한 구조이므로 자동화하기 쉬워 조금만 고민하면 상황이 맞게 또는 일반적인 자동화 프로그램 만들 수 있음. 

    * 요약변수만으로도 세분화하거나 행동 예측을 하는데 큰 도움받을 수 있으나 기준값(threshold value)의 의미해석이 애매할 수 있음.

    * 연속형 변수를 자동으로 타깃에 맞춰 그루핑해주면 좋음. 

   - 많은 모델에서 공통적으로 많이 사용될 수 있으며 재활용성도 높음 

   - 다양한 모델을 개발해야하는 경우 효율적으로 사용 가능

   - 마트를 만드는데 시간과 공간의 제약이 덜한 상황이라면 다양한 조합의 요약변수를 자동으로 만드는 것이 적합

    * 너무 오랜 기간을 ㅍ함한 요약변수는 별 의미 없음. 

   - SQL 튜닝이 잘못됐다면 전문가에게 ㅇ청하는 것이 나음

    * 수천만 건을 30분내에 처리 못하면 DBA나 시스템 관리자의 잘못 확률 높음 

    * SAS로 처리하는게 훨씬 빠르나 DB에서 데이터 가져올때 고생 

    * 결측값과 이상값은 있는 그대로 놔두는게 더 효율적이고 효과적 . 그룹핑에서 자돛처리 되도록 함. 

 

  나. 파생변수 (derived variables) 

   - 특정한 의미를 갖는 작위적 정의에 의한 변수 

    * 사용자가 특정조건을 만족하거나 특정 함수에 의해 값을 만들어 의미를 부여한 변수 

    * 매우 주관적인 변수 일수 있으므로 논리적  타당성을 갖춰야 함. 

   - 파생변수 자체로도 분석가능하나 이를 이용하면 데이터마이닝에 기여하는 바가 큼 

   - 상항에 따라 특정 상황에만 유의미하지 않게 필요성을 나타나게 (robust) 할 필요  

   - 보다 많은 변수를 잘 활용하는 것이 요즘 대세 

 

  다. reshape

   - 기존 거래 데이터(TR)구조를 column-wise하게 전환하는데 크게 melt 와 cast단계로 구분

    * melt : 기준이 되는 변수를 제외한 여러 factor 변수를 하나의 dimension 변수와 하나의 factor변수로 변환하는 함수

    * cast :  엑셀 피벗팅 하듯 자료 변형 

 

 2. sqldf를 이용한 데이터 분석 

   - 표준 SQL에서 사용되는 문장이 모두 가능하고 데이터 이름에 ","같은 특수 문자가 들어간 경우 "로 묶어주면 테이블 처럼 간단히 처리 가능 

 

 3. plyr

   - 데이터를 분리하고 처리한 다음 다시 결합하는 등 가장 필수적인 데이터 처리기능 제공 

    * apply 함수와 multi - core 사용 함수 이용하면 for loop 사용하지 않고 간단하고 빠르게 처리 가능 

   - apply함수에 기반해 데이터와 출력변수를 동시에 배열로 치환하여 처리하는 패키지 

    * set seed : R에서 난수 생성시 일정하게 고정시켜주는 역할 (생성시 같은 값 난수 생성) 

    * #runif(생성할 난수의 개수, 최소값, 최대값) 

    * ddply : plyr을 올리고 dataframe 에서 dataframe으로 입출력하는 함수 

 

 4. 데이터 테이블 

   - 데이터 프레임과 유사하지만 보다 빠른 그루핑과 ordering, 짧은 문장 지원 측면에서 데이터 프레임보다 매력적 

    * 무조건 빠른 것이 아니므로 특성에 맞게 사용 (64bit RAM 충분할 때는 효율적) 

   - 데이터 테이블을 데이터 프레임처럼 사용하면 성능은 비슷해짐. 무조건 빨라지는 것 아님 

 

 

 

댓글