2과목. 빅데이터 탐색 1장. 데이터 전처리

1장 데이터 전처리

데이터 분석에 앞서 데이터 전처리는 반드시 거쳐야 하는 과정.

핵심 키워드

  • 데이터 정제
  • 분석변수 처리
  • 차원의 축소
  • 클래스 불균형

01 데이터 정제

1. 데이터 전처리의 이해

데이터 전처리

  • 데이터 분석을 위한 필수 과정으로 데이터를 정제한 뒤, 데이터 가고으 통합, 정리, 변환을 통해 데이터 분석 변수를 처리하는 등의 작업으로 데이터 분석 결과의 신뢰도를 높이기 위한 과정

데이터 전처리의 중요성

  • 전처리 결과가 분석 결과에 직접적인 영향을 주기 때문에 전처리는 반복적으로 수행해야 함
  • 데이터 분석의 단계 중 가장 많은 시간이 소요되는 단계가 데이터 수집과 데이터 전처리 단계임
  • 데이터 정제 → 결측값 처리 → 이상값 처리 → 분석 변수 처리

2. 데이터 정제

데이터 정제

데이터 결측값

  • 결측값
    • 필수적인 데이터가 입력되지 않고 누락된 값
    • 처리 방법 :
      • 중심 경향값 넣기 (평균값, 중앙값, 최빈값)
      • 분포 기반 처리

데이터 이상값

  • 이상값
    • 데이터의 범위에서 많이 벗어난 아주 작은 값이나 아주 큰 값
    • 처리 방법 :
      • 하한보다 낮으면 하한값 대체
      • 상한보다 높으면 상한값 대체

노이즈

  • 노이즈
    • 실제는 입력되지 않았지만 입력되었다고 잘못 판단한 값
    • 처리 방법 :
      • 일정 간격으로 이동하면서 주변보다 높거나 낲으면 평균값 대체
      • 일정 범위 중간값 대체

특정값 대체법의 종류

  • 평균 대체법 : 평균, 중앙값, 최빈값 등의 대푯값으로 대체하는 방법
  • 단순 확률 대체법 : 평균값으로 대체 시 발생할 수 있는 추정량 표준 오차의 과소 추정 문제를 보완하기 위한 방법
  • 보삽법 : 시계열 자료의 누락된 데이터를 보완하기 위해 사용. 매해 자료를 수집하는 경우, 한 해의 데이터가 결측인 경우 나머지 관측치만을 가지고 평균을 계산하는 방법
  • 평가치 추정법 : 약간의 오차는 감수하면서 원래의 값을 추정하는 방법
  • 다중 대치법 : 결측 데이터가 있는 데이터셋을 결측치 추정을 통해 완벽한 데이터셋으로 생성한 뒤, 결측치가 채워진 데이터셋을 통해 결측치를 추정. 여러 번의 결측치 추정은 오류를 줄이는 데 도움이 되며 기존 데이터의 불확실성을 유지하면서 결과를 얻을 수 있다.
  • 완전정보 최대우도법 : 적합함수인 최대우도를 바탕으로 결측치가 없느 케이스로부터 추정되는 모형모수를 가지고 가중평균을 구성하여 결측치 대신 사용하는 방법

02 분석 변수 처리

1. 변수 선택

변수 선택

변수 선택법

  • 부분 집합법(All subset)
    • 모든 가능한 모델을 고려하여 가장 좋은 모델을 선정하는 방법
    • 변수가 많아짐에 따라 검증해야 하는 회귀 분석도 만아지는 단점
    • 변수의 개수가 적은 경우 높은 설명력을 가진 결과를 도출해내는데 효과적
    • ‘임베디드 기법’ 이라고도 하며 라쏘, 릿지, 엘라스틱넷 등의 방법을 사용
  • 단계적 변수 선택방법
    • 전진 선택법
      • 변수의 개수가 많을 때 사용할 수 있지만, 변숫값이 조금만 변해도 결과에 큰영향을 미치기 때문에 안정성이 부족한 방법.
      • 상관계수의 절댓값이 가장 큰 변수에 대해 부분 F 검정으로 유의성 검정을 하고 더는 유의하지 않은 경우 해당 변수부터는 더 이상 변수를 추가하지 않는다.
    • 후진 제거법
      • 다중공선성이 높게 나타난 변수를 하나씩 제거하는 후진제거법을 적용하는 것
        • 다중공선성
          • 일부 설명 변수가 다른 설명변수와 상관정도가 높아 데이터 분석 시 부정적인 영향을 미치는 것을 의미
      • 전체 변수의 정보를 이용한다는 장점
      • 변수의 개수가 너무 많은 경우 적용하기 어렵다
    • 단계적 방법
      • 전진 선택법과 후진 제거법을 보완한 방법
      • 변수를 연속적으로 추가 혹은 제거하면서 AIC가 낮아지는 모델을 찾는 방법

단계적 변수 선택 방법

AIC(Akaike’s Information Criterion)

  • AIC 값이 작을수록 상대적으로 좋은 모델이라고 판단할 수 있다
  • AIC = -2ln(L) + 2K
    • -2ln(L) = 모형의 적합도
    • L = 우도값
    • K = 상수항을 포함한 모든 독립변수의 수
  • AIC는 주어진 데이터에 대한 통계 모델의 상대적인 품질을 평가하는 기준
  • AIC를 최소화한다는 것은 우도를 가장 크게 하는 동시에 변수의 수는 가장 적은 최적의 모델을 의미

2. 차원 축소

차원축소

  • LDA는 투영을 통해 가능한 클래스를 멀리 떨어지게 하므로 SVM 같은 다른 분류 알고리즘을 적용하기 전에 차원을 축소하는데 자주 사용된다.

  • LDA는 데이터를 최적으로 분류하여 차원을 축소, PCA는 데이터를 최적으로 표현하는 관점에서 데이터를 축소하는 방법

  • LDA를 적용할 때 베이지안 정리(Bayes’ Theorem)를 활용

    • 베이지안 정리(선형판별분석에서는 판별함수라고 칭함)

      • 사전확률 (P(A))로부터 사후 확률(P(A|B))을 구하는 것

  • 친밀도 : t-SNE 과정에서 측정한 거리를 기준으로 t-분포의 값

  • SVD

    • 일반적으로 정방행렬에 대해서는 고윳값 분해를 적용

    • 직사각 행렬에 대해서는 고윳값 분해를 이용할 수 없음

    • 데이터 압축 등의 많은 분야에서 활용

    • U = M * M^T를 고윳값 분해해서 얻은 직교행렬

    • V = M^T * M을 고윳값 분해해서 얻은 직교행렬

      • 행렬 U와 V에 속한 벡터는 특이벡터(Singular Vector)
      • 서로 직교하는 성질
    • ∑ = 대각행렬

      • 대각성분은 M * M^T과 M^T * M의 고윳값에 루트를 씌운 값으로 구성
      • 대각에 위치한 값만 존재하고 나머지 위치의 값은 모두 0인 행렬
      • ∑ 행렬에서 0이 아닌 값들이 바로 특잇값
    • 특잇값의 개수는 행렬의 열과 행의 개수 중 작은 값과 같다.

    • 고윳값과 고유벡터

      • 정방 행렬 A에 대해 다음 식을 만족하는 영벡터가 아닌 벡터 v, 실수 λ를 찾을 수 있다고 가정하자.

      • 위 식을 만족하는 실수 λ를 고윳값(eigenvalue), 벡터 v를 고유벡터(eigenvector)라고 한다. 고윳갑과 고유벡터를 찾는 작업을 고유분해(eigen-decomposition) 또는 고윳값 분해(eigenvalue decomposition)라고 한다.
      • 행렬 A의 고유벡터는 행렬 A를 곱해서 변환을 해도 방향이 바뀌지 않는 벡터
    • Python을 통한 SVD 예시

3. 파생변수 생성

파생변수

  • 기존 변수들을 조합하여 새롭게 만들어진 변수를 파생변수라 한다.
  • 분석가의 주관이 포함
  • 논리적 타당성을 충분히 고려해 생성

파생변수 생성 방법

  • 하나의 변수에서 정보를 추출해 새로운 변수를 생성
    • 주민등록번호에서 나이와 성별을 추출
  • 한 레코드의 값을 결합하여 파생변수를 생성
    • 키와 몸무게를 이용해 BMI 지수라는 변수를 생성
  • 조건문을 이용해 파생변수를 생성
    • 기준값을 정하고 조건문을 통해 BMI 지수에 따라 저체중, 정상 체중, 과체중을 구분한 파생변수를 생성
  • R로 파생변수 만들기

4. 변수 변환

변수 변환

5. 클래스 불균형(불균형 데이터 처리)

  • 어떤 데이터에서 각 클래스가 가지고 있는 데이터의 양에 큰 차이가 있는 경우
  • 불균형 데이터를 사용하여 모델링을 할 경우 관측치 수가 많은 데이터를 중심으로 학습이 진행되기 때문에 관측치가 적은 데이터에 대한 학습은 제대로 이루어지지 않을 가능성이 크다.

클래스 불균형 문제 해결 방법

  • 과소표집(Under Sampling)
    • 무작위로 정상 데이터를 일부만 선택해 유의한 데이터만 남기는 방법
    • 정상 데이터 800개, 페이크 데이터 100개 → 정상 데이터를 제거해 100개로 감소
  • 과대표집(Over Sampling)
    • 사전에 정해진 기준 또는 기준 없이 무작위로 소수 데이터를 복제하는 방법
    • 정상 데이터 500개, 페이크 데이터 20개 → 페이크 데이터를 복제하여 500개로 증가
  • SMOTE(Synthetic Minority Oversampling Technique)
    • 다수 클래스를 샘플링하고 기존의 소수 샘플을 보간하여 새로운 소수 인스턴스를 합성해내는 방법.
      • 알고리즘을 통해 소수 클래스에 새로운 데이터를 생성
      • 소수 클래스의 데이터 하나를 찾고 해당 데이터와 가까운 K개의 데이터를 찾은 후 주변 값을 기준으로 새로운 데이터를 생성
      • 소수 클래스 수는 다수 클래스의 수와 동일해지게 된다.

클래스 불균형

출처

Share