빅데이터 분석 단계에 들어가기 전, 정제와 변수 처리 등을 포함, 데이터를 전처리하는 과정으로 분석 결과의 신뢰성을 결정짓는 과정이다.
기획 -> 데이터 수집 및 저장 -> 데이터 전처리 -> 데이터 분석
결측값, 잡음(noise), 이상값 등 데이터 오류를 일으킬 수 있는 요인을 분석 작업 전에 삭제/대체 등의 방법으로 정제하여 분석 결과의 오류를 사전에 제거하는 것을 의미한다.
데이터 값이 존재하지 않는 것('NA', 혹은 빈칸(NULL)
유형
완전 무작위 결측(MCAR, Missing Completely At Random) : 고의성 없이 응답을 빠뜨린 경우로 랜덤하게 발생하는 결측값이다.
sol) 데이터셋이 대규모일 때 단순 무작위 표본 추출로 해결 가능
무작위 결측(MAR, Missing At Random) : 결측이 다른 변수와 연관이 있지만, 결과 분포 자체에 영향을 미치지는 않는 경우
예시) 성별에 따라 응답 확률이 달라서 결측치가 성별에 따라 높게 나올 수 있지만 얻고자 하는 결과에 편향이 생기지 않는 경우
비무작위 결측(NMAR, Not Missing At Random) : 결측값이 결과값에 영향을 미치는 경우
예시) 임금이 낮은 사람이 응답할 확률이 낮다 => 임금 분포 결과에 영향
처리 방법 : 삭제, 대체(평균치, 중앙값, 최빈값), 예측값 삽입
삭제(Deletion) : 완전 무작위 결측이고 데이터 수가 충분히 많은 경우 효율적
대체(Imputation, 보완) : 완전 무작위 결측이 아닐 경우
평균 대체법 : 평균, 중앙값, 최빈값 등의 대푯값으로 대체. 모두 동일한 값을 가지게 되기 때문에 주의해야 한다.
단순 확률 대체법 : 평균값으로 대체 시 발생하는 추정량 표준 오차의 과소 추정 문제를 보완
보삽법 : 시계열 자료의 누락된 데이터를 보완할 때 사용하는 것으로 나머지 관측치로 평균을 계산하여 데이터 추정
평가치 추정법 : 약간의 오차를 감수하면서 원래의 값을 추정하는 방법으로 유사한 맥락적 사정/행렬식 자료를 고려하여 추정
다중 대치법(Multiple Imputation, 결측치 추정) : 결측치 추정을 통해 완벽한 데이터셋을 생성한 뒤, 해당 데이터셋을 통해 결측치를 추정 => 여러번 결측치 추정을 통해 오류를 줄이기 위함
완전정보 최대우도법 : 최대우도를 바탕으로 결측치가 없는 케이스로부터 추정되는 모형모수로 가중평균을 얻어 결측치 대신 사용(모형, 표본의 공분산, 평균 필요함) => 비편향적, 추정모수에 있어 효율적
일반적인 데이터 값의 범위를 벗어난 값
검출 방법
분산(Variance) : 일반적으로 정규분포 97.5% 이상 또는 2.5% 이하의 값을 이상값이라고 한다.
우도(Likelihood, 가능도) : 우도함수의 우도 값 범위 밖의 가능성이 낮은 범위에서 발견되는 값을 이상값이라고 생각할 수 있다.
근접 이웃 기반 이상치 탐지(NN, Nearest-neighbor) : 정상값들과 떨어진 위치에 있는 이상값을 탐지하는 방법(거리 개념).
밀도를 기반으로 한 탐지(Density) : 상대적 밀도(LOF, Local Outlier Factor)를 고려해 이상치를 탐지하는 방법으로 밀도 있는 데이터에서 떨어져 위치한 데이터를 이상값으로 간주
군집(Clustering) : 비슷한 개체를 묶어 정상값이 포함된 특정 군집(묶음)에 속하지 않는 경우 이상치로 판별(거리 기준)
사분위수 : 25%(Q1)과 75%(Q3)을 활용하여 이상치를 판단. IQR(= Q3-Q1, 사분범위) * 1.5를 벗어나는 경우 이상치로 판단
처리 방법 : 삭제, 대체, 스케일링, 정규화
종속변수에 유의미한 영향을 미칠 것으로 생각되는 독립변수를 선택하는 과정으로 모델의 성능을 향상시키기 위해 데이터 전처리 시 사용한다.
모든 변수를 포함하여 분석하는 것이 반드시 좋은 결과를 보장하는 것은 아니기 때문에 특성을 고려하여 선택하는 것이 데이터 모델링에서 중요한 과정이다.
10개의 변수를 모두 사용할 때 88%의 설명력, 3개의 변수를 사용할 대 85%의 설명력을 가진다면 3개의 변수만 사용하는 것이 더 좋을 수도 있다.(컴퓨팅 resource의 관점)
이점
- 머신러닝 알고리즘의 학습속도 증가(빨라짐)
- 모델의 복잡성 감소
- 사용자가 모델 해석하기 용이
- 올바른 하위 집합 선택 시 모델의 정확도 향상
- 과적합을 줄일 수 있음
- 일반화 성능 향상
방법
전진 선택법(Forward Selection) : 기준 통계치에 가장 많은 영향을 줄 것으로 판단되는 설명변수(p-value가 가장 작은 변수)부터 하나씩 추가하면서 model을 선택하는 방식
후진 제거법(Backward Elimination) : 독립변수를 모두 포함한 모형에서 시작하여 가장 적은 영향을 주는 변수(p-value가 가장 큰 변수)부터 하나씩 제거하는 방법.
단계적 방법(Stepwise Selection) : 전진 선택법, 후진 제거법을 보완한 방법으로 유의한 변수 추가한 뒤 후진 선택법을 적용하여 유의성이 낮은 변수를 제거하는 작업을 반복하여 AIC가 낮아지는 모델을 찾는 방법
AIC(Akaike's Information Criterion) : 상대적인 품질을 평가하는 기준
AIC = -2ln(L) + 2K
-2ln(L) : 모형의 적합도, L : 우도값, K : 독립변수의 수
차원 : 변수의 수
차원의 저주
다중공선성
다중공선성 진단법
1. 결정계수 R^2값이 커서 회귀식의 설명력은 높지만, 각 독립변수의 P-value 값이 커서 개별 인자가 유의하지 않은 경우 다중공선성 의심
2. 독립변수 간의 상관계수를 통해 진단 가능
3. 분산팽창요인(VIF)를 구해 이 값이 10을 넘는다면 다중공선성이 존재한다고 판단
차원 축소의 대표적인 알고리즘으로 분산이 최대인 축을 찾는 방법이다.
**PCA 과정**
데이터에서 분산이 최대인 축 PC1을 찾는다.(데이터의 분산을 최대한 보존)
for k = 2 to n : (k가 n까지 아래를 반복, n은 변수의 수)
PC(k-1)(k-1번째)과 직교하면서 분산이 최대인 두 번째 축 PCk(k번째)를 찾는다.
[Scree plot] 참조
지도학습으로 데이터의 분포를 학습하여 결정경계(Decision Boundary)를 만들어 데이터를 최적으로 분류하여 차원을 축소하는 방식으로 두 범주의 중심값(평균)이 멀고 각 범주의 분산이 작다는 조건을 모두 충족시키는 중간지점을 찾아내는 방법
결정경계 : target값을 가장 잘 분류할 수 있는 경계값, 분산 대비 평균의 차이를 극대화하는 값을 말한다.
전제 가정
과정
클래스 간 분산(between-class scatter)과 클래스 내부 분산(within-class scatter)의 비율을 최대화하는 방식으로 차원을 축소
PCA의 단점인 데이터가 어떤 군집에 포함되어 있는지를 제대로 구별할 수 없다는 점을 해결하기 위해 t-SNE를 적용할 수 있다.
고차원에 존재하는 데이터 간의 거리를 최대한 보존하면서 데이터 간의 관계를 저차원으로 축소해 시각화하는 방법
t-분포를 사용하여 가정하는 것이 가장 좋은 결과를 도출했다는 연구에 따라 t-분포를 사용하여 t-SNE라고 한다.
과정
① : 한 점을 선택하고 다른 점과의 거리를 측정한다.
t-분포 그래프 가운데에 처음 선택한 점을 위치시킨다.
①에서 측정한 거리를 기준으로 t-분포의 값을 선택한다(=친밀도).
친밀도가 가까운 값끼리 그룹화한다.
PCA와 유사한 행렬 분해 기법을 사용하지만, 행과 열의 크기를 다른 어떤 행렬에도 적용할 수 있다는 이점이 있다.
SVD를 통해서 고윳값의 개수가 r개라고 한다면 m×n개의 데이터를 줄여서 m×r개+r개+r×n개의 데이터만 저장할 수 있다(영 공간을 제외한 크기).
기존 변수들을 조합(sum, mean, ...)하여 분석하기 쉬운 변수를 새롭게 생성
도메인의 지식이 풍부한 데이터 분석가가 논리적 타당성을 고려하여 파생변수를 생성하면 질 좋은 파생변수를 생성할 수 있다.
분석 목적에 맞게 데이터를 변환하는 과정
범주형 데이터 변환 : 대부분의 머신러닝 모델은 숫자만 입력받을 수 있기 때문에 숫자로 변환한다. 하지만 변수가 연속형 데이터로 취급될 수도 있다. 이를 막기 위해 더미 변수화를 사용한다.
연속형 데이터를 범주형으로 변환 : 연속형 데이터를 범위에 따라 분류하여 범주형으로 변환
비정형 데이터 변환 : 단어의 빈도수 등을 이용해 정형화한 후 분석 진행
더미 변수화 : 고유의 값을 하나의 열로 바꾸어 값이 없는 경우는 '0', 값이 존재하는 경우는 '1'만 가지는 값으로 어떤 특징의 존재 여부를 표시한다.
스케일링(Scaling) : 데이터의 단위 및 스케일이 다른 경우 신뢰도가 떨어지기 때문에 데이터 값을 조정하는 방법이다.
정규화(StandardScaler) : 기본 스케일, 평균과 표준편차 사용
최소최대 스케일러(MinMaxScaler) : 최댓값/최솟값이 각각 1과 0이 되게 스케일링
최대절대 스케일러(MaxAbsScaler) : 최대 절댓값이 0과 1 사이에 매핑되게 스케일링
로버스트 스케일러(RobustScaler) : 중앙값과 4분위수를 사용하여 이상치에 영향받지 않음
일반화(Nomalizer) : 열마다 정규화하여 유클리드 거리가 1이 되게 데이터 조정
변수 구간화(Binning) : 연속형 변수를 범주형 변수로 변환
변수 전환(Transform) : 기 변수를 다른 변수로 변환
더미 변수화(Dummy) : 범주형 변수를 연속형 변수로 변환
각 클래스가 가지고 있는 데이터의 양에 큰 차이가 있는 경우를 클래스 불균형이 있다라고 한다.
적은 데이터에 대한 학습은 제대로 이루어지지 않을 수 있어 클래스 불균형 문제를 해결해야 한다.
예시) 신용사기 문제나 의학적 진단 데이터셋
해결 방법
과소표집(Under Sampling) : 정상 데이터의 일부만 선택해 유의한 데이터만 남기는 방법이다. 중요한 정상 데이터의 손실 우려가 있다.
예시) 정상 데이터 900개, 사기 데이터 100개일 때 정상 데이터 900개 중 100개만 사용(나머지는 삭제)
과대표집(Over Sampling) : 소수 데이터를 복제하는 방법이다. 과적합 우려가 있다.
예시) 정상 데이터 300개, 사기 데이터 200개일 때 사기 데이터 200개 중 무작위로 100개를 복제하여 사기 데이터에 추가하여 총 300개의 데이터로 만듬
SMOTE(Synthetic Minority Oversampling Technique) : 일종의 과대표집 방법. 알고리즘을 통해 소수 클래스의 데이터를 기반으로 소수 클래스에 해당하는 새로운 데이터를 생성하는 방법이다.
[2021 빅데이터분석기사 필기], 위키북스, 189p-215p(데이터 전처리)