3. 데이터 마트
(1) 데이터 변경 및 요약
가) R reshape 을 이용한 마트 개발
– 요약 변수
. 기간별 구매 금액/횟수 , 위클리 쇼퍼, 상품별 구매 금액/횟수 ,상품별 구매 순서, 유통 채널별 구매 금액, 단어 빈도, 초기 행동변수, 트랜드 변수, 연속 변수의 구간화 등
– 파생변수
. 분석자가 특정 조건을 만족하거나 특정 함수에 의해 값을 만들어 의미를 부여한 변수
. 근무시간 구매 지수, 주 구매 매장 변수, 주 활동 지역 변수, 주 구매 상품 변수, 구매 상품 다양성 변수, 가격 선호대 변수 등
– R reshape
. 패키지 : reshape
. melt : 지정한 ID 를 기준으로 다른 컬럼들을 Variable 과 Value 로 표시한다.
. cast (melt 데이터, X ~ Y ~ Variable) : X축 Y축을 지정한 Variable 로 채우는 피벗 테이블을 생성한다 .
. cast (melt 데이터, X ~ Variable, 적용함수 명[예:mean] ) : 지정 X 와 Melt 의 Variable 로 구성된 테이블을 구성하며 그 값에 Mean 과 같은 함수 적용
. cast (melt 데이터, X ~ Variable, 적용함수 명[예:mean], Margins=c(“grand_row” , “grand_col”) ) : Margin 을 옵션을 사용 행,열의 합을 추가 할 수 있다
. cast (melt 데이터, X ~ Y, 적용함수 명[예:mean], subset=variable==”ozone”) : Subset 옵션을 사용하여 원하는 Variable 만 조회 가능
나) sqldf 를 이용한 데이터 분석
– 패키지 : sqldf
– SQL 을 동일하게 사용할 수 있다
– sqldf( SQL 문장)
– sqldf(“select * fom iris limit 10”) : 10개 데이터만 조회
– sqldf(“select * fom iris where species like ‘ddd'”) : like 는 작은 따움표 사용
다) plyr
– ddply (데이터, 컬럼, Function(){})
– summarise : ddply(데이터 , 컬럼, 옵션-summarise, Function) , 계산 과정 데이터는 생략
– transform : ddply(데이터 , 컬럼, 옵션-transform, Function), 계산 과정 데이터도 보여줌
– 멀티 코어 사용
. 리눅스 : doMC (registerDoMc(2) )
. 윈도우 : doParallel (registerDoParallel(cores=2))
라) 데이터 테이블
– 64비트 환경에서 Ram 이 충분히 많을때 효과적
– 패키지 : data.table
– Key를 생성하여 속도가 빠름
– R 사용
. data.table(Vector, Vector, . …)
(2) 데이터 가공
가) 데이터 탐색
나) 변수 중요도
– LDA (Linear Discriminant Analsis)
. 패키지 : MASS
. 사용 : lda(종속변수 ~ , data= 데이터)
. 종속 변수에 영향을 주는 다른 변수의 중요도록 한번에 탐색 , 시스템 사양에 따라 나누어 작업
– greedy.wilks
. 패키지 : KlaR
. 사용 : greedy.wilks(종속변수 ~ . , data=데이터, niveau= )
– plineplot
. 사용 : plineplot( 종속변수 ~ . , data = 데이터, method=’lda’ , x=축 눈금 데이터 , xlab= x축 Label)
. 종속변수에 주는 영향을 시각화하여 파악 가능
– NaiveBayes
. NaiveBayes(종속변수 ~ ., data= 데이터)
. 종속변수의 값을 X 축으로 영향도를 찾고자 하는 값의 Density 를 표현
– ctree (decision tree)
. 패키지 : party
. 사용 : ctree(종속변수 ~ . , data=데이터)
(3) 기초 분석 및 데이터 관리
가) 데이터 EDA
– summary 등.. 사용 데이터 속성 파악
나) 결측값 처리
– 관련 패키지 : Amelia, Mice, mistools
– 옵션 처리 : mean(데이터, na.rm=T) (옵션으로 결측값을 무시하는 방법)
– 데이터 삭제 : 데이터[!complete.cases(데이터),] 와 같은 방법으로 데이터 일괄 삭제
– amelia 사용 : amelia(데이터, m=대체 데이터 set 개수 , ts=시계열 주기, cs=cross-section 포함 정보)
– 이상값 검색
. 패키지 : DMwR
. 사용 : lofactor(데이터, k=판단에 사용할 이웃데이터 수)