2025. 3. 20. 22:53ㆍ데이터 분석/데이터 사이언스
5. 고급 데이터 분석 기법 (Advanced Data Analysis Techniques)
고급 데이터 분석 기법은 데이터의 패턴을 깊이 있게 이해하고, 분석의 정확성을 높이며, 머신러닝 모델을 개선하는 데 도움을 주는 다양한 기법을 포함합니다.
이번 섹션에서는 다변량 분석, 이상치 탐지, 가설 검정, 피처 엔지니어링 등의 고급 분석 기법을 다룹니다.
5.1 다변량 분석 (Multivariate Analysis)
다변량 분석(Multivariate Analysis)은 여러 개의 변수를 동시에 분석하여 변수 간의 관계와 패턴을 탐색하는 기법입니다.
1) 주성분 분석 (PCA, Principal Component Analysis)
주성분 분석(PCA)은 고차원 데이터를 저차원으로 변환하여 주요 특징을 유지하면서 차원을 축소하는 기법입니다.
- 고차원 데이터를 시각화할 때 유용
- 머신러닝 모델의 연산량을 줄이고 과적합(overfitting) 방지
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
# 예제 데이터 생성
np.random.seed(42)
data = np.random.rand(100, 5) # 5차원 데이터
# PCA 적용 (2차원으로 축소)
pca = PCA(n_components=2)
pca_result = pca.fit_transform(data)
# 시각화
plt.scatter(pca_result[:, 0], pca_result[:, 1])
plt.xlabel("Principal Component 1")
plt.ylabel("Principal Component 2")
plt.title("PCA 결과")
plt.show()
2) 클러스터링 (Clustering)
클러스터링은 비슷한 특성을 가진 데이터들을 그룹으로 묶는 비지도 학습 기법입니다.
- K-Means 클러스터링: 데이터를 K개의 군집으로 나눔
- DBSCAN: 밀도 기반 클러스터링 (이상치 탐지에도 유용)
from sklearn.cluster import KMeans
# K-Means 클러스터링 (3개 군집)
kmeans = KMeans(n_clusters=3, random_state=42)
clusters = kmeans.fit_predict(data)
# 결과 시각화
plt.scatter(pca_result[:, 0], pca_result[:, 1], c=clusters, cmap="viridis")
plt.title("K-Means 클러스터링 결과")
plt.show()
5.2 이상치 탐지 및 처리 기법 (Outlier Detection & Handling)
이상치(Outlier)는 데이터의 일반적인 패턴에서 벗어난 값을 의미하며, 분석 결과에 영향을 미칠 수 있습니다.
1) 이상치 탐지 기법
✅ IQR (사분위 범위, Interquartile Range) 활용
이상치를 사분위수를 이용해 탐지하는 방법입니다.
import pandas as pd
df = pd.DataFrame({"value": np.random.normal(50, 10, 100)}) # 정규분포 데이터 생성
Q1 = df["value"].quantile(0.25)
Q3 = df["value"].quantile(0.75)
IQR = Q3 - Q1
# 이상치 탐지
lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR
outliers = df[(df["value"] < lower_bound) | (df["value"] > upper_bound)]
print("이상치 개수:", len(outliers))
✅ 머신러닝 기반 이상치 탐지 (Isolation Forest)
Isolation Forest는 이상치 탐지를 위한 머신러닝 알고리즘 중 하나입니다.
from sklearn.ensemble import IsolationForest
iso_forest = IsolationForest(contamination=0.05, random_state=42)
df["outlier"] = iso_forest.fit_predict(df[["value"]])
# 이상치 시각화
sns.boxplot(x=df["value"], y=df["outlier"])
plt.title("Isolation Forest를 활용한 이상치 탐지")
plt.show()
✅ LOF (Local Outlier Factor) 기법
데이터 포인트가 주변 데이터와 얼마나 다른지를 측정하여 이상치를 탐지하는 기법입니다.
5.3 가설 검정 및 통계적 추론 (Hypothesis Testing & Statistical Inference)
가설 검정(Hypothesis Testing)은 표본 데이터를 사용하여 모집단의 특성을 검정하는 통계적 기법입니다.
1) 가설 검정의 개념
- 귀무가설(Null Hypothesis, H₀): "두 집단 간 차이가 없다"는 가설
- 대립가설(Alternative Hypothesis, H₁): "두 집단 간 차이가 있다"는 가설
- p-value (유의확률): 귀무가설을 기각할 수 있는지를 판단하는 기준 (p-value < 0.05일 경우 유의미한 차이가 있음)
2) t-검정 (T-test)
t-검정은 두 집단의 평균 차이를 검정하는 방법입니다.
from scipy.stats import ttest_ind
group1 = np.random.normal(50, 10, 30)
group2 = np.random.normal(55, 10, 30)
t_stat, p_value = ttest_ind(group1, group2)
print(f"t-검정 결과: t-통계량={t_stat:.3f}, p-값={p_value:.3f}")
✅ p-value < 0.05 → 두 그룹의 평균 차이가 통계적으로 유의미함
3) 카이제곱 검정 (Chi-Square Test)
카이제곱 검정은 범주형 데이터 간의 독립성을 검정하는 방법입니다.
from scipy.stats import chi2_contingency
data = np.array([[30, 10], [20, 40]]) # 카이제곱 검정용 데이터
chi2, p, _, _ = chi2_contingency(data)
print(f"카이제곱 검정 결과: 카이제곱 통계량={chi2:.3f}, p-값={p:.3f}")
✅ p-value < 0.05 → 변수 간의 관계가 통계적으로 유의미함
5.4 피처 엔지니어링 (Feature Engineering)
피처 엔지니어링(Feature Engineering)은 데이터에서 중요한 특징(피처)을 추출하고, 변환하여 모델 성능을 향상시키는 과정입니다.
1) 피처 스케일링 (Feature Scaling)
✅ 정규화 (Min-Max Scaling): 데이터 값을 0~1 범위로 변환
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
df_scaled = scaler.fit_transform(df[["value"]])
✅ 표준화 (Standardization): 평균을 0, 표준편차를 1로 변환
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
df_standardized = scaler.fit_transform(df[["value"]])
2) 원-핫 인코딩 (One-Hot Encoding)
범주형 데이터를 숫자로 변환하는 방법입니다.
import pandas as pd
from sklearn.preprocessing import OneHotEncoder
df = pd.DataFrame({"category": ["A", "B", "C", "A", "B"]})
encoder = OneHotEncoder(sparse=False)
encoded = encoder.fit_transform(df[["category"]])
정리
고급 데이터 분석 기법은 데이터의 특성을 더욱 깊이 있게 분석하고, 모델의 성능을 향상시키는 데 필수적인 기법입니다.
✅ 다변량 분석 (PCA, 클러스터링) → 데이터 차원 축소 및 군집 분석
✅ 이상치 탐지 → IQR, Isolation Forest, LOF 기법 활용
✅ 가설 검정 → t-검정, 카이제곱 검정을 활용한 통계적 추론
✅ 피처 엔지니어링 → 데이터 변환, 인코딩, 스케일링 활용