본문 바로가기
Computer Science/기계학습

[Exploratory Data Analysis] 2. Data quality

by 큌 2024. 4. 20.
반응형

2024.04.20 - [Computer Science/기계학습] - [Exploratory Data Analysis] 1. DATA

 

[Exploratory Data Analysis] 1. DATA

Content Data Data quality Exploratory data analysis Numerical summary Graphical summary 1. DATA 1.1 Data Terminology 데이터 샘플과 그 특성의 집합(Collection of data samples and their features) 데이터 샘플은 관찰이나 측정을 통해

perfect-occasion.co.kr

Content

  • Data
  • Data quality
  • Exploratory data analysis
    1. Numerical summary
    2. Graphical summary

2. DATA QUALITY

2.1 DATA QUALITY

  • 데이터 품질 문제( data quality problems )는 다양한 형태로 나타날 수 있으며, 이러한 문제를 탐지하고 해결하는 것은 데이터 분석의 정확도와 효율성을 높이는 데 중요.
  • 데이터 품질 문제의 종류:
    •  잡음(Noise): 데이터에 무작위 오류가 포함되어 데이터의 정확성이 저하된 상태.
    •  중복 데이터(Duplicate Data): 동일한 데이터여러 번 입력되어 데이터의 일관성을 해치는 경우.
    •  결측값(Missing Value): 데이터셋 내 일부 정보가 누락되어 있는 상태.
    •  이상값(Outlier): 전체 데이터에서 벗어난 극단적인 값으로, 때로는 오류특이한 사건을 반영할 수 있다.
  • 문제 탐지 방법:
    •  통계적 분석: 데이터의 기초 통계량(평균, 중앙값, 표준편차 등)을 계산하여 이상값이나 결측값을 찾을 수 있다.
    •  시각화: 데이터 시각화(산점도, 히스토그램 등)를 통해 데이터의 분포를 확인하고, 이상값이나 패턴을 식별할 수 있다.
    •  데이터 품질 평가 도구: 특정 도구나 소프트웨어를 사용하여 데이터의 질을 자동으로 평가하고 문제를 탐지할 수 있다.
  • 문제 해결 방법:
    •  잡음 및 이상값 처리: 잡음이나 이상값은 제거하거나, 다른 값으로 대체(평균, 중앙값 등)할 수 있습니다.
    •  중복 데이터 제거: 데이터 정제 과정을 통해 중복된 항목을 식별하고 제거합니다.
    •  결측값 처리: 결측값은 제거하거나, 다른 값(평균, 중앙값 등)으로 대체하거나, 예측 모델을 사용하여 대체할 수 있습니다.

2.2 Noise

  • 노이즈는 원래 값의 변형( modification of original values )을 의미.
    •  예를 들어, 품질이 좋지 않은 전화기로 이야기할 때 사람의 목소리가 왜곡되는 것이 노이즈의 한 예.
  • 데이터 분석에서 노이즈는 데이터의 진실성과 정확성을 해치는 임의의 오류나 왜곡을 가리킴.
  • 이러한 노이즈는 측정 과정에서의 실수, 데이터 전송 중의 오류, 또는 데이터가 손상되는 등 다양한 원인으로 발생.

2.3 노이즈 처리

  • 더 많은 데이터 수집하기
    •  데이터가 많을수록 기본적인 패턴을 식별할 수 있는 확률이 높아짐.
    •  노이즈는 특정한 경우에만 발생할 수 있으므로, 데이터 양을 늘리면 노이즈가 아닌 실제 패턴을 더 잘 파악할 수 있다.
  • 스무딩(Smoothing)이나 빈닝(Binning)을 통한 이산화(Discretization)
    •  연속적인 데이터를 몇 개의 구간으로 나누어 각 구간의 대표값으로 데이터를 단순화.
    •  예를 들어, 데이터를 구간별 평균값으로 대체하는 방법이 있다. 이런 방식은 데이터의 세밀한 변화보다는 큰 트렌드를 파악하는 데 도움.
  • 정규화(Regularization)
    •  L1/L2 정규화: 정규화는 모델이 과적합(overfitting)되는 것을 방지하는 방법 중 하나. 과적합은 모델이 훈련 데이터의 노이즈까지 학습해버려, 새로운 데이터에 대한 예측 성능이 떨어지는 현상을 의미.
    •  L1과 L2 정규화는 모델의 복잡도에 패널티를 부여하여 노이즈에 대한 모델의 민감도를 줄임.
      •  L1 정규화는 모델의 일부 가중치를 정확히 0으로 만들어줌으로써 변수 선택의 효과를 가져올 수 있다.
      •  L2 정규화는 모든 가중치를 작게 만들어 과적합을 방지.

2.4 Missing values (결측값)

  • 결측값이란 데이터 수집 과정에서 특정 정보가 누락된 상태를 의미.
  • 결측값이 발생하는 주된 이유
    •  데이터 수집 과정에서의 오류:
      •  데이터를 수집, 기록, 또는 전송하는 과정에서 발생하는 기술적 문제나 실수로 인해 정보가 정확하게 기록되지 않을 수 있다.
    •  정보가 수집되지 않음:
      •  설문 응답자가 특정 정보를 제공하는 것을 거부하거나 응답하지 않는 경우, 일부 정보가 누락될 수 있다.
      •  예를 들어, 개인이 자신의 나이나 체중을 제공하는 것을 거부하는 경우가 여기에 해당.
    •  특정 속성이 모든 경우에 적용되지 않음:
      •  일부 데이터 항목은 모든 경우에 적용되지 않을 수 있다.
      •  예를 들어, 어린이에게는 연간 소득이 적용되지 않을 수 있다.
  • 데이터 테이블에서 이러한 결측값은 주로 빈 공간이나 "NaN"(Not a Number)으로 표시.
    •  결측 데이터를 그대로 두고 분석을 진행하는 경우, 예측할 수 없는 결과를 초래할 수 있으므로 적절한 처리가 필요.
    •  예를 들어, 결측값을 단순히 0으로 대체하는 경우 데이터의 분포와 통계적 특성을 왜곡시킬 수 있으므로 주의가 필요.
  • 결측값을 처리하는 방법에는 다양한 방법이 있으며, 상황에 따라 적절한 방법을 선택하는 것이 중요.
    •  예를 들어, 결측값을 해당 변수의 평균이나 중앙값으로 대체하거나, 결측값이 포함된 데이터를 제거하는 방법, 더 복잡한 방법을 사용하여 결측값을 예측하고 채우는 방법 등이 있다.

2.5 결측 데이터 처리

  • 데이터 객체(또는 특성) 제거( Eliminate data objects (or features) ): 결측값이 포함된 데이터 행이나 열을 전체적으로 제거하는 방법.
    • 이 방법은 처리가 간단하고 직관적이지만, 너무 많은 데이터를 제거하게 되면 분석할 데이터가 부족해지거나 중요한 정보를 잃어버릴 위험이 있다.
    • 따라서, 결측값이 상대적으로 적은 경우에 적합한 방법.
  • 결측값 추정( Estimate missing values (Imputation)): 결측값을 다른 값으로 대체하는 방법.
    • 여러 가지 추정 방법이 있으며, 가장 단순한 방법 중 하나는 결측값을 해당 변수의 평균값이나 중앙값으로 대체하는 것.
    • 또한, 더 복잡한 방법으로는 다른 변수들의 관계를 이용하여 결측값을 예측하는 모델을 구축하는 것도 있다. 이렇게 결측값을 적절히 대체하면 데이터의 손실을 줄이면서 분석의 정확도를 높일 수 있다.

2.6 결측 데이터 제거 [1]

  • 누락된 데이터를 가장 쉽게 다루는 방법은 데이터셋에서 해당 훈련 샘플(행)이나 특성(열)을 완전히 삭제하는 것.
  • 누락된 값이 있는 행은 dropna 메서드를 사용해 삭제.

https://github.com/rasbt/python-machine-learning-book/blob/master/code/ch04/ch04.ipynb

  • axis 매개변수를 1로 지정해 NaN이 하나라도 있는 열을 삭제

2.7 결측 데이터의 제거[2]

2.8 결측 데이터 제거 [3]

  • 장점: 편리함
    • 결측값을 가진 데이터를 제거하는 것은 기술적으로 가장 간단하고 직관적인 접근 방식.
    • 복잡한 처리 과정 없이 결측값으로 인한 영향을 빠르게 제거할 수 있다.
  • 단점: 정보 손실
    • 샘플 수 부족
      • 결측값을 가진 데이터를 대량으로 제거하게 되면, 사용 가능한 샘플의 수가 줄어들게 든다.
      • 이는 데이터의 대표성을 손상시키고, 결과적으로 분석의 신뢰성을 저하시킬 수 있다.
    • 특징 수 부족
      • 특정 특징(feature)에 결측값이 많은 경우, 해당 특징을 전체적으로 제거하게 되면 해당 특징이 제공할 수 있는 중요한 정보를 잃게 됨.
      • 이는 데이터의 다양성과 풍부함을 저하시키며, 분석 결과의 정확성에 부정적인 영향을 미칠 수 있다.

2.9 결측값 보정

  • 평균값 사용 (Use mean value)
    • 이 방법은 결측값을 해당 변수의 평균값으로 대체하는 가장 간단한 방법 중 하나.
    • 연속형 변수에 주로 사용되며, 데이터의 전반적인 분포를 크게 바꾸지 않는 장점이 있다.
    • 하지만, 이상치(outliers)의 영향을 받을 수 있으며, 데이터의 변동성(variability)을 과소평가할 수 있다는 단점도 있다.
  • 최근접 이웃 기반 대입 (Nearest-neighbor based imputation)
    • 결측값을 가진 데이터 포인트와 가장 비슷한 특성을 가진 이웃 데이터 포인트(들)의 값으로 대체한다.
    • 데이터 내의 자연스러운 패턴을 유지할 수 있다는 장점이 있지만, 계산 비용이 높고 이웃을 선택하는 기준에 따라 결과가 크게 달라질 수 있다는 단점이 있다.
  • 모델 기반 대입 (Model-based imputation)
    • 이 방법은 머신러닝 알고리즘을 사용하여 결측값을 예측하는 방식.
      • 예를 들어, 결측값을 가진 변수를 종속 변수로 설정하고, 다른 변수들을 독립 변수로 사용하여 모델을 학습시킨 후, 이 모델을 사용하여 결측값을 예측한다.
    • 모델 기반 대입은 복잡한 데이터 구조를 반영할 수 있으며, 데이터의 특성을 잘 활용할 수 있다는 장점이 있다.
    • 하지만, 적절한 모델 선택과 파라미터 설정이 필요하며, 과적합(overfitting)의 위험이 있다는 단점이 있다.

2.10 평균보정법

  • 평균보정법은 결측값을 처리하는 한 방법으로, 해당 열(column)의 평균값을 사용하여 결측값을 채우는 방식.
  • 이 방법은 특히 연속형 변수에 결측값이 있을 때 자주 사용.
  • 각 열에 대해 결측값을 그 열의 평균값으로 대체함으로써 데이터의 전반적인 분포를 크게 바꾸지 않으면서 결측값을 처리할 수 있다.
    • 평균보정법의 장점은 그 실행이 간단하고 계산이 용이하다는 점. 데이터의 기본적인 통계적 특성을 유지하면서 결측값을 보정할 수 있다.
    • 하지만 이 방법은 모든 결측값을 동일한 값으로 대체하기 때문에, 데이터의 변동성을 과소평가할 수 있으며, 특히 이상치(outliers)가 있는 경우 평균값이 왜곡될 수 있어 주의가 필요.
    • 또한, 평균보정법은 데이터의 복잡한 구조나 패턴을 반영하지 못하는 단점도 있다. 

2.11 K-Nearest Neighbor Imputation

  • 누락된 값이 있는 데이터 포인트와 가장 가까운 k개의 이웃 데이터 포인트를 찾은 다음, 이 이웃들의 비누락 값들을 사용하여 누락된 값을 추정하거나 대체하는 방식으로 작동.
  • K-NN Imputation의 과정:
    • 누락된 값을 가진 데이터 포인트를 선택.
    • 선택된 데이터 포인트와 가장 유사한 k개의 이웃 데이터 포인트를 찾음. 유사도는 보통 거리 측정 방식(예: 유클리드 거리)을 사용하여 계산됨.
    • 선택된 이웃들 중 누락되지 않은 값들을 사용하여 누락된 값을 추정.
    • 예를 들어, 연속형 변수의 경우 이웃들의 평균값을 사용하고, 범주형 변수의 경우 가장 빈번한 값을 사용할 수 있다.
  • K-NN Imputation의 장점은 데이터의 복잡한 구조와 패턴을 반영할 수 있다는 점. 비슷한 이웃 데이터를 기반으로 누락된 값을 보정하기 때문에, 데이터 간의 상관관계를 일정 부분 유지할 수 있다.
  • 그러나, 적절한 k값의 선택이 중요하며, 계산 비용이 높을 수 있고, 이웃을 찾는 과정에서 데이터의 규모가 크거나 차원이 높은 경우 효율성이 떨어질 수 있다는 단점도 있다.

2.12 Outliers (이상값)

  • 이상값(outliers)은 데이터 세트 내 다른 대부분의 데이터 객체와 비교해 현저하게 다른 특성을 가진 데이터 객체.
  • 이상값은 데이터의 전반적인 분포에서 벗어난 값으로, 데이터 분석이나 모델링에 있어 중요한 영향.
  • 발생 원인:
    • 측정 오류(Measurement error): 잘못된 측정 장비 사용이나 측정 방법의 오류로 인해 발생할 수 있습니다.
    • 인간의 오류(Human error): 데이터 입력, 기록 또는 처리 과정에서 발생하는 실수입니다.
    • 표본 추출 오류(Sampling error): 비대표적인 표본 추출로 인해 발생하는 오류입니다.
    • 자연적 이상값(Natural outlier): 자연스러운 변이로 인해 발생하는 드물지만 정상적인 데이터 포인트입니다.
  • 이상값 처리 방법:
    • 단순 삭제
      • 이상값을 데이터 세트에서 제거.
      • 이 방법은 이상값이 데이터 분석에 미치는 영향을 완전히 제거할 수 있지만, 동시에 중요한 정보의 손실을 초래할 수 있다.
    • 다른 값으로 대체
      • 이상값을 다른 값으로 대체하여 데이터의 연속성을 유지할 수 있다.
        • 평균: 이상값을 해당 변수의 평균값으로 대체. 이 방법은 데이터의 전반적인 분포를 크게 변화시키지 않으려 할 때 유용.
        • 회귀 모형 또는 예측 모델을 이용: 다른 변수들을 기반으로 회귀 모형이나 예측 모델을 사용하여 이상값을 예측하고, 해당 예측값으로 이상값을 대체함. 이 방법은 데이터 간의 관계를 활용하여 이상값을 보다 정교하게 처리할 수 있다.

outliers

2.13 Outlier detection

  • 이상값 탐지는 데이터 세트에서 표준에서 벗어나는 데이터 포인트를 식별하는 과정.
  • 이상값을 탐지하는 두 가지 주요 방법:
    • 탐색적 데이터 분석(EDA- exploratory data analysis )
      • EDA는 데이터의 분포, 중심 경향, 변동성 등을 시각화하고 분석하여 이상값을 탐지하는 방법.
      • 박스플롯, 히스토그램, 산점도 등 다양한 그래픽 도구를 사용하여 데이터의 분포를 살펴보고 이상값을 식별할 수 있다.
      • 예를 들어, 박스플롯에서 상자의 상한과 하한 밖에 위치하는 데이터 포인트들은 이상값으로 간주될 수 있다.
    • 모델 기반 접근법( Model-based approaches )
      • 이 방법은 통계적 또는 기계 학습 모델을 사용하여 데이터의 정상적인 패턴을 학습하고 이를 바탕으로 이상값을 탐지.
      • 예를 들어, 클러스터링 알고리즘은 유사한 데이터 포인트들을 그룹화하고, 이러한 그룹에서 벗어난 데이터 포인트를 이상값으로 간주할 수 있다.
      • 또한, 분산이나 평균 등 통계적 기준을 넘어서는 데이터 포인트를 이상값으로 식별하는 통계적 방법도 있다.
반응형