데이터 전처리(Data Preprocessing) 이론

Hyun·2022년 7월 13일
0

빅데이터 분석 단계에 들어가기 전, 정제와 변수 처리 등을 포함, 데이터를 전처리하는 과정으로 분석 결과의 신뢰성을 결정짓는 과정이다.

기획 -> 데이터 수집 및 저장 -> 데이터 전처리 -> 데이터 분석

  • 전체 작업 시간으로 보면 60~70% 이상이 소요될 정도로 중요한 과정이다.
  • 데이터 전처리가 잘 안 된 경우라면 원하는 분석 결과가 나오지 않거나 엉뚱한 분석 결과가 도출되기도 한다.
  • 데이터 전처리 과정
    • 데이터셋 확인 : 변수 유형(독립/종속, 범주형/연속형, 문자/숫자), 변수 간의 관계 및 분포
    • 결측값과 이상값 처리
    • feature engineering : 기존 변수 사용, 정보 추가, 기존 데이터 보완

데이터 정제(Cleansing)

결측값, 잡음(noise), 이상값 등 데이터 오류를 일으킬 수 있는 요인을 분석 작업 전에 삭제/대체 등의 방법으로 정제하여 분석 결과의 오류를 사전에 제거하는 것을 의미한다.

결측값(Missing Value)

데이터 값이 존재하지 않는 것('NA', 혹은 빈칸(NULL)

유형

  • 완전 무작위 결측(MCAR, Missing Completely At Random) : 고의성 없이 응답을 빠뜨린 경우로 랜덤하게 발생하는 결측값이다.
    sol) 데이터셋이 대규모일 때 단순 무작위 표본 추출로 해결 가능

  • 무작위 결측(MAR, Missing At Random) : 결측이 다른 변수와 연관이 있지만, 결과 분포 자체에 영향을 미치지는 않는 경우
    예시) 성별에 따라 응답 확률이 달라서 결측치가 성별에 따라 높게 나올 수 있지만 얻고자 하는 결과에 편향이 생기지 않는 경우

  • 비무작위 결측(NMAR, Not Missing At Random) : 결측값이 결과값에 영향을 미치는 경우
    예시) 임금이 낮은 사람이 응답할 확률이 낮다 => 임금 분포 결과에 영향


처리 방법 : 삭제, 대체(평균치, 중앙값, 최빈값), 예측값 삽입

  • 삭제(Deletion) : 완전 무작위 결측이고 데이터 수가 충분히 많은 경우 효율적

  • 대체(Imputation, 보완) : 완전 무작위 결측이 아닐 경우

    • 평균 대체법 : 평균, 중앙값, 최빈값 등의 대푯값으로 대체. 모두 동일한 값을 가지게 되기 때문에 주의해야 한다.

    • 단순 확률 대체법 : 평균값으로 대체 시 발생하는 추정량 표준 오차의 과소 추정 문제를 보완

    • 보삽법 : 시계열 자료의 누락된 데이터를 보완할 때 사용하는 것으로 나머지 관측치로 평균을 계산하여 데이터 추정

    • 평가치 추정법 : 약간의 오차를 감수하면서 원래의 값을 추정하는 방법으로 유사한 맥락적 사정/행렬식 자료를 고려하여 추정

    • 다중 대치법(Multiple Imputation, 결측치 추정) : 결측치 추정을 통해 완벽한 데이터셋을 생성한 뒤, 해당 데이터셋을 통해 결측치를 추정 => 여러번 결측치 추정을 통해 오류를 줄이기 위함

    • 완전정보 최대우도법 : 최대우도를 바탕으로 결측치가 없는 케이스로부터 추정되는 모형모수로 가중평균을 얻어 결측치 대신 사용(모형, 표본의 공분산, 평균 필요함) => 비편향적, 추정모수에 있어 효율적



이상값(Outlier)

일반적인 데이터 값의 범위를 벗어난 값

  • 수집 시 실수, 측정 단위나 데이터 오류, 의도적으로 부정확한 정보 제공 등의 이유로 발생한다.

검출 방법

  • 분산(Variance) : 일반적으로 정규분포 97.5% 이상 또는 2.5% 이하의 값을 이상값이라고 한다.

  • 우도(Likelihood, 가능도) : 우도함수의 우도 값 범위 밖의 가능성이 낮은 범위에서 발견되는 값을 이상값이라고 생각할 수 있다.

    • 일반적으로 우도값은 확률값과 동일시된다. 하지만 연속된 관측치를 다룰 때 우도값은 확률 밀도 함숫값(Probability Density Function)이라고 간주할 수 있다.
  • 근접 이웃 기반 이상치 탐지(NN, Nearest-neighbor) : 정상값들과 떨어진 위치에 있는 이상값을 탐지하는 방법(거리 개념).

    • 일반적으로 연속형 변수는 유클리드 거리, 범주형 변수는 단순 일치 계수를 사용, 다변량일 경우 각 변수에 대한 거리를 결합하여 구한다.
  • 밀도를 기반으로 한 탐지(Density) : 상대적 밀도(LOF, Local Outlier Factor)를 고려해 이상치를 탐지하는 방법으로 밀도 있는 데이터에서 떨어져 위치한 데이터를 이상값으로 간주

  • 군집(Clustering) : 비슷한 개체를 묶어 정상값이 포함된 특정 군집(묶음)에 속하지 않는 경우 이상치로 판별(거리 기준)

  • 사분위수 : 25%(Q1)과 75%(Q3)을 활용하여 이상치를 판단. IQR(= Q3-Q1, 사분범위) * 1.5를 벗어나는 경우 이상치로 판단


처리 방법 : 삭제, 대체, 스케일링, 정규화

  • 하한값과 상한값을 결정해 범위 밖의 값은 각각으로 대체
  • 평균 표준 편차는 범위 밖의 값을 평균값을 기준으로 한 값으로 대체
  • 평균 절대 편차는 중앙값을 기준으로 n 편차로 큰 값
  • P번째 백분위 수보다 큰 값을 대체


분석 변수 처리

변수 선택

종속변수에 유의미한 영향을 미칠 것으로 생각되는 독립변수를 선택하는 과정으로 모델의 성능을 향상시키기 위해 데이터 전처리 시 사용한다.

모든 변수를 포함하여 분석하는 것이 반드시 좋은 결과를 보장하는 것은 아니기 때문에 특성을 고려하여 선택하는 것이 데이터 모델링에서 중요한 과정이다.

10개의 변수를 모두 사용할 때 88%의 설명력, 3개의 변수를 사용할 대 85%의 설명력을 가진다면 3개의 변수만 사용하는 것이 더 좋을 수도 있다.(컴퓨팅 resource의 관점)


이점

  1. 머신러닝 알고리즘의 학습속도 증가(빨라짐)
  2. 모델의 복잡성 감소
  3. 사용자가 모델 해석하기 용이
  4. 올바른 하위 집합 선택 시 모델의 정확도 향상
  5. 과적합을 줄일 수 있음
  6. 일반화 성능 향상

방법

  • 부분 집합법(All subset) : 가능한 모든 모델 고려. 변수의 개수가 적은 경우 효과적이다. 임베디드 기법이라고도 한다.
    • 라쏘, 릿지, 엘라스틱넷 등의 방법을 사용
  • 단계적 변수 선택 방법
    • 전진 선택법(Forward Selection) : 기준 통계치에 가장 많은 영향을 줄 것으로 판단되는 설명변수(p-value가 가장 작은 변수)부터 하나씩 추가하면서 model을 선택하는 방식

      • 장점 : 변수의 개수가 많을 때 사용 가능
      • 단점 : 변수값이 조금만 변해도 결과에 큰 영향을 미침(안정성 부족), 한번 추가된 변수 제거 불가능
      • 상관계수의 절댓값이 가장 큰 변수에 대해 부분 F검정으로 유의성 검정을 하고 더는 유의하지 않은 경우 더 이상 변수를 추가하지 않는다.
    • 후진 제거법(Backward Elimination) : 독립변수를 모두 포함한 모형에서 시작하여 가장 적은 영향을 주는 변수(p-value가 가장 큰 변수)부터 하나씩 제거하는 방법.

      • 다중공선성이 높게 나타난 변수를 하나씩 제거하는 후진제거법 적용
      • 장점 : 전체 변수의 정보를 이용
      • 단점 : 변수의 개수가 너무 많을 때 적용하기 어려움
      • 상관계수의 절댓값이 가장 작은 변수에 대해 부분 F검정으로 유의성 검정을 하고 유의하지 않는 변수(p-value가 큰 변수)부터 하나씩 제거
    • 단계적 방법(Stepwise Selection) : 전진 선택법, 후진 제거법을 보완한 방법으로 유의한 변수 추가한 뒤 후진 선택법을 적용하여 유의성이 낮은 변수를 제거하는 작업을 반복하여 AIC가 낮아지는 모델을 찾는 방법

      • AIC(Akaike's Information Criterion) : 상대적인 품질을 평가하는 기준

        AIC = -2ln(L) + 2K
        -2ln(L) : 모형의 적합도, L : 우도값, K : 독립변수의 수

        • AIC를 최소화한다는 것은 우도를 가장 크게 하는 동시에 변수의 수는 가장 적은 최적의(상대적으로 좋은) 모델을 의미


차원 축소

차원 : 변수의 수


차원의 저주

  • 차원이 증가함으로 인해 데이터가 차지하는 공간이 미비해지고 각 데이터 사이의 거리가 멀어지며 데이터의 밀도가 급격하게 낮아져 발생
  • 빈 공간은 컴퓨터상에서 '0'(NULL)로 채워지는데, 이 과정에서 저장공간과 처리 시간이 불필요하게 증가되어 성능이 저하된다.
  • 이를 해결하기 위해 데이터의 밀도가 충분히 높아질때까지 데이터의 크기(수)를 키우거나 차원을 축소하는데, 데이터가 무한정하지 않기 때문에 차원축소를 사용하여 차원의 저주를 해결한다.

다중공선성

  • 회귀분석에서 독립변수 간에 강한 상관관계가 나타나는 문제로 다중공선성이 존재하면 회귀분석의 가정인 독립성(독립변수 간에는 상관관계가 없이 독립)에 위배된다.
  • 또한 A,B 변수 사이에 다중공선성이 존재하면 A,B 각각의 변수가 Y(결과)값에 어느 정도의 영향을 미치는지 정확하게 판단할 수 없기 때문에 분석 결과의 회귀계수를 신뢰할 수 없게 된다.

다중공선성 진단법

1. 결정계수 R^2값이 커서 회귀식의 설명력은 높지만, 각 독립변수의 P-value 값이 커서 개별 인자가 유의하지 않은 경우 다중공선성 의심
2. 독립변수 간의 상관계수를 통해 진단 가능
3. 분산팽창요인(VIF)를 구해 이 값이 10을 넘는다면 다중공선성이 존재한다고 판단

PCA(주성분분석, Principal Component Analysis)

차원 축소의 대표적인 알고리즘으로 분산이 최대인 축을 찾는 방법이다.

  • 데이터를 최적으로 표현하는 관점에서 데이터를 축소하는 방법
  • 여러 변수 간에 존재하는 상관관계를 이용해 선형 독립인(선형 연관성이 없는) 저차원 공간(데이터의 분산을 최대한 보존하는 새로운 축)으로 축소하는 기법으로 중요한 몇 개의 주성분으로 전체 변동의 대부분을 설명하고자 하는 알고리즘이다.
  • 단점 : 차원 축소를 하는 경우 군집화된 데이터가 합쳐지면서 데이터가 어떤 군집에 포함되어 있는지를 제대로 구별할 수 없다.
**PCA 과정** 
데이터에서 분산이 최대인 축 PC1을 찾는다.(데이터의 분산을 최대한 보존)
for k = 2 to n :  (k가 n까지 아래를 반복, n은 변수의 수)
  PC(k-1)(k-1번째)과 직교하면서 분산이 최대인 두 번째 축 PCk(k번째)를 찾는다.
  • 변수의 단위가 유사하면 공분산 행렬을 사용
  • 단위가 다르다면 상관행렬을 사용
  • PCA에서 상관행렬을 사용하는 것은 표준화된 변수에 공분산 행렬을 사용하는 것과 같다.

[Scree plot] 참조

LDA(선형판별분석, Linear Discriminant Analysis)

지도학습으로 데이터의 분포를 학습하여 결정경계(Decision Boundary)를 만들어 데이터를 최적으로 분류하여 차원을 축소하는 방식으로 두 범주의 중심값(평균)이 멀고 각 범주의 분산이 작다는 조건을 모두 충족시키는 중간지점을 찾아내는 방법

결정경계 : target값을 가장 잘 분류할 수 있는 경계값, 분산 대비 평균의 차이를 극대화하는 값을 말한다.

  • 두 범주의 중심값(평균)이 멀고 각 범주의 분산이 작다는 조건을 모두 충족시키는 중간지점을 찾아내는 방법
  • 지도학습으로 데이터의 분포를 학습하여 결정경계(Decision Boundary)를 만들어 데이터를 최적으로 분류하여 차원을 축소
  • 클래스의 정보를 보호하면서 차원을 최소로 줄이는 방법
  • 대개 PCA보다 더 좋은 결과를 보여준다.
  • LDA를 적용할 때 베이지안 정리(Bayes' Theorem)를 활용한다.

전제 가정

  • 데이터 분포가 다변량 정규분포
  • 다변량 정규분포의 파라미터는 평균(벡터)과 공분산(행렬)이다.

과정
클래스 간 분산(between-class scatter)과 클래스 내부 분산(within-class scatter)의 비율을 최대화하는 방식으로 차원을 축소

t-SNE(t-분포 확률적 임베딩, t-Stochastic Neighbor Embedding)

PCA의 단점인 데이터가 어떤 군집에 포함되어 있는지를 제대로 구별할 수 없다는 점을 해결하기 위해 t-SNE를 적용할 수 있다.

  • 고차원에 존재하는 데이터 간의 거리를 최대한 보존하면서 데이터 간의 관계를 저차원으로 축소해 시각화하는 방법

  • t-분포를 사용하여 가정하는 것이 가장 좋은 결과를 도출했다는 연구에 따라 t-분포를 사용하여 t-SNE라고 한다.

과정

① : 한 점을 선택하고 다른 점과의 거리를 측정한다.
t-분포 그래프 가운데에 처음 선택한 점을 위치시킨다.
①에서 측정한 거리를 기준으로 t-분포의 값을 선택한다(=친밀도).
친밀도가 가까운 값끼리 그룹화한다.

SVD(특잇값 분해, Singular Value Decomposition)

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(데이터 전처리)

0개의 댓글