본문 바로가기
2️⃣ Study/▢ 자격증 | 교육

[빅분기] 2과목 빅데이터 탐색 : 1장 데이터 전처리

by isdawell 2022. 3. 26.
728x90

📌 1장. 데이터 전처리 

 

⭐ 데이터 준비 : 결측치, 이상시 식별 👉 필터링, 정제

Preprocessing : 변환, 통합, 축소 

 

1️⃣ 데이터 전처리 

1. 전처리 필요성 

  • 데이터의 질 : 데이터의 다양성, 데이터의 형태  
  • 다양성 : 현실을 반영하는 데이터의 필요성 (ex. 정확한 발음의 음성 데이터, 소음이 섞인 음성 데이터) 
  • 형태 : 분석이 가능한 형태로 준비되어야 함 (ex. 이미지 데이터의 어노테이션 과정 - 경계선 짓기 + 라벨링) 

2. 전처리 유형 

  • 데이터 정제 : 이상치, 결측치를 파악해 제거하거나 적절한 값으로 대치 
  • 데이터 통합 : 여러 테이블에 있는 데이터를 병합 + 통합하여 적절한 데이터셋 생성
  • 데이터 축소 : 변수 선택, 요약변수 생성 등을 통해 데이터의 차원을 줄임 
  • 데이터 변환 : 정규화, 표준화 등의 작업 수행, 데이터의 형식 변환 

(1) 데이터 정제 

 

1. 결측치 ⭐⭐ - 유형, 처리 방법 

  • 유형 : 완전 무작위결측(MCAR) , 무작위 결측(MAR) , 비무작위 결측(NMAR) 
    • MCAR : 다른 변수들과 아무런 연관없이 완전히 랜덤하게 결측이 발생한 경우로, 이 경우 관측된 데이터는 확률표본으로 간주 
    • MAR : 가장 빈번한 형태. 다른 변수에 영향을 받지만 해당 변수의 비관측값들과 연관되어 있지 않은 경우 (ex. 젊은 연령대에 비해 고 연령대의 결측이 더 많은 경우)  
    • NMAR : MCAR 도 MAR 도 아닌 경우. 결측 자체의 의미가 있는 경우로, 결측 발생 원인을 이해할 필요가 있다. 
  • 처리 : 단순 대치법, 다중 대치법  
    • 단순 대치법 : 단순 삭제, 평균 대치법 (비조건부 평균 대치법 👉 평균값 , 조건부 평균 대치법 👉 회귀 분석을 활용한 값) , 단순확률 대치법 (Hot deck 방법 👉 유사한 집단 중 하나의 개체를 선택, Nearest Neighbor 방법 👉 이웃 데이터의 최빈값/중앙값/가중 평균값 으로 대체) 
    • 다중 대치법 : 단순 대치법을 한 번이 아닌 여러번 수행하여 여러개의 가상적 완전 데이터를 만드는 방법으로 대치 - 분석 - 결합 단계로 이루어진다. 
    • 그외 : 수작업으로 입력, 전역 상수(예. 0) 를 사용, 결측치 무시 

✔ 결측값 처리의 고질적인 문제 :  표준 오차의 과소추정 문제 발생

 

 

2. 이상치 ⭐⭐ - 판별과 처리 방법의 개념, 특징, 극단값 조정 방법을 이용하는 것이 데이터 손실률이 적다는 것 

  • 개념 : 의도하지 않게 잘못 입력한 경우 등 잘못된 데이터 혹은 의도하지 않은 현상이지만 분석에 포함해야 하는 경우, 의도된 이상값 (fraud, 불량) 등 다양함. 정상 범위 밖에 있는 값을 뜻하는데, 잘못 입력된 값일 수 있지만 실제로 존재할 수도 있는 값이므로 주의해야 한다. 
  • 판별 
    • 사분위수 : Q1 - 1.5*IQR , Q3 + 1.5*IQR 범위 밖에 있는 수를 이상치로 판별 
    • 정규분포 : 평균으로부터 (+- 3*시그마) 떨어진 값을 이상치로 판별. 즉 양 끝단의 0.15% 에 분포한 값을 이상치로 간주한다. 
    • 군집화 : 작은 크기의 클러스터나 클러스터 사이의 거리가 너무 먼 경우, 해당 클러스터에 속한 관측치를 이상치로 간주 
  • 처리 
    • 결측처리 : 정상 범주를 벗어난 극단값도 있지만, 13월처럼 아예 존재할 수 없는 경우도 있다. 이런 경우 바로 결측으로 처리한다. 
    • 극단치 기준 이용 : boxplot 에서 기준 범위를 벗어난 데이터 제거 
    • 극단값 절단 방법 : 하단, 상단 %를 이용한 제거법. 10% 절단이라 하면 boxplot 에서 상하위 5%에 해당되는 데이터를 삭제한다. 
    • 극단값 조정 방법 : 상단과 하단의 각 극단치 경계 값들을 하한값과 상한값으로 조정 

 

3. 데이터 불일치 해결 

  • 입력설계가 잘못된 경우, 입력장치 오류, 답변의 회피 같은 의도적 오류, 정보의 변경 같은 데이터의 노후화 

4. 필터링 

  • 조건식을 통해 분석에 맞는 데이터를 찾는 것 
  • 분석 시간 단축과 저장 공간 효율화를 가져옴 

 

(2) 데이터 통합 

 

1. 개념 

  • 서로 다른 원천의 여러 데이터를 결합 + 서로 다른 데이터를 호환 가능하도록 통합 
  • 메타데이터 기반의 데이터 품질 관리, 데이터 충돌 탐지, 의미적 이질성 해소 
  • 데이터 웨어 하우스 : 분산 운영되는 DBMS 를 통합해 조정 및 관리하는 데이터 관리 도구 

2. 고려사항

  • 스키마 통합, 개체의 매칭 : 개체 식별 
  • 데이터 중복 
  • 하나의 속성에 대해 상충되는 값 

 

(3) 데이터 축소 

  • 중복, 불필요하게 나열된 데이터를 축소하는 작업 
  • 고유한 특성은 손상되지 않도록 유지하면서 분석에 효과적일 수 있도록 변수 선택/변수 요약 하는 작업 

 

(4) 데이터 변환 

 

1. 변환 기법 

  • 형식 및 구조 변환 : ex. 수치형 데이터를 문자형으로 변환 , reshape 
  • 데이터 스케일링 : 측정 단위나 값 범위가 다를 때 min-max 정규화, 표준화 등을 적용한다. 
    • 표준화 : 평균을 기준으로 각 개체가 얼마나 떨어져 있는지를 나타내는 값으로 변환. 이상치를 판별할 수 있음. Z-score 표준화는 데이터 분포를 평균은 0 표준편차는 1로 변환시켜준다. 
    • 정규화 : 데이터의 범위를 0과 1사이로 변환하여 데이터의 분포를 조정. min-max 정규화 
  • 평활화 : 노이즈로 인해 거칠게 분포된 데이터를 매끄럽게 만드는 방법. 대표적으로 구간화 (히스토그램의 경우 구간 너비를 작게함) 와 군집화 방법이 있다. 
  • 비정형 데이터 변화 : 텍스트 👉 단어의 빈도로 표현 , 이미지 👉 픽셀마다 rfb 수로 변환 

 

2️⃣ 분석 변수 처리 

(1) 변수 ⭐⭐ - 개념과 예시 

  • 데이터를 담는 장소. 속성이라고 부르며 테이블의 열에 해당 
  • 독립변수, 종속변수 
  • 범주형 👉 명목형, 순서형 / 수치형 👉 연속형, 이산형 

 

(2) 변수 선택 ⭐⭐ - 개념, 래퍼방법

 

a. 필터 방법 

  • 특정 모델링 기법이 아닌, 데이터에 대한 통계적 특징을 이용해 변수 선택 
  • 상호 정보량, 상관계수 등 변수 간의 연관성 측정. 변수 순위를 정해고 가장 높은 순위의 변수 선택 
  • 0에 가까운 분산을 가지는 변수 제거 : 0에 가까운 분산을 갖는 변수는 서로 다른 관찰을 구분하는데 큰 의미가 없으므로 이를 제거 
  • 상관관계가 높은 변수 : PCA 를 사용해 독립된 차원으로 변환하거나 상관계수가 큰 변수들을 제거 

 

b. 래퍼방법 ⭐⭐ 

  • 변수의 일부만 사용해 모델링을 수행하고 결과를 확인하는 작업을 반복해 변수를 선택 
  • 가장 좋은 성능을 보이는 변수 집합을 찾아내는 방법으로 필터 방법보다 정확도가 더 높다. 
  • 시간이 오래걸리고 과적합 위험이 발생할 수 있다는 단점
방법 설명 
FeedForward Selection 변수가 없는 상태서 시작해 가장 중요한 변수를 하나씩 추가
Backward Elimination 모든 변수를 포함한 모델에서 가장 덜 중요한 변수를 하나씩 제거 
Stepwise Selection 전진선택법과 후진제거법을 결합하여 사용. 모든 변수를 포함한 모델에서 변수 삭제 및 추가를 반복 혹은 변수가 없는 상태에서 출발해 변수 삭제 및 추가를 반복 
Best Subset 모든 경우의 모델을 비교해 최선의 모형을 찾음. 독립변수의 개수에 따라 모델 비교 횟수가 달라진다. 독립변수가 1개일때, 2개일때, 3개일때 ... 

 

 

c. 임베디드 방법 

  • 모델링 기법 자체에 변수 선택이 포함된 방법 
  • 가장 좋은 성능을 보이는 변수 집합을 찾는 방법 
방법 설명
라쏘 회귀 L1 규제. 가중치 절대값의 합을 최소화하는 규제를 포함. 중요하지 않은 가중치는 0이됨
릿지 회귀 L2 규제. 가중치 제곱합을 최소화 하는 것을 제약조건에 포함. 가중치가 0에 가까워짐
엘라스틱넷 L1 과 L2 규제의 결합. 상관관계가 큰 변수를 동시에 선택하거나 배제하는 특성이 있다. 

 

(3) 차원축소 ⭐⭐ 

  • 다차원 데이터 셋에서 변수의 개수를 줄임으로서 차원을 축소 
  • 다중공선성 문제를 해결 
  • 유형 
방법 설명
피처선택 데이터의 특징을 가장 잘 나타내는 주요 피처만 선택
피처 추출 선형 혹은 비선형 결합을 활용해 새로운 피처를 추출. 혹은 기존의 변수들을 함축하는 피처로 변수들을 요약해서 줄이는 방법 
  • 방법 
방법 설명
다차원척도법 MDS 데이터 속 잠재된 패턴, 구조를 찾아내 소수 차원의 공간에 객체간 근접성을 시각화하는 통계기법. 군집분석 후 2차원 또는 3차원 공간상에 점으로 표현하여 개체들 사이의 집단화를 시각적으로 표현하는 분석방법이다. 
주성분 분석 PCA  - 분석변수를 선형적으로 결합해 데이터를 가장 잘 표현하는 축 (주성분) 을 찾아내고 그 축을 중심으로 데이터 차원을 축소하는 방법이다. 즉 주성분이라는 새로운 변수를 만들어 기존의 변수들을 요약하여 축소한다. 
- 제 1 주성분이 데이터의 가장 많은 부분을 설명할 수 있어 가장 중요하고 제 2 주성분이 그다음으로 중요하게 간주됨 
- 핵심적 속성을 결합하는 방식 
- 변수 사이에 강력한 선형관계가 존재하는 경우 유용하다. 데이터가 부족하거나 비대칭 형태를 가지는 경우에도 적용이 가능하다. 
- 보통 다중 회귀 분석, 군집분석에서 많이 이용 
선형판별분석 LDA  - PCA 와 비슷하게 데이터를 저차원 공간에 투영해 차원을 축소
- 데이터가 서로 다른 군집으로 구성되어 있을 때 군집을 잘 구분해내는 축을 찾아 데이터를 2차원 혹은 3차원으로 축소해서 서로 다른 군집을 분류해낼 수 있도록 표현해준다. 
- 지도학습의 분류 문제에 사용할 수 있도록 클래스 구분 기준을 유지하면서 차원을 축소한다. 
- 군집의 수가 적은데 분석 차원이 너무 많으면 오류가 발생할 위험이 높다. 
요인분석 Factor Analysis 상관관계를 고려하여 서로 유사한 변수들을 묶어 새로운 잠재요인을 추출해내는 분석방법으로, 도출한 요인들은 대등한 관계이고, 목표변수를 고려하지 않고 주어진 변수 중 성격이 비슷한 것들을 묶어 새로운 변수를 생성한다. 
특이값분해 SVD - SVD 는 행렬의 인수분해로, 선형대수의 일반적인 기법이며 실수 공간에서 정의된 mxn 차원의 행렬에서 특이값을 추출하고 이를 활용해 데이터의 차원을 축소한다. 
- m 차원의 벡터를 n 차원으로 변환시키는 것. m>n 이면 차원축소를 의미 
t-SNE - 데이터에서 지역 인접성을 보존하려고 시도하는 차원축소 알고리즘으로 비선형적이고 비결정적이다. 
- 2D 또는 3D 투영을 계산할 때 이용할 수 있다. 
- t-SNE 임베딩을 사용하면 차원을 줄이고 다른 방법이 놓칠 수 있는 구조를 찾을 수 있지만, 데이터셋이 매우 크면 찾기 힘들다. 
서포트 벡터 머신 SVM  - 분류 알고리즘이긴 하나, 내부에 있는 차원축소 기법을 활용해 2차원이나 3차원으로 축소하여 분류를 해내므로 변수 추출 알고리즘으로도 많이 사용된다. 
- 내장된 차원축소 방법은 변수 간 비선형 관계가 있는 경우도 사용할 수 있다. 

* 참고. PCA 는 데이터의 분산을 가장 잘 설명해주는 축을 찾고, LDA 는 입력 데이터의 예측 변수 클래스를 최대한 잘 구분할 수 있는 축을 찾는다. 

  • 활용
    • 모델링 시 주요 설명변수 추출
    • EDA
    • 다차원 공간의 정보를 저차원으로 변환 
    • 데이터 내 중요 변수 혹은 잠재된 새로운 요인 발견 

 

(4) 파생변수 생성 

  • 파생변수 : 분석자가 특정 조건을 만족하거나 특정 함수에 의해 값을 만들어 의미를 부여한 변수 
  • 요약변수 : 수집된 정보를 분석에 맞게 종합한 변수. 총구매 금액, 구매여부 등 

 

(5) 변수 변환 

 

a. 변수의 구간화 

  • 변수 구간화 Binning : 노이즈를 제거하기 위해 연속형 변수를 다수의 구간으로 나누고 동일한 구간에 속하는 변수 값들을 하나의 변수값 (범주형) 으로 변환하는 방법. 신용평가모형, 고객 세분화 같은 방법에 사용된다. 
  • 의사결정나무 모형을 사용해 입력 변수들을 구간화 

 

b. 더미변수 

  • 범주형 변수 변환 : 모델링의 입력으로 넣기 위해서 범주형 변수를 연속형 변수로 변환하는 과정이 필요하다. 
  • 더미변수는 0 혹은 1의 값만 가진다. 

 

c. 정규분포화 

  • 로그변환 
  • 제곱근 변환 : 오른쪽으로 긴 꼬리를 갖는 분포의 대칭화에 유용한 방법 (분산 안정화) 

 

(6) 불균형 데이터 처리 

 

a. 데이터 불균형 

  • 분류 문제에서 각 클래스의 데이터 분포가 상이한 경우를 의미한다. 이런 경우 비율이 높은 클래스 쪽으로 대부분의 분류를 수행하는 모형이 될 수 있다. 
  • 결정트리나 다층 퍼셉트론과 같은 분류기에서 문제가 발생할 수 있다. 
  • 해결방법 : 오버샘플링 , 언더 샘플링 

 

b. 오버샘플링 ⭐

  • 적은 수의 데이터를 가지고 있는 클래스를 표본으로 더 많이 추출하여 해당 클래스의 데이터 수를 증가시킨다. (과적응의 단점 존재) 
  • Resampling : 데이터를 복사하는 방법. 과적합 위험 존재 
  • SMOTE :  복제 방법 대신, 더 작은 수의 관측치를 가지고 있는 집단 데이터들과 일정한 거리를 가진 가상의 데이터들을 새로 생성하는 방법으로 KNN 알고리즘을 사용한다. 
  • Borderline SMOTE : 서로 다른 클래스간의 경계선에서 SMOTE 를 적용하는 방법. 클래스 범위 내에서만 데이터를 생성해 특정 분포에서 중복적으로 발생하는 SMOTE 방법을 개선한 것이다. 
  • ADASYN : borderline smote 와 비슷하나, 데이터의 위치에 따라 샘플링 개수를 다르게 설정하는 것에 차이가 있다. 

 

 

c. 언더 샘플링

  • 더 많은 수의 데이터를 가진 클래스의 일부만 추출해 데이터 샘플링을 진행하는 방법. 데이터 크기가 매우 클 때 효과적이나 데이터 정보 손실의 단점이 있다. 
  • 랜덤 언더 샘플링 : 무작위로 샘플링 
  • Tomek Links : 클래스를 구분하는 경계선 가까이에 존재하는, 서로 다른 클래스에 속하나 가장 가까이 붙어있는 한 쌍의 데이터를 활용하여 이에 속한 데이터 중 다수의 관측치를 갖고 있는 집단의 데이터를 제거한 뒤 표본을 추출하는 방식 
  • CNN : 더 많은 수의 데이터를 가지고 있는 클래스의 관측치들중 밀집된 데이터를 제거해 해당 클래스를 대표할 수 있는 데이터만 남기고 샘플링을 진행 
  • OSS : Tomek link 방법과 CNN 의 장점을 섞은 방법 

 

 

728x90

댓글