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 로 매우 높다면, 두 변수는 거의 같은 정보를 제공
→ 모델 복잡도를 줄이기 위해 둘 중 하나 제거를 고려

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