ADsP/3과목

[3과목] 3-3.데이터 마트 (2) 데이터 가공&관리

RECORD WHO (레코드후) 2022. 9. 21. 23:50

1. Data Exploration 

- 데이터 분석을 위해 변수들의 상태를 파악

- 중요 함수들

head(데이터셋) / tail(데이터셋) : 시작/마지막 6개의 record만 조회하는 함수

summary(데이터셋) 

   ⓐ 수치형 변수 : 최대값, 최소값, 평균, 1사분위수 등

   ⓑ 명목형 변수: 명목값, 데이터 개수 

 

2. 변수 중요도

- 변수 선택법과 유사한 개념으로, 모형을 생성하여 사용된 변수의 중요도를 살피는 과정

- 종류 : klaR 패키지

- 특정 변수가 주어졌을 때 클래스가 어떻게 분류되는지에 대한 '에러율'을 계산, 그래픽으로 결과 보여줌

- greedy. wilks() : 세분화를 위한 stepwise forward 변수선택을 위한 패키지. 종속변수에 가장 영향을 주는 변수를 'wilks lambda'를 활용하여 변수의 중요도 정리 

* wilks lambda = 집단내분산/총분산 

 

3. 변수의 구간화

- 연속형 변수를 분석 목적에 맞게 '구간화' 하여 모델링에 적용 

- 신용평가모형, 고객 세분화 같은 시스템에서 모형에 활용하는 각 변수들을 구간화해서 구간별로 점수를 적용하는 '스코어링 방식'으로 많이 활용되고 있음

(1) 구간화방법 

binning : 신용평가모형의 개발에서 연속형변수를 범주형변수로 구간화하는데 자주 활용되는 방법 

 

의사결정나무 :  동일한 변수를 여러 번의 분리기준으로 사용 가능하기에, 연속 변수가 반복적으로 선택되는 경우 각각의 분리 기준 값으로 연속형 변수를 구간화 가능. 


# 기초 분석 및 데이터 관리 

 

1. 결측값 인식 및 처리 

1) 결측값이란 (Missing Value) 

- NA, 99999999, (공백), Unknown, Not Answer 등으로 표현됨 

- 결측값을 처리하기 위해 많은 시간을 사용하는 건 비효율적

- 결측값 처리는 전체 작업속도에 많은 영향을 줌

- '0'을 결측값으로 표현하면 안됨 ('0'이라는 데이터에 의미를 두고 사용하는 경우도 있기에) 

- 결측값 자체의 의미가 있는 경우도 있는데, 예를 들어 설문조사 시 질문에 해당이 안되는 경우 공란으로 남겨두어 결측치가 발생하는 경우

 

2) 결측값 처리 방법

① 단순 대치법

 ㄱ) Completes analysis : 결측값 삭제

 ㄴ) 평균대치법 : 다른 데이터의 평균으로 결측치를 대치

      - 비조건부 평균 대치법: 관측데이터의 평균으로 대치

      - 조건부 평균 대치법: 회귀분석을 활용한 대치법

 ㄷ) 단순확률 대치법 : 평균대치법의 '과소 추정문제'를 보완하고자 고안된 방법

    - Hot deck 방법: 변수값이 유사한 집단에서 하나를 뽑아 결측치와 대치

    - nearest neighbor : 결측치 주변에 있는 이웃값 중 가장 중심이 되는 데이터로 대치 

② 다중 대치법 

- 여러번 반복을 통해 가장 완전하다고 생각되는 값을 구해서 대치하는 방법 

- 총 3단계 : 1단계 대치 > 2단계 분석 > 3단계 결합

 

3) R에서 결측값 처리 

함수 내용
complete.cases() 데이터내 레코드에 결측값이 있으면 FALSE, 없으면 TRUE로 반환
(*결측값이 없으면 완전한거니까 complete 즉 T로 표현되는 것) 
is.na() 결측값을 NA로 인식하여, 결측값있으면 TRUE 없으면 FALSE로 반환
DMwR 패키지의 centrallmputation()  NA 값에 가운데 값으로 대치, 숫자는 중위수, 요인은 최빈값으로 
DMwR 패키지의 knnlmputation() NA 값을 최근 이웃 분류 알고리즘 사용하여 대치
Amelia 패키지의 amelia() time-series-cross-sectional data set : 여러 국가에서 매년 측정된 자료로 활용
*랜덤포레스트모델은 결측값이 존재하는 경우 바로 에러가 발생
*randomForest 패키지의 rflmpute() 함수를 활용하여 NA 결측값을 대치한 후 알고리즘에 적용 

 

2. 이상값 인식과 처리 

1) 이상값이란? 

- 의도하지 않게 잘못 입력하거나, 분석 목적에 부합되지 않아 제거해야 하는 경우 (Bad Data) 

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

- 의도된 이상값인 경우

- 이상값을 꼭 제거해야 하는 건 아니기 때문에 분석 목적이나 종류에 따라 적절한 판단 필요

 

2) 이상값 인식 방법

① ESD : 표준정규분포 활용 

- 평균으로부터 3표준편차 떨어진 값 

- 3표준편차 범위 내에는 약 99.7% 정도의 자료가 포함되는 것으로, 즉 대다수의 데이터가 들어오는 범위이기에 이 안에도 들어오지 않는 값이 있다면 '이상치'로 판단하는 것

 

② 사분위수 이용한 제거 방법

- Q1~Q3 사이는 IQR(사분위범위) 라고 칭하며 이 안에 들어온 값은 정상값이라 판단 

- 계산법: Q1-1.5(Q3-Q1) < 데이터 < Q3+1.5(Q3-Q1)

 - 위의 계산 통한 값을 기준으로 잡고 이를 벗어나는 데이터 '이상치'로 판단 

 

3) 절단 방법

① 기하평균을 이용한 제거 

- 기하 평균 이용: geo_mean

- 하단, 상단 %를 이용한 제거 : 10% 절단 (상하위 5%에 해당되는 데이터 제거) 

② 극단값 조정 방법 

- 상한값과 하한값을 벗어하는 값(=이상치)들을 상한, 하한값으로 바꾸어 활용

- Q1에 1.5 곱한 값 (=하한값) , Q3에 1.5 곱한 값 (=상한값)