Posts List

[Data Mining] 1. Introduction & Probabilistic Review

지금까지 AI기본라이브러리, 알고리즘, 인공지능 총 3개 수업을 빠르게 배웠는데.. 학생들이 1학기동안 배우는 수업을 1~2주에 배우다보니 한번에 몰아서 복습하는데 한계가 왔다. 이제부턴 그때그때 블로그에 정리를 하면서 강의를 듣고 집에 가서 한번더 깔끔하게 정리하는 식으로 매일 복습을 해야겠다. 이번 수업은 데이터 마이닝이다. 본 Lecture Note는 POSTECH 산업공학과 전치혁 교수님 강의를 리뷰한 것이다.

Definition of Data Mining

"pattern recognition technologies as well as statistical and mathematical - Gartner group"

"Knowledge discovery process - META group"

Gartner나 META group에서 위와 같이 데이터마이닝을 표현하는데, 사실 혼자 공부하면서도 가장 헷갈렸던 것은 데이터마이닝의 범주였다. 때론 머신러닝의 영역을 침범하면서도 때론 구분되어서 불린다고 생각했는데, 위 그림이 지금까지 본 표현법중에 가장 이해하기 쉬운 것 같다. 

역시나 평소에 생각했던 개념이 일부 맞긴했다. 그림에서 보듯 데이터마이닝은 머신러닝과 최적화 문제 영역을 침범한다. 좀 더 명확히 구분지으면,

  • 머신러닝은 사람이 지식을 학습하는 것을 모방한다. 데이터(경험)의 반복학습을 통해 모델을 완성시키며, 특히 이미지나 자연어 처리에 특화되어 사용된다.
  • 반면 데이터마이닝은 수치데이터에 특화되어 사용되며, 수치데이터에 통계기술 등을 적용시켜 데이터의 규칙을 찾아내거나 예측하는 기술을 뜻한다. 

What to do with Data Mining

실제로 데이터마이닝으로 할 수 있는 일은 대표적으로 아래와 같다. 머신러닝으로 할 수 있는 일과 100% 겹치는데, 앞서 언급했듯, 머신러닝은 데이터의 반복학습(사람의 학습 원리를 흉내)특징을 가진다면 데이터마이닝은 보다 수치적으로 접근함으로써 머신러닝에 비해 설명력이 높다. 실제로 데이터마이닝의 70% 이상은 통계와 선형대수학이라고 보면 된다.

  • Prediction(예측) : multiple variable로부터 양이나 질을 예측하는 것 
  • Classification(분류) : data를 분리시킬 수 있는 rule을 만드는 것
  • Clustering(군집) : 비슷한 패턴을 가진 data를 group으로 묶어주는 것
  • Association Rules(연관 규칙) : 결과에 대한 원인을 추론하는 것

Probabilistic Review

앞서 언급했든 데이터마이닝의 처음과 끝은 통계라 할 수 있다. 그렇기 때문에 자주 나오는 용어나 개념을 꼭 한번 짚고 넘어가야한다. 다만, 말이 기초통계지 깊게 알고자 하면 끝도 없는게 통계의 세계라 100% 이해하기보다는 느낌(?)만 기억하는 수준으로 리뷰하자.

Sampling and Statistics

통계라는 툴은 어떤 일을 할 수 있는지 알아보면서 최소한의 기본개념을 잡아보자.
통계에서는 모집단(population)이 평균(μ), 분산(σ2)을 가지는 정규분포(normal distribution)를 가진다고 가정하고, 분석하고자 하는 표본을 추출한다(=sampling)
(물론 모집단에서 sample을 충분히 채취했다면, 그 sample들은 정규분포를 따르긴 한다. = central limit theorem)
분석가는 표본을 가공하고, 통계를 적용해 모집단의 통계량을 추론(inference)하게 되는데,이 일련의 과정들이 통계학의 일반적인 과정이다.

  • population(모집단) : 평균(μ), 분산(σ2), 표준편차(σ) → normal population(정규분포) 가정
  • sampling technique : 모집단에서 표본(X1, X2 ... Xn)을 추출하는 기술
  • statistics(통계량) : 표본에서 평균( )과 표준편차(s) 등의 추론된 통계량
       
  • inference(추론) : 표본을 processing 하여 모집단의 평균, 분산 등을 추론하는 기술
  • sampling distribution : 표본(sample)에서 도출된 평균, 표준편차의 분포

  • central limit theorem : 모집단이 정규분포가 아니어도 n이 충분히 크면 sampling의 평균은 정규분포를 따른다.


1. Probabilistic Distribution (확률 분포)

이제부터 다양한 확률분포들에 대해서 알아볼텐데, 추후에는 아래 내용을 알고 있다는 가정하에 수업이 진행됨으로 잘 기억하도록 하자.

1) Normal Distribution (정규분포)

  • 히스토그램의 중심이 평균이고 대칭이 되는 모양인 확률분포
  • 표준편차(σ)는 평균과 히스토그램의 기울기 변곡점까지의 거리
  • 히스토그램의 면적 = 확률 (전체 면적(적분값) = 1)
  • 히스토그램의 세로축 = 확률 밀도
  • Standardization(표준화) : 평균이 0이고 표준편차가 1인 표준정규분포(standard normal distribution)로 만드는 것
    기본 확률 분포를 식으로 표현하면 계산하기 너무 어려우나, 표준정규분포로 만들어 두면 Standard Normal Table을 이용하면 더 이상의 계산이 불필요 하다. 표준정규분포로 만들기 위한 식은 아래와 같다. 즉, 기존 모집단(X)에서 평균(μ)을 빼고 표준편차(σ)로 나눠주면 표준정규분포를 가지게 된다.

    그럼 모집단에서 샘플링된 표본은 어떨까? 표본은 평균은 모집단의 평균 μ와 같지만 분산은 σ/√n 을 가지는 정규분포다. 따라서 동일한 방법으로 정규화 시켜주면 아래와 같이 표준정규분포를 가질 수 있다.


정규분포, 표준정규분포 외에도 우리가 기억해둬야 할 분포가 아래와 같이 더 있으니 기억해두도록 하자.

2) Χ2-Distribution (Chi-square 분포)

앞서 N(μ, σ2)를 가지는 모집단으로부터 sampling을 n번 하면 표본(X1, ... Xn)은 모두 N(μ, σ2/n)의 분포를 가진다고 했다. 그리고 이를 표준정규분포로 정규화하면 Z~N(0, 1)의 분포를 가진다. 

이번에 소개할 Chi-square 분포는 모집단의 분산(σ2)의 분포를 구하고 싶을 때 유용하게 사용될 수 있다. 그리고 Chi-square 분포는 표준정규분포를 가지는 n개 표본으로부터 만들어 진다. 자세히 살펴보자.

만약 표준정규분포를 가지는 집단 Z1, Z2 ... Zv가 있다고 하자. 이 표준정규분포를 가진 집달들을 각각을 제곱해서 합하면 Chi-square 분포를 따른다고 한다. 그리고 v개의 표준정규분포를 몇개 더했는지를 표현하며 자유도(degree of freedom)라 부른다. 

Chi-square 분포는 그림처럼 한쪽으로 치우친 분포를 보여주며, 제곱을 해서 더했기 때문에 항상 0보다 큰 것이 특징인데, 사실 Chi-square 분포 자체는 큰 의미를 갖지 않는다. 앞서 잠깐 언급했듯, 우리가 표본으로 부터 통계값인 평균( )과 분산(s2)는 어떻게 구했는데, 분산의 분포가 어떨지 궁금할 수가 있다. 

하지만 위와 같이 표본의 분산(s2)은 모집단(X)과 표본평균( )의 제곱항으로 표현되어있다. 우리는 분산(s2)의 분포를 구하고 싶지만 이를 직접적으로 구할 수 없어 자유도(n-1)을 곱해주고 모집단의 분산(σ2)으로 나눠주면 특정 분포를 가지는데 이를 Chi-square 분포라 부르는 것이다. (왜 저렇게 되는지는 생략한다.)


어디서 많이 본 모양이지 않은가? 아래 표준정규분포를 만들기 위한 함수에서 μ대신 를 쓰고 제곱하면 위 식과 거의 동일하다.

이제 가장 처음 언급했던 표준정규분포를 가지는 Z를 제곱해서 더 하면 Chi-square 분포를 가진다라는 말이 좀 이해가 된다. 그런데, 이렇게 힘들게 설명했는데 이렇게까지 구체적으로 알 필욘 없고 대략 느낌만 기억하자. 그 이유는 다음에 나온다.

3) t-Distribution (t-분포)

사실 Chi-square에 대해 알아본 이유는 바로 t-Distribution 때문이다. 

보다시피 t-분포를 가지는 T는 분자에 표준정규분포(Z), 분모에는 Chi-square 분포를 자유도로 나눈값의 제곱근을 가진다. 

t-분포함수를 그리면 위와 같은데, 보다시피 표준정규분포와 매우 유사하게 생겼다. 자유도가 높을수록 표준정규분포를 따르는데(v=∞), 자유도가 높을수록 뾰족해지고 tail은 얇아진다. 반대로 자유도가 낮을수록 뭉퉁해지면서 tail은 넓어지는 점이 차이점이다. 

그럼 모집단의 샘플 t-분포를 가지게 하려면 어떻게 해야 할까? 

위 식처럼 표준정규분포를 만들어주기 위해  에서 μ를 빼주는데 σ를 모르기 때문에 추정값인 s를 쓰게된다. (표본을 표준정규분포로 만드는데 σ 대신 s를 쓰면 t-분포를 가진다고 이해하면 된다.)

4) F-Distribution (F-분포)



F-분포는 Chai-square 분포 2개로 이뤄져있는 형태인데, 일단 있다는 것 정도만 기억하자.


지금까지 다양한 확률 분포에 대해서 알아보았는데 정리하자면 아래와 같다.

  • 정규분포 : 평균(μ)와 분산(σ2)를 가지는 대칭형 분포 (모집단)
  • 표준정규분포 : 정규분포에서 평균(μ)을 뺴고 표준편차(σ)로 나눠주면 N(0, 1)
  • Chi-square분포 : 표준정규분포를 가공해서 나온 분포
    ※ 표본의 분산(s2)의 분포는 Chi-square분포를 가진다.

  • t-분포 : 표준정규분포와 Chi-square분포를 가공해서 나온 분포
    ※ 표본을 표준정규분포로 만들때, 추정 표준편차(s)를 사용하면 Chi-square분포를 가짐

  • F-분포 : 2개의 Chi-square분포를 가공해서 나온 분포


2. Estimation (추정)

추론(Inference)은 추정(estimation) + 검정(testing)을 뜻하는데, 일단 추정에 대해서 알아보자.

추정(estimation)은 통계량  , s2을 이용해서 모집단의 μ, σ2을 추정해 보는 것이다. 

추정을 하는 방법은 아래 두가지 방법으로 할 수 있다.

  • point estimation : 1개의 값으로 추정 (ex.    = μ)
  • interval estimation : 특정 범위로 추정 (ex. μ between ... and ... )

1) Point Estimation

point estimation은 1개의 값으로 모집단을 추정하는 가장 간단한 방법이며, 추청값에는 hat(^)을 씌워서 표기한다.() 이 때 표기식을 estimator, 대입 후 나오는 결과를 estimate라 부른다.

performance of estimator

그럼 point estimator 평가는 어떤 방법으로 할 까? 사실 매우 많은 방법이 존재하는데, 보편적으로 많이 쓰는 것이 unbiasedness, MSE(mean squared error)가 있다.

먼저 unbiasedness는 한글로 굳이 번역하면 '불편성'이라 할 수 있다. (bias = 편향된) 만약 어떤 Θ라는 파라미터를 추정량 으로 예측하였고,  이 분포를 가진다면, 그 분포에 기대치를 취하면 파라미터가 된다라 정의하는 것이 unbiased estimator라 한다. 만약 μ와 σ2를 추정했다면 아래와 같이 표현할 수 있다.

또다른 estimator를 평가하는 보편적인 방법은 MSE(mean squared error)이다. MSE는 글자 그대로 「오차 제곱의 평균」이며, 아래와 같이 표현할 수 있다.


2) Interval Estimation

반면 μ를 1개의 값으로 추정하는 것이 아니라 ±d for μ 와 같이 범위로 추정할 수가 있다. 이와 같이 추정 하는 것을 Interval Estimation(구간 추정) 이라 하며, 이 때 interval이 넓을 수록 신뢰수준은 높아진다. (interval이 매우 넓으면 신뢰수준이 100%) 즉, 적절히 낮은 신뢰수준을 정하는 것이 중요하다. (ex. 1σ ~ 95%) 이를 confidence level이라 한다. 그리고 이 신뢰수준과 직접적으로 연관된 interval을 confidence interval이라 한다. 평균을 추정하는 것을 예로 들어보자.

앞서 확률 분포에서 설명했듯, 표본평균의 추정량( )은 평균이 모집단의 평균(μ)이고 분산은(σ2/n)을 가진다. 그리고 이를 표준정규분포로 표준화 할 때 σ 혹은 s를 사용한다. 만약 σ를 알고 있을땐 신뢰수준을 정하고(ex. 95%) 표준정규분포표를 통해서 interval을 구할 수 있다. (ex. ±1.96) 반면 σ를 모르고 있다면 분포 자체가 t-분포를 가지게 되며, t-분포에서 나오는 계수로 신뢰구간을 결정하게 된다. (이래서 t-분포를 앞에서 중요하게 학습한 것. 추후에도 계속 나올 예정이다.)

조금전 예제에서 살짝 맛뵈기 했듯, 구간 추정을 하는 순서는 아래와 같다.

  • 추정하고자 하는 통계량을 정한다 (ex. 평균, 분산)
  • point estimator를 찾는다.
  • point estimator의 분포를 well-known distribution으로 변경한다.
    (ex. ( )의 경우 경우 t-분포, (s2)의 경우 chi-square 분포)
  • 신뢰수준을 정한다.

3. Hypothesis Testing (가설 검정)

앞서 확률분포의 종류와 분포를 추정하는 방법에 대해서 알아봤다. 그럼 우리의 추정값이 잘 맞는지 가설 검정방법에 대해서 알아보자. 먼저 그 과정을 살펴보자.

  • 귀무 가설(null hypotheses)를 세운다. (H0)  
  • 검정 통계량(test statistic)을 정한다. (Θ) → 추론(estimation)
  • 귀무 가설을 기각시키는 영역(기각역, critical/rejection region)을 정의한다. 
  • 기각역으로 부터 대립가설 (H1)을 설정하고, 어떤 가설이 기각되는지 검정한다.

 

위 절차를 구체적으로 설명하기 보다는 아래의 예제를 보면 검정 절차를 이해하기가 쉽다.

ex1) Testing Concerning Population Mean

모집단의 평균을 표본을 이용해 추정한 결과( )를 검증하는 예제이다.

1. 귀무가설과 대립가설을 설정한다.

2. 추론과정에서 나온 estimate( )의 분포를 t-분포로 변경시키고, (σ를 모르는 경우)
   검정 통계량으로 t-test 값(T)을 사용한다.

3. t-분포에서 대립가설이 충족하는지 살펴본다. (충족한다면 귀무가설 기각) 





ex3) 두 class에 있는 학생들의 키의 평균이 같을까?

2개의 모집단이 있는 경우 검증하는 방법인데 자세한 내용은 생략한다. (추후에 한번 더 다룰 예정)





댓글 쓰기

0 댓글