1. R reshape를 이용한 데이터 마트 개발
- 데이터 마트
- 데이터웨어하우스(DW)와 사용자 사이의 중간층
- 대부분 DW로부터 복제, but 자체 수집 가능, 관계형 DB나 다차원 DB 이용하여 구축
- CRM 관련 업무 중 핵심
- 요약변수
- 수집된 정보 분석 맞게 종합
- 재활용성 높음 (공통 사용 多 : 합계, 횟수 등)
- 기간별 구매 금액, 횟수여부, 위클리 쇼퍼, 상품별 구매 금액 등 - 파생변수
- 특정 함수 의해 값 만들어 의미 부여 (매우 주관적)
- 상황 따라 대표성 나타나게 할 필요 있음 - reshape 활용
- melt(data, id = ...) : 적당 형태로 만들어줌
- cast(data, formula = ...~variable, func) : 원하는 형태로 계산, 변형
- sqldf를 이용한 데이터 분석
- R에서 sql 명령어 사용 패키지
- sqldf("select * from [df] limit 10 where [col] like 'char%'")
- R에서 sql 명령어 사용 패키지
head([df]) | sqldf("select * from [df] limit 6") |
subset([df], grepl("qn%", [col])) | sqldf("select * from [df] where [col] like 'qn%'") |
subset([df], [col] %in% c("BF","HF")) | sqldf("select * from [df] where [col] in ('BF','HF')") |
rbind([df1], [df2]) | sqldf("select * from [df1] union all select * from [df2]") |
merge([df1], [df2]) | sqldf("select * from [df1], [df2]") |
df[order([df]$[col], decreasing=T),] | sqldf("select * from [df] order by [col] desc") |
- plyr를 이용한 데이터 분석
- apply 함수 기반 데이터와 출력변수 동시에 배열로 치환
- split - apply - combine : 데이터 분리하고 처리 후 다시 결합하는 필수적 데이터 처리기능 제공
array | data frame | list | nothing | |
array | aaply | adply | alply | a_ply |
data frame | daply | ddply | dlply | d_ply |
list | laply | ldply | llply | l_ply |
n replicates | raply | rdply | rlply | r_ply |
function arguments | maply | mdply | mlply | m_ply |
- 데이터 테이블
- data frame보다 20배 더 빠름
- library(data.table) 사용
2. 데이터 가공
- Data Exploration
- head() / summary() - 수치형(최대, 최소값, 평균, 1,2,3사분위수) / 명목형(명목값, 데이터개수)
- 변수 중요도
- 모형 생성하여 사용된 변수 중요도 살피는 과정
- klaR 패키지 : 특정 변수 주어졌을 때 클래스 분류 에러율 계산, 그래프로 결과 보여줌
- greedy.wilks() : 세분화 위한 stepwise forward 변수선택 - wilk's lambda (= 집단 내 분산 / 총분산) 활용하여 변수 중요도 정리
- plineplot() 이용 가능
- 변수의 구간화
- binning : 연속형 → 범주형
- 의사결정나무 : 세분화, 예측에 활용 → 활용되는 입력변수 구간화
3. 기초 분석 및 데이터 관리
- 데이터 EDA (탐색적 자료 분석)
- 전체적 데이터 특징 파악, 다각도로 접근
- summary() 이용하여 데이터 기초통계량 확인
- 결측값 처리
- NA, . , 99999999, ' ', Unknown, Not Answer 등으로 표현
- 0으로 표현하면 안됨 : 결측값 자체가 의미있을수도
- na.rm 이용해 NA 제거하고 계산 가능
- 결측값 처리 방법
- 단순 대치법
- completes analysis : 결측치 레코드 제거 - 평균대치법
- 비조건부 : 데이터 평균으로 대치
- 조건부 : 회귀분석 활용 대치법 - 단순확률 대치법
- 평균대치법의 추정량 표준 오차의 과소 추정문제 보완
- hot-deck 방법, nearest-neighbor 방법 - 다중 대치법
- m번의 대치 통해 m개의 가상적 완전 자료로 만드는 방법
- 대치 → 분석 → 결합
- 단순 대치법
- R에서 결측값 처리
- 랜덤포레스트에서 결측값 있으면 바로 error 발생 -> randomForest의 rfImpute() 통해 NA 결측값 대치한 후 알고리즘 적용
- complet.cases() : 결측값 있으면 FALSE , 없으면 TRUE
- is.na() : 결측값이 NA인지 여부 반환
- DMwR의 centralImputation() : NA값에 가운데값으로 대치 (숫자 - 중위수 / factor - 최빈값)
- DMwR의 knnImputation() : NA값에 kNN 알고리즘으로 대치
- Amelia의 amelia() : time-series-cross-sectional dataset
- 이상값 찾기와 처리
- 이상값
- 의도치 않게 잘못 입력 or 분석 목적에 부합되지 않아 제거해야하는 경우
- 의도치 않지만 분석에 포함해야하는 경우
- 의도된 이상값(불량)인 경우 - 이상값 인식 방법
- ESD(Extreme Studentized Deviation) : 평균으로부터 3 표준편차 떨어진 값
- 기하평균-2.5표준편차 < data < 기하평균+2.5표준편차
- Q1-2.5(Q3-Q1) < data < Q3+2.5(Q3-Q1) - 극단값 절단 방법
- 기하평균 이용 (geo_mean)
- 하단, 상단 % 이용 - 극단값 조정 방법
- 상한값, 하한값 벗어나는 값들을 상한, 하한값으로 바꾸어 활용
- 이상값
출처 : ADsP 데이터 분석 준전문가 (윤종식 저)
반응형
'DATA SCIENCE > ADSP' 카테고리의 다른 글
[ADsP] 3-4. 통계 분석 (2) 기초 통계 분석 (0) | 2020.06.06 |
---|---|
[ADsP] 3-4. 통계 분석 (1) 통계 분석의 이해 (0) | 2020.06.06 |
[ADsP] 3-2. R 프로그래밍 기초 (0) | 2020.06.06 |
[ADsP] 3-1. 데이터 분석 개요 (0) | 2020.06.06 |
[ADsP] 2-2. 분석 마스터 플랜 (2) 분석 거버넌스 체계 수립 (0) | 2020.06.06 |