10 분 소요

본 데이터 사이언스는 Data Mining: Concepts and Techniques (4th edition) 을 기준해 학습한 것으로, 이번 블로그에서는 Chapter 1,2를 다룬다.

Chapter 1. Introduction

Data Science

Data Science란 무엇일까?

실제 데이터에서 의미 있는 패턴과 지식을 추출하는 과정 (KDD : Knowledge Discovery from Data)

  • pattern, association, knowledge 를 발견

  • 전체 과정

    • Data Sources, Preparation
    • Data Mining
    • Pattern/Knowledge Evaluation

Chapter 2. Data, measurements, and Data Preprocessing

1. Data Types and Statics

Data set = A set of data objects

  • 여러 개의 데이터 객체

Data Object : 각 데이터 하나

Data Attribute : 데이터 객체의 특성

  • attribute = dimension = feature = variable

Data Type

1. Nominal Attribute

  • 이름(name)만 의미를 가지는 범주형 데이터
  • categorical attribute 라고도 부름
  • 순서, 크기 비교가 없다. 단순 category
    • Ex) Hair color : black, brown, blond, red …
  • 데이터 분석에서는 문자열 대신 숫자로 encoding을 한다.
    • 하지만 이러한 수학적 연산은 의미가 없다. (카테고리형이기 때문)

2. Binary Attribute

  • 두 가지 상태만 가지는 Nominal Attribute
  • Boolean attribute 라고도 부름.
  • 두 가지의 종류가 있다.
    • Symmetric : 두 값이 동등한 중요도
    • Asymmetric : 두 값의 중요도가 다르다.

3. Ordinal Attribute

  • 값들 사이에 의미 있는 순서가 존재
  • 하지만 간격은 크게 의미가 없다.

4. Numeric Attribute

  • 숫자로 표현되는 정량적 데이터
    • 측정과 계산이 가능하다.
    • 정수 또는 실수의 타입 형탱
  • 두 가지의 종류가 존재
    • Interval-Scaled Numeric Attribute : 값 사이의 차이가 의미 있어서 Difference 계산이 가능하지만 배수 비교는 할 수 없다.
    • Ratio-Scaled Numeric Attribute : true zero가 존재하여 배수 비교가 가능하다.

따라서 데이터의 성질에 따라 적절한 타입을 결정하는 것은 중요한 작업이다.

Data Statics

데이터의 기본 통계 분석으로 데이터의 특성을 파악할 수 있다.

  • 목적 : 데이터 구조 파악, missing value 처리, noise 제거, outlier detection, inconsistency 수정

Central tendency : 데이터의 중심 위치가 어디인가?

대표적인 방법 : Mean, Median, Mode

  • 1. Mean (평균) : 전체 값 합 / 데이터 개수
\[\bar{x}=\frac{x_1+x_2+...+x_N}{N}\]
  • Weighted Mean : 데이터 마다 가중치 존재
\[\bar{x}=\frac{\sum (w_i x_i)}{\sum w_i}\]

Mean은 Outlier에 매우 취약

2. Median : 정렬했을 때 가운데 값

  • skewed distribution을 띄는 데이터에서는 median 값이 더 좋다.
    • outlier의 영향이 더 적다.
  • 데이터의 수가 커지면 계산하기에 비효율적이다.

3. Mode : 가장 자주 등장하는 값

  • Multimodal : 여러 개의 mode가 존재

Dispersion : 데이터가 얼마나 퍼져 있는가?

대표적인 방법 : Range, Quartiles, Percentiles, Interquartile Range

1. Range : max - min

2. Quartiles (4분위) : 데이터를 4개 구간으로 나눔

Q1 = 25%
Q2 = 50% (median)
Q3 = 75%

3. InterQuartile Range (IQR) \(IQR = Q3 - Q1\) 중간의 50%의 데이터 범위

4. Five-number summary

  • minimum, Q1, Median, Q3, Maximum으로 5개로 나눔
  • Boxplot : 5개의 값으로 데이터 분포 시각화

5. Variance : 분산

  • 평균 기준으로 데이터가 얼마나 퍼져있는가?
\[\sigma^2=\frac{1}{N}\sum (x_i-\bar{x})^2\]

6. Standard Deviation : 표준편차

  • 분산의 제곱근
    • 평균에서 평균적으로 얼마나 떨어져 있는가?
\[σ = √variance\]

Covariance (공분산)

의미 : 두 변수 A,B가 같이 움직이는 정도 \(Cov(A,B)=\frac{\sum (a_i-\bar A)(b_i-\bar B)}{n}\) 결과 해석

  • Cov(A, B) > 0 : 값이 같은 방향으로 움직임.
  • Cov(A, B) < 0 : 값이 반대 방향으로 움직임.
    • A가 증가하면, B는 감소
  • Cov(A, B) = 0 : 두 변수는 서로 독립적

공분산은 Scale을 고려하지는 않기에 단위를 잘 반영해야 한다.

Correlation (상관계수)

Covariance에서 Scale의 문제를 해결한 것

  • 공분산의 표준화한 값: 공분산 / (표준편차 * 표준편차)
    • Pearson correlation coeficient (PCC) 라고 부르기도 한다.
\[r=\frac{Cov(A,B)}{\sigma_A\sigma_B}\]

값 범위 : \(-1 \le r \le 1\)

r 값 의미
r = 1 완벽한 양의 상관
r = 0 관계 없음
r = -1 완벽한 음의 상관

Nominal Data Correlation (Chi-Square)

사용 목적 : 범주형 변수 관계 측정

  • 예시 : gender, preferred reading
  • 아래 교차표 (contingency table)
  male female
fiction 250 200
non-fiction 50 1000

아이디어 : 실제 값 vs 예상 값 비교

  • observed frequency : 실제 데이터
  • expected frequency : 두 변수가 독립이라면
\[\chi^2=\sum \frac{(observed-expected)^2}{expected}\]

2. Similarity & Distance Measures

Similarity & Distance가 왜 중요한가?

정답 : 데이터마이닝 알고리즘 대부분이 거리 기반이다.

  • 예시 : Clustering, Outlier Detection, Classification

Dissimilarity Matrix : 데이터끼리의 거리

  • similarity는 반대로 같은 비율을 말한다.

특징

  1. 대칭 d(i,j) = d(j,i)
  2. 자기 자신 거리 d(i,i) = 0

Nominal Attribute Proximity

Nominal Attribute : 순서가 없는 category 데이터

  • 숫자에 대한 계산은 의미가 없음
  • 따라서 같은 값이 몇 개냐를 기준으로 거리 계산을 진행
\[d(i,j)=\frac{p-m}{p}\]

공식의 의미 : 전체 attribute 중 얼마나 다른가

Binary Attribute Proximity

Binary Attribute : 0 또는 1의 두 가지만 가지는 데이터

  • 타입의 종류에 따라 Dissimilarity가 다르다.
  • 아래의 비교표 기준 설명
  j=1 j=0
i=1 q r
i=0 s t

1. Symmetric Binary Attributes

  • 0과 1이 동일하게 중요한 경우
    • 예시 ) male / female
\[d(i,j)=\frac{r+s}{q+r+s+t}\]
  • 의미 : 다른 값 / 전체

2. Assymmetric Binary Attributes

  • 0과 1이 중요도가 다르다.
    • 예시 ) 질병의 유무
  • Distance 공식
\[d(i,j)=\frac{r+s}{q+r+s}\]
  • similarity (Jaccard Coefficient)
\[sim(i,j)=\frac{q}{q+r+s}\]

Jaccard 직관

  • 공통으로 존재하는 것 / 둘 중 하나라도 존재 하는 것

Dissimilarity Numeric Data

  • 숫자형 데이터끼리는 얼마나 떨어져 있는가 계산

Minkowski Distance

  • 여러 가지 공식을 하나로 묶어놓은 큰 틀
    • Euclidean Distance / Manhattan Distance 를 값에 따라 가능
    • 즉 거리의 일반형을 표현, 값에 따라 특수한 경우를 포함

Euclidean Distance

  • 대각선으로 바로 가는 거리
  • 가장 익숙한 직선거리

Manhattan Distance

  • 직선으로 꺾여서 가는 거리
  • 도시 블록 거리 : 도로가 격자형일 때, 대각선으로 못가고 길 따라서 꺾어 가야 하기 때문

거리 measure Properties

  • Non-negativity : 거리니까 음수일 수 없다.
  • Symmetry : A에서 B까지의 거리와 B에서 A까지의 거리는 같다
  • Triangle inequality : 직접 가는 길이 돌아가는 길보다 길 수는 없다.

Cosine Similarity

  • 문서 벡터 : 차원이 매우 크고 대부분 0 이고 문서 길이가 다른 경우
    • 크기 보다는 방향이 더 중요

핵심 아이디어 : 두 벡터 사이의 각도 (angle)를 보는 것 \(sim(x,y)=\frac{x \cdot y}{\|x\|\|y\|}\)

두 벡터가 같은 방향이면 유사하다.

길이 자체보다 어떤 단어 패턴 방향이 비슷한지를 확인

KL Divergence

  • 벡터가 아닌 확률분포끼리 얼마나 다른가를 보는 개념
  • 진짜 분포 p를, 모델 q로 대신 설명할 때 얼마나 손해를 보느냐
    • p(x) : 진짜 데이터 분포
    • q(x) : 우리가 학습한 모델 분포
\[D_{KL}(p\|q)=\sum_x p(x)\ln\frac{p(x)}{q(x)}\]
  • 해석

    • KL = 0 : 두 분포가 완전히 같다.
    • KL이 클 때 : 모델이 진짜 분포를 잘 못 따라간다.
  • 특징

    • Non-negativity
    \[D_{KL}(P\|Q)\ge 0\]
    • P = Q 이면 0
    • Assymmetry
    \[D_{KL}(P\|Q)\neq D_{KL}(Q\|P)\]

    거리라면 대칭이 맞지만,

    KL Divergence는 엄밀한 distance가 아니기 때문에 비대칭적


3. Data Preprocessing

Data Preprocessing : 데이터 전처리

  • 데이터에서 지식을 찾기 전에 반드시 해야 하는 단계

데이터 품질이 좋아야 분석 결과도 좋다.

  • 현실 데이터 특징 : 값이 비어 있음, 오타 있음, 형식이 제각각, 여러 파일에 흩어져 있음
  • 3가지 핵심 단계
    • Data cleaning : 오류, noise, inconsistency 를 제거하는 단계
    • Data integration : 여러 출처의 데이터를 합치는 단계
    • Data transformation : 데이터를 분석하기 좋은 형태로 바꾸는 단계
  • 전체 흐름
원천 데이터 -> 전처리 -> 데이터 마이닝 -> 패턴 평가 -> 지식

Data Quality

좋은 데이터란 무엇인가?

  • 데이터의 품질을 평가하는 기준
    • Accuracy (정확성) : 데이터 값이 실제 세계를 정확하게 반영하는가
    • Completeness (완전성) : 데이터가 빠짐없이 채워져 있는가
    • Consistency (일관성) : 데이터끼리 서로 모순되지 않는가
    • Timeliness (적시성, 최신성) : 데이터가 현재 목적에 맞게 충분히 최신인가
  • 데이터 품질은 절대적인 것이 아니라, 사용 목적에 따라 달라진다.
    • 같은 데이터라도 목적에 따라 좋은 데이터일수도 있고 아닐 수도 있다.

Data Cleaning

왜 Data Cleaning이 필요한가?

  • 현실 데이터는 보통 incomplete, noisy, inconsistent 의 특성을 띈다.
  • Missing Value (결측치) : 어떤 객체의 일부 속성이 비어있는 상태
    • 분석 결과의 왜곡이 가능함.
  • Nosiy Data : 측정 오차나 랜덤한 변동 때문에 생기는 이상한 값
  • Inconsistent Data : 데이터 사이에 모순이 있는 경우

Data Cleaning

  • 단순히 데이터를 지우는 것이 아니다.
  • 데이터를 버리는 것보다, 쓸 수 있게 만드는 것

그러면 실제로 어떻게 처리하는가?

Addressing Missing Value

결측치는 어떻게 처리할 것인가?

가장 기본적인 방법 3가지

  • Ignore the tuple (그냥 삭제하기)
    • 결측치 이는 행을 통째로 제거하기
    • 장점 : 구현이 쉽고, 데이터가 깨끗해진다.
    • 단점 : 데이터가 많이 날라가서 정보 손실의 위험이 있다.
  • Fill manually (수작업 입력)
    • 사람이 직접 채우는 방법
    • 장점 : 정확함
    • 단점 : 시간이 많이 들어서 대용량에서는 거의 불가능
  • Global constant
    • 장점 : 빠르고, 모델 학습도 가능.
    • 단점 : 의미 없는 값이 들어가 모델이 잘못 학습할 수 있음.

조금 더 똑똑하게 채우는 방법

1. Central tendency

  • 평균 또는 중앙값으로 채움
    • 정규분포의 양상을 보일 때 : 평균값 대체
    • 치우친 분포를 띌 때 (Outlier 존재) : 중앙값 대체

2. Class-based filling

  • 같은 class끼리의 평균/중앙값 사용
  • 핵심 가정 : 같은 class끼리는 비슷한 값을 가진다.
  • 장점 : 더 현실적이고, grouping을 반영

3. Most probable value

  • 머신러닝으로 예측해서 채움
  • 다른 변수들을 이용해서 missing 값을 예측
  • 장점 : 관계를 유지할 수 있다.
    • feature간 관계를 깨지 않아야 한다.

Addressing Noisy Data

noise(잡음)을 줄이는 방법

  • 핵심 개념 : Binning
    • 데이터를 구간(bin)으로 나누고 그 안에서 값을 평균화하는 방법
  • 3가지의 smoothing 방식
    • Bin mean : 각 bin을 평균으로 통일
    • Bin median : 각 bin을 중간값으로 통일
    • Bin boundaries : 가장 가까운 경계값으로 변경

Noise 자체는 “튀는 값”

  • 비슷한 값끼리 묶어서 평균화 -> noise를 줄일 수 있다.

Binning보다 더 고급적인 방법

1. Regression Smoothing

  • 데이터를 함수에 맞추는 것 : 데이터를 가장 잘 설명하는 함수로 맞춘다.
  • 효과
    • Noise 제거
    • 패턴 유지

2. Outlier anlaysis

  • 이상치 제거
    • 데이터들을 클러스터링
    • 군집 밖에 있는 값은 outlier : outlier를 제거하면 더 부드러워진다.

Data Integration

  • 여러 데이터 소스를 하나로 합치는 과정
    • 데이터의 중복을 제거가 가능
    • 불일치 문제 해결 가능
    • 데이터 마이닝의 성능을 향상
  • Semantic, Structural 이질성으로 어려움

Entity Identification

  • 서로 다른 데이터에서 같은 실제 객체를 찾는 것
    • Schema integration : 컬럼 이름 맞추기
    • Object matching : 실제 데이터 비교
  • Metadata 활용 : 데이터에 대한 정보
    • 이를 통해 이 컬럼이 무엇을 의미하는지를 알 수 있다.

Redundancy and Correlation Analysis

  • 불피요한 데이터 제거
  • Redundancy (중복) : 어떤 변수는 다른 변수로부터 계산이 가능
  • 해결 방법
    • Correlation 분석 : 변수 간의 관계 측정
    • 두 변수가 강하게 연결되어 있으면 하나 제거 가능
    • Numeric -> Pearson Correlation, Nominal -> Chi-square

Data Transformation

  • 데이터를 모델이 잘 먹을 수 있는 형태로 바꾸는 과정
  • 필요한 이유
    • 알고리즘 성능 향상
    • 패턴이 더 잘 보인다.

Normalization

Min-Max Normalization

  • 값의 범위를 통일 \(x' = \frac{x - x_{min}}{x_{max} - x_{min}}\)

    • 모든 값 : 0 ~ 1 사이
  • 단점 :

    • Min, Max 값을 모르면 사용할 수가 없다.
    • 비율 기반 스케일링으로 Outlier에 매우 민감

Z-Score (Zero-mean) Normalization

  • 평균 기준으로 데이터를 정규화
    • 분포 중심 기준 정규화
\[z = \frac{x - \mu}{\sigma}\]
  • 결과 :
    • 평균 = 0 / 표준편차 = 1
  • outlier를 모르고, min/max를 모를 때 사용하기에 좋다.

Discretization

  • 연속값을 구간값으로 변환한다.
  • 숫자를 의미있는 그룹으로 변환한다.
    • 모델 단수화, 해석이 쉽고, rule-based 모델에 유리하다.
    • 세분화 -> 추상화
  • Binning 방식 :
    • Equal-width
    • Bin 대표값 사용 : mean, median

Sampling

  • 데이터를 줄인다.
  • 데이터가 너무 많으면 느리고, 비용이 크다
  • 따라서 전체를 대신하여 대표 샘플을 사용
    • Without replacement : 뽑으면 다시 안 넣음 (일반적인 샘플링)
    • With replacement : 뽑고 다시 넣음 (같은 데이터 여러 번 가능)
    • Stratified sampling : 데이터를 그룹(starta)으로 나누고 각 그룹에서 샘플링

4. Dimensionality Reduction

Dimensionality Reduction = 차원 (Feature 수)를 줄이는 것

High-Dimension Data는 왜 문제일까?

  • 불필요한 feature가 많다.
    • 중복/의미 없는 변수가 존재
  • Overfitting 위험
    • feature가 많을수록 모델이 데이터를 외워버림
  • 계산 비용 증가
  • Curse of Dimensionality = 차원의 저주
    • 차원이 커질수록 데이터가 희소해지고, 이는 거리 개념이 무너진다.
  • 해석이 너무 어렵다.

Attribute Subset Selection

Motivation : 모든 feature가 중요한 게 아니다.

  • Redundant (중복) : 서로 강하게 상관된 변수
  • Irrelevant (무관) : 예측에 도움이 안되는 변수

목표

  • 최소한의 feature로 최대 성능
  • 가능한 경우의 수를 전부 탐색하기가 불가능하다. : Greedy 접근
    • 기준 : 한 번에 하나씩 좋은 feature 선택

Stepwise Forward Selection

  • 비어있는 상태에서 시작하여 하나씩 추가
S = {}
# 가장 좋은 feature 하나 추가
# 반복
  • 단계
    • 모든 feature를 하나씩 넣어보고 성능을 비교
    • 기존 S에 하나씩 추가해서 테스트
    • 성능이 더 이상 안 오를 때까지 반복
  • 수식 \(성능 증가량 = f(S ∪ ai) - f(S)\)

    • 가장 증가량이 큰 feature를 선택
    • 하나씩 추가하면서 점점 모델을 키운다.

Stepwise Backward Selection

  • 모든 feature에서 시작하여 하나씩 제거
S = {모든 feature}
# 하나씩 제거
  • 단계
    • 하나씩 제거하고 이를 반복한다.
    • 더 제거하면 성능이 떨어질 때까지 반복
  • 수식 \(성능 변화 = f(S - ai) - f(S)\)

    • 성능이 안 떨어지거나 오히려 좋아지면 제거 :
      • 제거해서 성능이 좋아진다는 의미 = 사실상 유용하지 않은 피처다.
    • 쓸모없는 feature를 하나씩 제거

Forward + Backward

  • Forward의 문제점 : 초기에 잘못 선택하면 지울 수가 없다.
  • Backward의 문제점 : 초기에 중요한 것을 제거할 수도 있다.

  • 핵심 : 추가 + 제거를 동시에 한다.

Principal Component Analysis (PCA)

PCA란?

  • 고차원 데이터(d)를 저차원(k)으로 줄이는 방법 (d > k)
  • 정보를 최대한 유지하면서 차원을 축소
  • 핵심 아이디어 : 좋은 축 (axis)를 찾는다.
    • 좋은 축 : 데이터를 가장 잘 표현하는 방법

좋은 축이란?

  • 데이터가 가장 넓게 퍼진 방향

  • 즉, variance가 최대인 방향

    • 퍼져있을수록 정보가 많다.
    \[\max_{|w|=1} ; Var(w^T x)\]
    • 의미 : w 방향으로 projection을 했을 때, variance가 최대가 된다.

Mean Centering : x → (x - 평균)

  • 먼저 진행되는 단계.

  • 절대 위치를 제거하면서 분산을 확인할 수 있다. \(Var(w^T x) = w^T \Sigma w\)

Covariance Matrix Σ

  • Σ = feature간 관계를 나타낸다.
    • Var -> 퍼진 정도
    • Cov -> 관계 (같이 움직임)

Lagrange Multiplier

\[\max_{|w|=1} w^T \Sigma w\]
  • Lagrange Multiplier 사용 \(\Sigma w = \lambda w\)

  • 핵심 결론

    • Principal Component = Covariance matrix 의 eigenvector
    • eigenvalue 의미
      • λ = 그 축의 중요도 (분산 크기)
      • 큰 λ : 중요한 축
  • 최종 선택 : top-k eigenvectors 선택

    • eigenvector = 방향
    • eigenvalue = 중요도