데이터 분석 준전문가/제4과목

제3장 데이터 마트

표독's 2016. 2. 18. 01:01

제3장 데이터마트

학습목표

데이터 마트 정의 이해

데이터 마트 요약변수에 대한 이해

데이터 마트 파생변수에 대한 이해

reshape 패키지를 이용한 데이터 마트 만드는 법에 대한 이해

plyr패키지에 대한 이해

결측값 처리 방법에 대한 이해

이상치 처리 방법에 대한 이해


제1절 데이터 변경 및 요약

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


어떻게 마트 만드는 것에 접근?

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

변수가 많다고 좋은건 아니다.


가. 요약변수

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

단순한 구조이므로 자동화하기가 쉽다.

재활용성 높다.

다양한 조합의 요약변수를 자동으로 만드는 것이 적합.

단점 : 기준값의 의미 해석이 애매하다. <- 이런 연속형 변수를 자동으로 타깃에 맞춰 그루핑해주면 좋다.


기간별 구매 금액 횟수 여부 / 위클리 쇼퍼 / 상품별 구매 금액 횟수 여부/ 상품별 구매 순서/ 유통 채널

별 구매 금액/ 단어 빈도/ 초기 행동변수/ 트렌드 변수/ 결측값과 이상값 처리 / 연속형 변수의 구간화


나. 파생 변수

특정한 의미를 갖는 작위적 정의에 의한 변수, 사용자가 특정 조건을 만족하거나 특정 함수에 의해 값을 만들어 의미를 부여한 변수. 매우 주관적 변수일 수 있으므로 논리적 타당성 필요.

특정상황에만 유의미 하지 않게 대표성을 나타나게 할 필요 있다.


근무시간 구매지수 / 주 구매 매장 변수 /주 활동 지역 변수/ 주 구매상품 변수/ 구매상품 다양성 변수/ 가격 선호대 변수/ 시즌 선호고객 변수/ 라이프 스테이지 변수/ 라이프 스타일 변수/ 행사민감 변수/ 휴면가망 변수/ 최대가치 변수/ 고객 생애가치 변수/ 최적 통화 시간/ 


다. reshape

속성을 만드는 데는 많은 시간이 소요된다.

R에서는 reshape가 기존 거래데이터(TR) 구조를 column-wise하게 전환하는데, 크게 melt와 cast 단계로 구분된다.


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


SAS에서 proc sql로 작업하던 사용자들에게는 더욱 절실할 기능이 R에서는 sqldf로 처리 된다.

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


3. plyr

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


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

apply함수와 multi-core 함수를 사용하면 for loop을 사용하지 않고도 매우 간단하고 빠르게 처리 가능.

ddply함수는 데이터프레임 데이터를 가공해 데이터프레임으로 돌려준다.


runif(생성할 난수의 갯수, 최소값, 최대값)


4. 데이터 테이블(data.table)

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

무조건 빠른 것은 아니다.


제2절 데이터 가공


1. Data Exploration


require() :

플로팅하기 위해 호출하며, library와 큰 차이는 없으나 원래 목적은 함수 안에서 사용하기 위한 것.


2. 변수 중요도


변수의 중요도는 개발 중인 모델에 준비된 데이터를 기준으로 한 번에 여러 개의 변수를 평가한다.


klaR package를 이용한 다양한 분석

공통적인 모델링 이전 작업으로 데이터가 너무 많은 경우 아무리 시스템 성능이 좋아도 분석자에게는 부담이다.

빠르게 대략적인 파악을 하고 통찰을 얻고 실현가능성에 대해 생각해야 한다.


현재 데이터로 모데링 성능이 안나오는 경우.


1) 보다 상세한 분석을 통해 파생변수를 추가하거나, 모델링 절차를 바꾸는 등의 대안을 생각해야 한다. 이러한 경우 observation이 많은 경우는 샘플링을 하면 되지만, 이 또한 시간이 걸리고 디스크 공간을 차지한다. 

2) 변수를 줄인다. 


경우에 따라서는 두 방법 모두 선택해야 하는데 이런 경우 greedy.wilks를 사용한다.

모델링을 정의하고 이에따라 변수를 stepwise하게 투입해 의미 있는 변수를 순서대로 보여준다.


제3절 기초 분석 및 데이터 관리

1. 데이터 EDA

데이터를 본격적으로 분석하기 전에 대략의 데이터의 특성을 파악하고, 데이터에 대한 통찰을 얻기 위해 다각도로 접근하도록 한다.


가. 데이터 기초 통계


2. 결측값 처리

결측값 처리를 위해 시간을 많이 쓰는것은 비효율적이다.

가능하면 결측값을 제외하고 처리하는 게 적합하나, 결측값 자체가 의미가 있는 경우도 있다.


결측값 처리 관련 패키지

Amelia Ⅱ, Mice, mistools 등 여러가지가 있다.

is.na를 이용해 결측값인지 여부를 알수 있다.

complete.cases()함수를 이용해 결측값이 포함된 레코드를 삭제할 수 있다.

         **결측값이 넓게 분포된 경우 많은 데이터의 삭제에 따른 문제가 발생할 수 있다.


이상값 검색

이상값의 세 가지 요인

a1 : 의도하지 않게 잘못 입력한 경우

a2 : 의도하지 않게 입력됐으나 분석 목적에 부합되지 않아 제거해야 하는 경우

a3 : 의도되지 않은 현상이지만 분석에 포함해야 하는 경우


의도된 이상값은 대부분 fraud(b1)인 경우이다. 특히 a1, a2는 bad data라고 할 수 있고

a3와 b1이 이상값이라고 할 수 있다.


관련 알고리즘 : 

ESD와 MADM