Data Science/이론

DS 이론13~15-데이터 전처리(결측치, 정규화, 변환)

에너지_2 2024. 11. 23. 16:51
728x90
반응형

※ 학습자료 정리한 내용입니다.

 

[Level 2] 13 데이터 전처리 1_데이터클리닝

 

13차시 데이터 전처리 1_데이터클리닝

: 데이터를 분석하기 좋은 형태로 만드는 과정

 

[데이터 전처리의 필요성]  **

: 데이터 품질은 분석 결과 품질의 출발점이며,  데이터 품질이 높은 경우에도 데이터 전처리는 필요하다

 

- 데이터 전처리가 필요한 경우

  1. 구조적 형태가 분석 목적에 적합하지 않은 경우 
  2. 사용하는 툴, 기법에서 요구하는 데이터 형태가 있는 경우
  3. 데이터가 너무 많은 경우
  4. 데이터 품질이 낮은 경우
    • 불완전(Incomplete) : 데이터의 필드가 비어있는 경우 "결측치"
    • 잡음(Noise) : 데이터에 오류가 포함된 경우 "이상치" ex) 수치형 데이터 중 문자형 존재
    • 모순(Inconsistency) : 데이터 간 정합성, 일관성이 결여된 경우 ex) 학점 중 Z 값이 있음

 

- 전처리된 데이터로 모델을 만들어 패턴, 예측을 찾을 수도 있다

 

[데이터 전처리의 주요 기법]

  1. 정제(Cleaning)
  2. 통합(Integration)
  3. 축소(Reduction)
  4. 변환(Transormation)

 

데이터 정제

[결측값]

- 존재하지 않고 비어 있는 상태

- 후속 분석 결과에 영향이 최소화되도록 데이터를 채울 필요

 

  • 결측값 처리 방법 **
    • 수작업으로 채워 넣음
    • 특정값 사용
    • 평균값 사용 (전체 평균 or 기준 속성 평균) ex) python code
    • 가장 가능성이 높은 값 사용 (회귀분석, 보간법 등)
    • 해당 데이터 행을 모두 제거

 

[이상값]

- 이상값으로 판단되는 값에 의해 경향성 훼손 발생

- 탐지 방법

  1) 시각화 ( 산점도, Box plot, 히스토그램 등)

  2) 수치적 탐지방법 (Box plot - IQR 기준)

  3) likelihood : 베이즈 정리에 의해 데이터 세트가 가지는 정상/이상 샘플에 대한 발생확률로 판별

  4) kNN : 모든 데이터쌍의 거리를 계산하여 검출

- 처리 방법

  1) Tukey 

  2) Carling

import numpy as np

# 데이터 예시
data = np.array([10, 12, 13, 15, 18, 20, 30, 50])

# 사분위수 계산
Q1 = np.percentile(data, 25)
Q3 = np.percentile(data, 75)
IQR = Q3 - Q1
Med = np.median(data)

# Tukey 방법
tukey_lower = Q1 - 1.5 * IQR
tukey_upper = Q3 + 1.5 * IQR

# Carling 방법
carling_lower = Q1 - 1.5 * (Q3 - Med)
carling_upper = Q3 + 1.5 * (Med - Q1)

print("Tukey 이상값 경계:", tukey_lower, tukey_upper)
print("Carling 이상값 경계:", carling_lower, carling_upper)

 

 

Q. 동떨어져 있는 데이터는 항상 이상값인가?

떨어져 있으나 데이터가 여러 개 있으면 이상값이 아니라, 새로운 집단인지 확인 필요

 

[잡음]

 

 

 

 

14차시 데이터 전처리 2_통합 및 축소

[결합 Join]

- Excluding join

[축소]

- Filtering: 필요한 데이터만 추출

- Sampling: 데이터의 양을 조절

- 차원 축소..

   차원의 저주: 차원이 늘어날수록 데이터분석은 잘 됨

 

[표본 추출 Sampling]

전수조사 vs 표본조사

- 전수조사는 비용과 시간이 많이 드는 단점이 있음 ex) 인구 센서스

- 전수조사를 하면 당연히 샘플 수가 많기 때문에 현실세계에 가까운 결과가 나오지만, 보통 표본조사로 함

 

전수검사가 어려운 예

- 파괴실험

- 대통령 후보 지지도 조사

- 농축산물 품질 검증

 

-> 편향성을 줄이기 위해 무작위 추출을 선호함

 

연구결과를 왜곡시키는 오차 (Error)

- 표본오차: 일부 표본만 조사하기 때문에 발생되는 오차. 전수조사 시, '0'이 됨

 

비표본오차 -> 전수조사로도 줄이기 쉽지 않음

- 무응답오차 / 휴먼에러(조사자 오차-표본잘못선정, 데이터 잘못분석/ 면접자 오차-실수, 태만/ 응답자 오차-무성의)

 

[Sampling 방법] *

- 단순임의추출: 무작위 추출

- 층화추출: 지정한 그룹 별로 지정한 비율만큼의 데이터를 임의로 선택. 모집단의 각 층의 비율만큼 추출.

- 계통추출: 첫 번째 요소는 무작위 선정. 매 k번째 요소를 표본으로 선정

        1) 만약, 요소들이 주기성을 띄고 있으면 매우 어긋난 표본이 될 수 있으며 모집단을 전혀 반영하지 못하게 됨

        2) 만약, 요소들이 무작위로 되어 있다면 단순임의표본과 같다고 할 수 있음

- 군집추출, 집락추출: 

        1) 군집 간 동질성, 군집 내 이질성인 경우 사용

        2) 장점: 군집을 잘 규정하면 비용 절감/ 모집단의 특성과 비교 가능

        3) 단점: 단순임의추출보다 군집을 과대, 과소 평가해서 표본오차를 계산하기가 어려울 수 있음

                ex) 백화점 지점별 큰 차이가 없다면( 군집 간 동질성 ), 한 지점을 선택하여 그곳 고객들을 대상으로 추출 **

 

Q. 표본추출방법 4가지 구분

Q. 층화추출 vs 군집추출

 

[Training - Test Data Split]

Original Data -> Training  Set  -> 모델링 (머신러닝 알고리즘)            -> 모형평가

                       -> Test Set : 모델의 성능을 테스트하기 위한 데이터       -> 

 

 

15차시 데이터 전처리 3_변환

[Pivot]

- Pivot : 행, 열 별 요양된 값으로 정렬해서 분석을 하고자 할 때 사용

- Unpivot: wide form -> long form

 

[파생변수 생성]

파생변수 - "신규"

- 이미 수집된 변수를 활용해 새로운 변수 생성하는 경우

- 주관적일 수 있으며, 논리적 타당성을 갖추어 개발해야 함 ex) 주 구매 매장, 구매 다양

   -> 평균값보다 이상이어야 주 구매 매장이라고 판단할 수 있는 타당성을 갖춰야 

 

요약변수 - "집계"

- 빈도를 카운트한 개념

- 원 데이터를 분석 Needs에 맞게 종합한 변수

- 데이터의 수준을 달리하여 종합하는 경우가 많음 ex) 총 구매 금액, 매장별 방문횟수

요약변수 파생 변수
매장 이용 횟수 주 구매 매장
구매 상품 품목 구매 상품 다양성

 

 

Q. O/X문제, 변수 설명

Q. 다음 중 요약 변수가 아닌 것을 고르시오

(1) 총 판매량

(2) 총 판매금액

(3) 매장별 방문횟수

(4) 인기 매장 수 : '인기'의 기준은 주관적이고 논리적 타당성이 필요함

 

[정규화 Normalization] **

정규화 기법: 데이터 속성값이 ±1.0과 같이 정해진 구간 내에 들도록(표준화) 만들어서 비교 가능하게 만든다.

                  분포모양은 변하지 않는다.

- 최소-최대 변환 (Min-Max Scaling): 0 ~ 1 사이 값으로 변환.

- Z-core 변환 (Standard Z Scaling): 평균이 0, 표준편차가 1로 표준화 값으로 변환. 정규분포이지만 첨도가 다를 수 있는 분포를 비교할 때 사용.

   -> 같은 범주 내여야 비교 가능.

    -> 변환 전의 데이터가 정규분포를 따를 경우 변환 후는 표준 정규분포를 따를 수 있다.

- Max Absolute Scaling: 가장 큰값의 절대값으로 나눔

- Robust Scaling: 분위수를 이용

분포의 모양은 변하지 않고, X 축의 결과 값 범위가 변경

 

"scaling" : 데이터의 값의 범위를 조정하는 것

Q. 기법 이름 정도 외우기

 

 

[데이터 분포의 변환]**

정규분포를 가정하는 분석 기법을 사용하나, 샘플 데이터가 정규를 따르지 않는 경우

정규분포 혹은 가깝게 변환하는 기법 

- Positively Skewed (왜도- 오른쪽꼬리) 를 정규분포로 바꿀 때,  sqrt(x) -> log10(x) -> 1/x

- Negatively Skewed  (왜도- 왼쪽꼬리) 를 정규분포로 바꿀 때,

    sqrt(max(x+1)) -> log10( max(x+1)-x ) -> 1/( max(x+1) -x)

 

Q. Positively skewed 식 외우고, 나머지 하나를 기억하

 

 

- 종속변수의 증가가 독립변수의 증가보다 급격 -> log 변환 시도 → 큰 값을 축소하여 선형화

- 종속변수의 감소가 독립변수의 증가보다 급격 -> square 변환 시도 → 작은 값을 강조하여 선형화

(1) square 변환  시도 (2) (3)  log 변환 시도

Q. 그림과 함께 문제

 

 

반응형
300x250

 

728x90
반응형