자격증/빅데이터분석기사

[빅데이터분석기사] 빅데이터 탐색 - 데이터 전처리

glorypang 2025. 3. 31. 00:40
728x90
반응형
SMALL

데이터 정제

1. 데이터의 종류

유형  설명  예시
단변량 데이터 특성이 하나인 데이터 키, 몸무게 등
다변량 데이터 두 개 이상의 특성 포함 키 + 몸무게 + 나이
시계열 데이터 시간에 따른 변화 데이터 주식, 기온 변화 등

2. 데이터 정제 방법

기법  설명  활용 예시
집계 데이터 요약 평균, 합계, 개수 등
일반화 데이터 특성 추상화 세부 지역 → 광역시 단위로 변환
정규화 값 범위를 일정 구간으로 맞춤 Min-Max 정규화 등
평활화 잡음 제거하여 트렌드 부드럽게 이동평균, 지수평균 (시계열 분석)

⮕ 평활화는 시계열 데이터에 주로 사용


3. 결측값 처리

  • 존재하지 않는 데이터
  • null/NA로 표시
  • 의미 있는 데이터일 수도 있음
기법  설명
완전 삭제법
결측치가 있는 행 전체 삭제
단순 대치법 고정된 값(평균, 중앙값 등)으로 채워 넣기
평균 대치법 변수의 평균값으로 결측치 대체 (단순 대치법의 한 예)
회귀 대치법 다른 변수들과의 관계로 회귀 모델을 만들어 결측값 예측 후 대체
단순 확률 대치법 KNN 알고리즘을 사용하여 유사한 값으로 대체
다중 대치법
여러 번 결측값을 추정하고 분석하여 최종 결과 결합

4. 이상값 처리 

  • 극단적으로 크거나 작은 값이며, 의미 있는 데이터 일수도 있음(체중 3kg)
  • 이상값은 항상 제거하지 않으며, 의미 있는 경우 유지하기도 함

4.1 이상값 발생 원인

구분 원인 설명 예시
입력 실수
(데이터 오류)
오타, 측정기기 오류 등 사람이 데이터를 잘못 입력하거나 센서 오작동으로 인해 발생 키: 170 → 1700 입력, 온도 센서 오류
측정 오류 장비 또는 환경적 문제 측정 도구의 불완전함 또는 환경의 영향을 받은 측정값 체온 36.5도 → 갑자기 42도
시스템 오류 저장/전송 과정 문제 데이터 저장 시 포맷 문제나 전송 중 손상 로그 저장 중 일부 항목이 중복 또는 손실
실제 특이 현상 진짜로 발생한 극단적 사건 이상값이지만 실제로 의미 있는 사건일 수 있음 주가 급락, 거래 폭증, 대형 사고 발생
표본추출 문제 모집단 대표성 부족 특정 조건에 치우친 데이터 수집으로 발생 고연령층만 조사하여 평균 연령 왜곡
분포의 특성 장꼬리 분포 등 본래 분포가 이상값을 포함하는 형태일 수 있음 소득 분포, 웹사이트 접속 수 등은 비정규 분포

4.2 ESD(Extream Studentized Deviation)

  • 평균 ± 3표준편차 벗어나는 값은 이상값

 

 

4.3 사분위수 범위 (IQR)

  • Q1 - 1.5×IQR 이하, Q3 + 1.5×IQR 이상은 이상값


분석 변수 처리

1. 변수 선택 (Feature Selection)

1.1 변수 선택 기법

기법  설명
전진 선택법 변수 없이 시작하여, 하나씩 추가하며 성능 개선 여부를 확인
후진 제거법 전체 변수로 시작, 중요도가 낮은 변수부터 하나씩 제거
단계별 선택법 전진선택 + 후진제거를 병행하여 최적의 변수 조합 탐색

 

 

1.2 상관계수

  • 변수 간의 선형 관계를 수치로 표현
    • +1: 완전한 양의 상관관계
    • 0: 선형 상관 없음(무상관)
    • -1: 완전한 음의 상관관계
X1 과 X4의 상관계수가 0.92 로 매우 높다면, 두 변수는 거의 같은 정보를 제공
→ 모델 복잡도를 줄이기 위해 둘 중 하나 제거를 고려

X1, X4가 높은 상관계수를 가지므로, 둘 중 하나의 변수 제거


2. 차원 축소 (Dimension Reduction)

2.1 차원의 저주

항목 설명
개념 데이터의 차원이 증가할수록 모델 복잡도 증가, 학습이 어려워지는 현상
문제점 계산량 증가, 과적합 위험, 거리기반 알고리즘의 성능 저하
해결 방안 불필요한 변수 제거 또는 변수 압축 (PCA, SVD 등 활용)

✅ 2차원에서는 가까운 점들이 3차원 이상에선 멀어질 수 있음 → KNN, 군집 분석 등에 악영향

 

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

항목 설명
목적 상관관계 높은 변수들을 선형 결합하여 소수의 주성분으로 축소
주성분 개념 새로운 축(주성분)을 생성 → 원 데이터의 분산을 최대한 보존
주성분 결정법 분산률 기준: 첫 번째 주성분이 가장 많은 분산을 설명
주성분 선택 누적 설명력 기준으로 70~90% 정도 확보되는 개수 선택
시각화 도구 스크리 플롯 (Scree Plot): 설명력 기울기 급격히 꺾이는 지점(엘보우 포인트)까지 선택

✅ 변수 중, 상위 3개 주성분으로도 전체 분산의 85% 설명 → 차원 축소 성공

 

2.3 특이값 분해(SVD, Singular Value Decomposition )

항목 설명
정의 임의의 m X n 행렬 A를 세 행렬의 곱으로 분해
수식  A = UΣVᵀ
  • U: 좌측 직교 행렬(mxm)
  • Σ: 대각 행렬(특이값들)
  • Vᵀ: 전치 우측 직교 행렬 (n×n)

 

2.4 다차원 척도법 (MDS: Multidimensional Scaling)

항목 설명
목적 데이터 간 거리/유사도 정보를 보존하여 2D 또는 3D 평면에 시각화
입력 거리행렬 또는 유사도 행렬 (예: 유클리디안 거리, 상관계수 기반 거리 등)
출력 각 데이터 포인트의 저차원 좌표 (시각적으로 군집, 패턴 확인 가능)
활용 군집의 시각화, 고차원 거리 기반 관계의 이해 등
종류 고전적 MDS(Classical), 비선형 MDS(Non-metric) 등
수학적 기법 거리행렬 → 이차행렬 변환 → 고유값 분해
✅ 예시: 고객 간 거리 기반 유사도 행렬을 시각화 → 유사 고객 그룹 식별 가능

 

 

2.5 t-SNE (t-분포 기반 이웃 임베딩)

항목 설명
목적 고차원 공간에서 국소 이웃관계(Local structure) 를 저차원에서도 유지
특징 비선형 차원 축소, 시각화에 최적화, 군집 구조를 잘 보여줌
방식 고차원에서 유사한 데이터 쌍은 저차원에서도 가깝게 위치시킴
핵심 아이디어 고차원 확률 분포와 저차원 분포의 차이를 Kullback-Leibler 발산으로 최소화
사용 사례 이미지 분류, 자연어 임베딩 시 시각화, 군집 시각화
한계 연산량 많음, 랜덤성 영향 → 재현성 낮음, 절대 거리는 의미 없음

예:

  • Word2Vec 임베딩 벡터를 2차원으로 시각화할 때
  • 이미지 feature vector를 시각화할 때

 

✅ t-SNE vs PCA vs MDS 간단 비교

기법 목적 보존하는 특성 특징
PCA 분산 보존 전역적 구조 빠름, 선형
MDS 거리 보존 전역/부분 구조 거리 해석 가능
t-SNE 국소 구조 보존 이웃 관계 시각화에 강함, 비선형

3. 파생변수

  • 원래 존재하는 데이터를 조합하거나 수학적논
유형  설명  예시
요약변수 수치 요약 기반 변수
재활용성이 높음
한 달간 매출 총합
파생변수 의미를 부여한 변수
논리적 타당성 필요
고객 등급 (구매 금액 기준 등급화)

 

3.1 파생변수 생성 방법

방법 설명  예시
산술 연산 수치 간 더하기, 빼기, 나누기, 곱하기 총매출 = 구매수량 × 단가
범주 결합 유사 범주를 하나로 묶기 '서울', '부산' → '대도시'
날짜/시간 파생 날짜에서 요일, 월, 분기 등 추출 가입일 → 가입요일, 가입 후 경과일
조건 기반 이진화 기준값 기준으로 0/1 처리 나이 > 60 → 고령자 여부
랭킹/순위화 수치 데이터를 등수로 변환 구매금액 상위 10% → 등급 1
로그/루트 변환 비선형 관계를 선형화 로그(수입)
그룹 집계 기반 집단별 요약 통계 활용 고객별 평균 구매, 지역별 평균 배송시간
텍스트 파생 텍스트에서 키워드, 길이 등 추출 리뷰 길이, 특정 단어 포함 여부
상호작용 변수 두 변수의 곱이나 결합 나이 × 지출액
이벤트 파생 특정 이벤트 기준 시점 생성 최근 구매일로부터 경과일

4. 변수 변환

4.1 수치형 vs 범주형 자료

  • 수치형: 키, 몸무게, 수입
  • 범주형: 성별, 혈액형

 

4.2 수치형 변수 변환

기법  설명  수식
Z-score 정규화 평균 0, 표준편차 1로 조정 𝑍 = (𝑋−μ)/σ
최소-최대 정규화 0~1 구간으로 변환 (X − min(X)) / (max(x) − min(X))
로그 변환 분포를 완화 log(X)

 

4.3 범주형 변수 변환

기법  설명  예시
레이블 인코딩 범주 → 정수로 변환 오렌지 → 0, 바나나 → 1
원-핫 인코딩 각 범주마다 컬럼 생성 후 1/0 표시 오렌지 → [1,0,0], 바나나   [0,1,0]
타깃 인코딩 범주를 목표 변수 평균으로 대체 포도 → 평균 구매율 0.8

 


5. 데이터 전처리

  • 불균형 데이터
    • 전체 데이터 중 한 클래스(예: 긍정/부정, 정상/이상)가 압도적으로 적거나 많은 상황
    • 예: 사기 거래(1%) vs 정상 거래(99%)
  • 이렇게 불균형할 경우, 모델은 다수 클래스에만 집중하게 되어 성능 왜곡이 발생할 수 있음
    • 정확도는 높지만 실제 분류는 잘 못함

5.1 불균형 데이터 처리

  • 가중치 균형 적용(Weighted Balance)
    • 학습 시 소수 클래스에 더 큰 가중치를 부여하여 중요도를 높임
    • 장점: 데이터 손실 없음. 원본 유지
    • 단점: 하이퍼파라미터 튜닝 필요, 모델마다 성능 차이 있음
    • 예: `class_weight='balanced'` (Scikit-learn)
  • 언더샘플링(Under Sampling)
    • 다수 클래스의 일부만 선택하여 소수 클래스와 수를 맞춤
    • 장점: 학습 속도 빠름, 균형 잡힌 데이터셋 구성 가능
    • 단점: 정보 손실 위험, 중요 샘플 누락 가능
    • 예시: Random UnderSampler(RUS, 랜덤 추출), 계통 추출법, 집락 추출법, 충화 추출법
  • 오버샘플링(Over Sampling)
    • 소수 클래스 데이터를 복제 또는 생성하여 데이터 수를 늘림
    • 장점: 정보 손실 없음, 소수 클래스 반영 향상
    • 단점: 과적합(overfitting) 위험, 생성 데이터 신뢰도 낮을 수 있음
    • 예: SMOTE, ADASYN, Random OverSampler(ROS)

 

✅ 클래스가 불균형한 훈련 데이터를 그대로 사용한다면?

  • 정확도(Accuracy)는 낮아지고 작은 클래스의 재현율(Recall)은 낮아짐

 

5.2 전처리 기법

단계 설명 세부 기법
정제 (Cleaning) 오류, 중복, 결측값 처리 결측값 대치(평균, 회귀), 이상값 제거
통합 (Integration) 다양한 출처의 데이터를 하나로 통합 중복 제거, 스키마 통합
축소 (Reduction) 데이터 양 줄이기 (정보 손실 최소화) 속성 선택, 차원 축소(PCA), 데이터 압축
변환 (Transformation) 일관된 형식으로 변환, 패턴 인식 향상 정규화, 표준화, 이산화, 집계, 파생변수 생성
728x90
반응형
LIST