Must Learning With Statistics

데이터 마이닝이란 본문

데이터마이닝

데이터 마이닝이란

Doublek Park 2020. 3. 17. 11:54
고급데이터마이닝-1장-[데이터마이닝].utf8.md

데이터 마이닝(Data Mining)

 데이터마이닝은 데이터내에서 패턴을 찾아가는 과정을 의미합니다. 효과적인 마이닝을 위해서는 기계학습, 통계학, 데이터베이스 등의 기술들을 다같이 활용해야 합니다. 제 개인적으로는 ’데이터마이닝’이라는 단어를 그렇게 좋아하지는 않습니다. 그 이유는 어떤 현장에서도 ’데이터 마이닝’을 해와라 라고 시키지는 않습니다. 대신에 SQL 쿼리를 짜와라, 예측 분석을 해라, 유사성비교를 해라 등의 지시가 내려옵니다. 즉, 데이터마이닝은 너무 방대한 개념입니다. 학부 통계학과의 입장에서는 다변량 자료분석이 데이터마이닝으로 자연스럽게 연결이 됩니다. 또한 이 데이터 마이닝은 기계학습과 자동으로 연결이 되며, 마지막으로 기게학습은 딥러닝과 연결이 됩니다. 마지막으로 딥러닝은 최적화 이론과 합쳐져 강화학습과 연결이 됩니다. 즉, 굳이 통계학, 데이터마이닝, 기계학습을 나누어서 생각할 필요는 크게 없다고 봅니다. 물론 통계학이 집중하는 분야와 데이터마이닝 그리고 기계학습이 집중하는 분야는 다릅니다.

  • 통계학 : 모델의 통계적 해석 및 신뢰성 분석
  • 데이터마이닝 & 기계학습 : 모델의 정확도 및 예측성

통계학에서는 기본적으로 선형모형을 선호합니다. 선형모형의 장점은 뛰어난 해석력에 있습니다. 다만 고정된 모형의 유연성으로 인하여 예측력은 부족하게 되는 단점이 있습니다. 반면 데이터마이닝은 예측에 목적이 있기 때문에 선형모형에 비해서는 높은 예측력을 가지게 됩니다. 하지만 분석 알고리즘의 해석은 매우 복잡합니다. 하나하나 설명하기에 너무 많이 섞여있거나, 혹은 아예 설명하기도 어려운 경우가 존재합니다. 대표적으로 통계학에서 대표적인 일반화선형모형과 기계학습에서 대표적인 의사결정나무의 모형을 통해 비교해보도록 하겠습니다.

일반화선형모형에 대한 더 자세한 내용은 다음 링크를 참고하시면 됩니다.

링크 : https://mustlearning.tistory.com/15

'data.frame':   14999 obs. of  10 variables:
 $ satisfaction_level   : num  0.38 0.8 0.11 0.72 0.37 0.41 0.1 0.92 0.89 0.42 ...
 $ last_evaluation      : num  0.53 0.86 0.88 0.87 0.52 0.5 0.77 0.85 1 0.53 ...
 $ number_project       : int  2 5 7 5 2 2 6 5 5 2 ...
 $ average_montly_hours : int  157 262 272 223 159 153 247 259 224 142 ...
 $ time_spend_company   : int  3 6 4 5 3 3 4 5 5 3 ...
 $ Work_accident        : Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ...
 $ left                 : Factor w/ 2 levels "0","1": 2 2 2 2 2 2 2 2 2 2 ...
 $ promotion_last_5years: Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ...
 $ department           : Factor w/ 10 levels "accounting","hr",..: 8 8 8 8 8 8 8 8 8 8 ...
 $ salary               : num  1 2 2 1 1 1 1 1 1 1 ...

일반화 선형모형

\[ log(odds) = \beta_{0} + \beta_{1}x_{1}+\beta_{2}x_{2} + \cdots+\beta_{p}x_{p} \]

직원들의 이직여부(0: 이직 안함, 1: 이직 진행)을 예측하기 위한 모형을 만들도록하겠습니다.


Call:
glm(formula = left ~ satisfaction_level + salary + time_spend_company + 
    Work_accident, family = binomial(link = "logit"), data = TRAIN)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-1.8709  -0.6798  -0.4467  -0.1678   2.8074  

Coefficients:
                   Estimate Std. Error z value Pr(>|z|)    
(Intercept)         1.34051    0.10887   12.31   <2e-16 ***
satisfaction_level -3.70294    0.10665  -34.72   <2e-16 ***
salary             -0.68030    0.04428  -15.36   <2e-16 ***
time_spend_company  0.20979    0.01734   12.10   <2e-16 ***
Work_accident1     -1.44447    0.10291  -14.04   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 11574.4  on 10498  degrees of freedom
Residual deviance:  9367.1  on 10494  degrees of freedom
AIC: 9377.1

Number of Fisher Scoring iterations: 5

일반화선형모형의 결과는 매우 깔끔합니다. 결과값의 Estimate값이 기울기를 의미하며 양수(+)의 값을 가질 경우에는 이직을 할 가능성을 높여주는 것이고, 음수(-)일 경우에는 이직을 할 가능성을 낮추어주는 것입니다. satisfaction_level와 salary의 경우에는 값이 높을수록 이직할 \(log(odds)\)가 감소하는 것입니다. 다른 변수들에 대해서도 비슷하게 해석을 진행하면 됩니다.

의사결정나무

 의사결정나무는 여러 알고리즘이 존재하지만 여기서는 Information Gain을 활용하도록 하겠습니다. 더 자세한 내용은 다음의 링크에서 확인할 수가 있습니다.

림크 : https://mustlearning.tistory.com/17

자, 이제 위 그림의 의사결정나무를 해석하시면 됩니다. 깔끔하게 설명하는 것은 매우 어려워 보입니다. 이게 바로 선형모형과 데이터마이닝(기계학습) 방법론의 가장 큰 차이 중 하나입니다. 그렇다면 모델의 예측정확도는 어떤지 확인을 해보도록 하겠습니다.

모델 정확도

  • GLM 정확도
Confusion Matrix and Statistics

          Reference
Prediction    1    0
         1  802 1026
         0  248 2424
                                        
               Accuracy : 0.7169        
                 95% CI : (0.7035, 0.73)
    No Information Rate : 0.7667        
    P-Value [Acc > NIR] : 1             
                                        
                  Kappa : 0.3708        
                                        
 Mcnemar's Test P-Value : <2e-16        
                                        
            Sensitivity : 0.7638        
            Specificity : 0.7026        
         Pos Pred Value : 0.4387        
         Neg Pred Value : 0.9072        
             Prevalence : 0.2333        
         Detection Rate : 0.1782        
   Detection Prevalence : 0.4062        
      Balanced Accuracy : 0.7332        
                                        
       'Positive' Class : 1             
                                        
  • tree 정확도
Confusion Matrix and Statistics

          Reference
Prediction    1    0
         1  958  100
         0   92 3350
                                         
               Accuracy : 0.9573         
                 95% CI : (0.951, 0.9631)
    No Information Rate : 0.7667         
    P-Value [Acc > NIR] : <2e-16         
                                         
                  Kappa : 0.8811         
                                         
 Mcnemar's Test P-Value : 0.6134         
                                         
            Sensitivity : 0.9124         
            Specificity : 0.9710         
         Pos Pred Value : 0.9055         
         Neg Pred Value : 0.9733         
             Prevalence : 0.2333         
         Detection Rate : 0.2129         
   Detection Prevalence : 0.2351         
      Balanced Accuracy : 0.9417         
                                         
       'Positive' Class : 1              
                                         

마지막으로 ROC 커브를 비교해보도록 하겠습니다.

결과를 확인하시면 Accuracy, Sensitivity, Specificity의 값들이 모두 Tree가 뛰어난 것을 확인할 수가 있습니다. 결국 이 모델 선택도 trade off 관계가 존재합니다. 해석이 중요한 컨설팅 분야에서는 일반화선형모형이 좀 더 선호되는 경향이 있으며, 예측이 중요한 현장에서는 기계학습 방법론이 좀 더 선호가 됩니다.

 데이터마이닝에는 예측분석말고도, 유사성 분석, 차원감소 분석 등 많은 분석방법론이 존재합니다. 여기서 우리에게 중요한 것은 데이터마이닝 알고리즘을 공부하는 것이 아니라, 데이터 마이닝의 응용부분에 집중을 해야 됩니다. 위에 코드를 보셨다시피 데이터마이닝의 어려운 수식이론에 비해 구현하는 코드는 정말 간단합니다. 즉, 이론 내부를 하나하나 다 공부할 것이 아니라면 이 알고리즘들을 어떻게 활용할 수 있는가가 더 중요합니다. 앞으로 계속된 포스팅으로 데이터마이닝을 어떻게 응용할 수 있는지에 대해 다루어보도록 하겠습니다.

Comments