별의 공부 블로그 🧑🏻‍💻
728x90
728x170

데이터 분석 : 정형 데이터 마이닝

데이터 마이닝 개요

데이터 마이닝(Data Mining)

  • 기업이 보유하고 있는 일일 거래 데이터, 고객 데이터, 상품 데이터 혹은 각종 마케팅 활동에 있어서의 고객 반응 데이터 등과 이외의 외부 데이터를 포함하는 모든 사용 가능한 원천 데이터를 기반으로 감춰진 지식, 기대하지 못했던 경향 또는 새로운 규칙 등을 발견하고 이를 실제 비즈니스 의사결정 등에 유용한 정보로 활용하는 일련의 작업

 

데이터 마이닝 5단계

단계 설명
목적 정의 데이터 마이닝 도입 목적을 명확하게 함.
데이터 준비 - 데이터 정제(Cleaning)를 통해 데이터의 품질 확보까지 포함.
- 필요시 데이터 양 충분하게 확보
데이터 가공 - 목적 변수를 정의하고, 필요한 데이터를 데이터 마이닝 소프트웨어에 적용할 수 있게 가공 및 준비하는 단계
- 충분한 CPU와 메모리, 디스크 공간 등 개발환경 구축이 선행
데이터 마이닝 기법 적용 모델을 목적에 맞게 선택하고 소프트웨어를 사용하는 데 필요한 값 지정
검증 검증 결과에 대한 검증 시행

 

대표적 데이터 마이닝 기법

기법 설명
분류
(Classification)
- 새롭게 나타난 현상을 검토하여 기존의 분류, 정의된 집합에 배정하는 것
- 의사결정나무, memory-based reasoning 등
추정
(Estimation)
- 주어진 입력 데이터를 사용하여 알려지지 않은 결과의 값을 추정하는 것
- 연속된 변수의 값을 추정, 신경망 모형
연관분석
(Association Analysis)
- '같이 팔리는 물건' 같이 아이템의 연관성을 파악하는 분석
- 카탈로그 배열 및 교차 판매, 공격적 판촉 행사 등의 마케팅 계획
예측
(Prediction)
- 미래에 대한 것을 예측, 추정하는 것을 제외하면 분류나 추정과 동일한 의미
- 장바구니 분석, 의사결정나무, 신경망 모형
군집
(Clustering)
- 미리 정의된 기준이나 예시에 의해서가 아닌 레코드 자체가 가진 다른 레코드와의 유사성에 의해 그룹화되고 이질성에 의해 세분화 됨.
- 데이터 마이닝이나 모델링의 준비단계로서 사용됨.
기술(Description) - 데이터가 가진 특징 및 의미를 단순하게 설명하는 것
- 데이터가 암시하는 바에 대해 설명 및 그에 대한 답을 찾아 낼 수 있어야 함.

 

분류 분석(Classification Analysis) 

데이터 분석 순서

분석용
데이터
준비
탐색적 분석
데이터 전처리
모델링 모델 평가 및
검증
모델 적응 운영
방안 수립
  - 속성간 상관 관계 파악
- 데이터 특성 파악
- 분포 파악
- 데이터 확인
- 데이터 형식 변경
- 결측 값 처리
- 이상 값 처리
- 특성 조작 (Scaling, Binning, Transform, Dummy)
- 데이터 차원 축소
- 회귀 분석
- 분류 분석
- 군집 분석
- 연관 분석
  - 결정 계수(`R^{2}`)
- F 통계량, t 값
- ROC Curve
- 오류 분포
- 실루엣, DI
 

 

Machine Learning Algorithms

  Unsupervised Supervised

Continuous - Clustering & Dimensionality Reduction
▶ SVD
▶ PCA
▶ K-means
- Regression
▶ Linear
▶ Polynomial
- Decision Trees
- Random Forests
Categorical - Association Analysis
▶ Apriori
▶ FP-Growth
- Classification
▶ kNN
▶ Decision Trees
▶ Logistic Regression
▶ Naïve-Bayes
▶ SVM

 

분류 분석의 종류

로지스틱 회귀 의사 결정 나무 앙상블 신경망 모형
kNN 베이즈 분류 모형 SVM(서포트 벡터 머신) 유전자 알고리즘

 

① 로지스틱 회귀 분석(Logistic Regression Analysis)

  • 독립 변수는 연속형, 종속 변수가 범주형인 경우 적용되는 회귀 분석 모형
  • 종속 변수가 성공/실패, 사망/생존과 같이 이항변수(0, 1)로 되어 있을 때 종속 변수와 독립 변수 간의 관계식을 이용하여 두 집단 또는 그 이상의 집단을 분류하고자 할 때 사용되는 분석 기법
  일반 선형 회귀 분석 로지스틱 회귀 분석
특징 - x값의 변화에 따른 y값의 변화를 알아냄.
- x가 1증가할 때, y는 회귀 계수 만큼 증가함.
- x값에 따른 y값의 변화량의 문제가 아님.
- 회귀 계수를 해석할 때 문제가 생김.
종속 변수 연속형 변수 이산형(범주형) 변수
모형 탐색 방법 최소자승법(LSM, 최소제곱법) 최대우도법(MLE), 가중 최소자승법
모형 검정 F-Test, T-Test `χ^{2}` Test

 

선형 회귀와 로지스틱 회귀

 

  • 종속 변수를 전체 실수 범위로 확장하여 분석하고, sigmoid 함수를 사용해 연속형 `0~1` 값으로 변경
회귀 식에 대한 해석 방법이 선형 회귀와 다름.
Probability 0 ~ 1 사이의 값
 
Odds - 성공률 / 실패율, `{P_{i}} / {1 - P_{i}}`, `P_{i}` =성공률
- 로지스틱의 회귀 계수, 확률에 대해 `0 ~ ∞` 로 변환한 값
 
Log Odds
(=logit)
- log(odds), odds 값에 log를 취함
- 선형화의 하나, 값의 범위를 전체 실수 범위(`-∞~+∞`)로 확장
-log(odds(p)) = wx + b 형태로 선형 분석이 가능해짐.
 
sigmoid - log odds 값을 연속형 `0~1` 사이의 값으로 바꾸는 함수
- Logistic 함수라 불리기도 하며, 비선형적 값을 얻기 위해 사용

 

 

  • 승산(odds) = 성공률 / 실패율, `{P_{i}} / {1 - P_{i}}`, `P_{i}` =성공률
    • 성공이 일어날 가능성이 높은 경우는 1.0 보다
    • 실패가 발생할 가능성이 높은 경우는 1.0 보다 작은
    • 로지스틱의 회귀 계수, 확률에 대해 `0 ~ ∞` 로 변환한 값
  •  log odds, logit transformation = log(odds) 
    • 선형화(Linearization)의 하나로, odds 값에 log를 취하여 값의 범위를 전체 실수 범위로 확장함.
  •  sigmoid 함수
    • Logistic 함수라 불리기도 하며, log_odds 값을 연속형 `0~1` 사이의 값으로 바꾸는 함수
    • 비선형 값을 얻기 위해 사용
    • `y^{\text{sigmoid}} = {1} / {1 + e^{-x}`

sigmoid 함수

 

간장, 설탕을 사용한 소스를 만들 때 비율 표현
- 확률 표현: 80%간장, 20% 설탕 사용
- 승산 표현: 4:1 (간장:설탕)

 

해석

 

  • 승산비(Odds Ratio) = 관심있는 사건이 발생할 상대 비율, `x=1` 일 때, `y=1` 이 되는 상대적 비율
    • odds_a / odds_b = exp(coef) = exp(5.140336) = 170.7731385
    • 로지스틱 회귀에서 exp(x1)의 의미 (단, x1 : 회귀 계수)
    • 나머지 변수가 주어질 때 x1이 한 단위 증가할 때마다 성공(Y=1)의 odds가 몇 배 증가하는지를 나타냄.

 

 

  • Y=1 versicolor 일 경우, Sepal.Length 가 한 단위 증가하면 Versicolor 일 odds가 170배 증가를 의미함.

 

② 의사 결정 나무(Decision Tree) 모형

  • 의사 결정 규칙을 나무 구조로 나타내 전체 자료를 몇 개의 소집단으로 분류하거나 예측을 수행하는 분석 방법
  • 분석 과정이 직관적이고 이해하기 쉬움.
- 뿌리 마디(Root Node)

- 자식 마디(Child Node)

- 부모 마디(Parent Node)

- 최종 마디(Terminal Node)

- 중간 마디(Internal Node)

- 가지(Branch)

- 깊이(Depth)

 

특징
  • 새로운 데이터를 분류하거나 값을 예측하는 것을 목적으로 함.
  • 분리 변수 P차원 공간에 대한 현재 분할은 이전 분할에 영향을 받음.
  • 부모 마디보다 자식 마디의 순수도가 증가하도록 분류 나무를 형성해 나감. (불순도 감소)

 

종류
  • 목표 변수(= 종속 변수)가 이산형인 경우의 분류 나무(Classification Tree)
  • 목표 변수가 연속형인 경우의 회귀 나무(Regression Tree)

 

장점
  • 구조가 단순하여 해석이 용이함.
  • 비모수적 모형으로 선형성, 정규성, 등분산성 등의 수학적 가정이 불필요함.
  • 범주형(이산형)수치형(연속형) 변수를 모두 사용할 수 있음.

 

단점
  • 분류 기준값의 경계선 부근의 자료 값에 대해서는 오차가 큼. (비연속성)
  • 로지스틱 회귀와 같이 각 예측 변수의 효과를 파악하기 어려움. 
  • 새로운 자료에 대한 예측이 불안정할 수 있음. 

 

※ 독립 변수와 종속 변수

  • 독립 변수
    • 설명 변수
    • 예측 변수
    • Feature
  • 종속 변수
    • 목표 변수
    • 반응 변수
    • Label

 

결정 규칙

  • 분리 기준(Split Criterion)
    • 새로운 가지를 만드는 기준을 어떻게 정해야 할까?
    • 순수도가 높아지는 방향으로 분리
    • 불확실성이 낮아지는 방향

 

  • 정지 규칙(Stopping Rule)
    • 더 이상 분리가 일어나지 않고 현재의 마디가 최종 마디가 되도록 하는 규칙
    • ‘불순도 감소량’이 아주 작을 때 정지함.

 

  • 가지치기 규칙(Pruning Rule)
    • 어느 가지를 쳐내야 예측력이 좋은 나무가 될까?
    • 최종  노드가 너무 많으면 Overfitting 가능성이 커짐, 이를 해결하기 위해 사용
    • 가지치기 규칙은 별도 규칙을 제공하거나 경험에 의해 실행할 수 있음.
    • 가지치기의 비용 함수(Cost Function)최소로 하는 분기를 찾아내도록 학습
    • Information Gain : 어떤 속성을 선택함으로 인해 데이터를 더 잘 구분하게 되는 것 (불확실성 감소)

 

불순도 측정 지표

  • 목표 변수가 범주형일 때 사용하는 지표 (분류에서 사용)

 

지니 지수(Gini Index)
  • 불순도 측정 지표
  • 값이 작을수록 순수도가 높음. (분류 잘 됨.)
  • 가장 작은 값을 갖는 예측 변수와 이때의 최적 분리에 의해 자식 마디 형성
  • Gini(T) = 1 - ∑(각 범주별수/전체수)²
    • `1-\sum_{i=1}^{k}P_{i}^{2}`
  • 예) 각 범주별 수가 2이고, 전체 수가 4일 경우
    • 지니 지수 : `1 - (({2}/{4})^{2} + ({2}/{4})^{2}) = 1 - ({1}/{4} + {1}/{4}) = {1}/{2}`

 

엔트로피 지수(Entropy Measure)
  • 불순도 측정 지표
  • 가장 작은 값을 갖는 방법 선택
  • Entropy(T) = `-∑_{i=1}^{k}` `P_{i}`log₂`P_{i}`

 

카이 제곱 통계량의 유의 확률(p-value)
  • 가장 작은 값을 갖는 방법 선택

 

의사 결정 나무를 위한 알고리즘

  • 의사 결정 나무를 위한 알고리즘은 CHAID, CART, ID2, C5.0, C4.5 가 있으며, 하향식 접근 방법을 이용함.
  • 알고리즘 별 분리, 정지 기준 변수 선택법
알고리즘 이산형 목표 변수 (분류 나무) 연속형 목표 변수 (회귀 나무)
CART 
(Classification And Regression Tree)
지니지수 분산 감소량
  C5.0 엔트로피 지수  
CHAID 
(Chi-squared Automatic
Interaction Detection)
카이제곱 통계량의 p-value ANOVA F-통계량 - p-value

 

의사 결정 트리의 예

 

③ 앙상블(Ensemble) 모형

  • 여러 개의 분류 모형에 의한 결과를 종합하여 분류의 정확도를 높이는 방법
  • 적절한 표본 추출법으로 데이터에서 여러 개의 훈련용 데이터 집합을 만들어 각 데이터 집합에 하나의 분류기를 만들어 결합하는 방법
  • 약하게 학습 된 여러 모델들을 결합하여 사용
  • 성능을 분산시키기 때문에 과적합(Overfitting) 감소 효과가 있음.
  • 종류
    • Voting
    • Bagging
    • Boosting
    • Random Forest

 

종류 ① : Voting

  • 서로 다른 여러 개 알고리즘 분류기 사용
  • 각 모델의 결과를 취합하여 많은 결과 또는 높은 확률로 나온 것을 최종 결과로 채택하는 것
Hard Voting Soft Voting
- 각 모델의 예측 결과 중 많은 것을 선택
- 1 예측 3표, 2예측 1표 → 1예측 선택
- 각 모델의 클래스 확률을 구하고 평균 높은 확률을 선택
- 1예측 : `{(0.9 + 0.8 + 0.3 + 0.4)} / {4} = 0.6` → 1예측 선택
- 2예측 : `{(0.1 + 0.2 + 0.7 + 0.6)} / {4} = 0.4`

 

728x90

 

종류 ② : 배깅(Bagging, Bootstrap AGGregatING)

  • 서로 다른 훈련 데이터 샘플로 훈련, 서로 같은 알고리즘 분류기 결합
  • 원 데이터에서 중복을 허용하는 크기가 같은 표본을 여러 번 단순 임의 복원 추출하여 각 표본에 대해 분류기(Classifiers)를 생성하는 기법
  • 여러 모델이 병렬로 학습, 그 결과를 집계하는 방식
  • 같은 데이터가 여러 번 추출될 수도 있고, 어떤 데이터는 추출되지 않을 수 있음.
  • 대표적 알고리즘 : MetaCost Algorithm

 

종류 ③ : 부스팅(Boosting)

  • 여러 모델이 순차적으로 학습
  • 이전 모델의 결과에 따라 다음 모델 표본 추출에서 분류가 잘못된 데이터에 가중치(Weight)를 부여하여 표본을 추출함.
  • 맞추기 어려운 문제를 맞추는데 초점이 맞춰져 있고, 이상치(Outlier)에 약함.
  • 대표적 알고리즘 : AdaBoost, GradientBoost (XGBoost, Light GBM)
    • Light GBM : Leaf-Wise-Node 방법을 사용하는 알고리즘

 

종류 ④ : 랜덤 포레스트(Random Forest)

  • 배깅(Bagging)에 랜덤 과정을 추가한 방법
  • 노드 내 데이터를 자식 노드로 나누는 기준을 정할 때 모든 예측변수에서 최적의 분할을 선택하는 대신, 설명 변수의 일부분만을 고려함으로 성능을 높이는 방법 사용
  • 여러 개 의사 결정 나무를 사용해, 하나의 나무를 사용할 때보다 과적합 문제를 피할 수 있음.

 

④ k-NN(k-Nearest Neighbors)

  • 새로운 데이터에 대해 주어진 이웃의 개수(k) 만큼 가까운 멤버들과 비교하여 결과를 판단하는 방법
  • k에 따라 소속되는 그룹이 달라질 수 있음. (k 값은 Hyper Parameter)
  • 거리를 측정해 이웃들을 뽑기 때문에 스케일링이 중요함.
  • 반응 변수가 범주형이면 분류, 연속형이면 회귀의 목적으로 사용됨.
  • 모형을 미리 만들지 않고, 새로운 데이터가 들어오면 그때부터 계산을 시작하는 Lazy Learning(게으른
    학습)이 사용되는 지도 학습 알고리즘
- k가 3인 경우, 초록색 Class로 분류

- k가 7인 경우, 빨강색 Class로 분류

 

⑤ SVM(Support Vector Machine)

  • 서로 다른 분류에 속한 데이터 간의 간격(margin)이 최대가 되는 선을 찾아 이를 기준으로 데이터를 분류하는 모델
  • 아래 그림에서 `H_{3}` 은 분류를 올바르게 하지 못하며, `H_{1}, H_{2}`는 분류를 올바르게 하는데 `H_{2}`가 `H_{1}` 보다 더 큰 간격을 갖고 분류하므로 이것이 분류 기준이 됨.

이미지 출처 : wikimedia.org

 

⑥ 인공 신경망(ANN, Artificial Neural Network) 모형

  • 인공 신경망을 이용하면 분류군집을 할 수 있음.
  • 인공 신경망은 입력층, 은닉층, 출력층 3개의 층으로 구성되어 있음.
  • 각 층에 뉴런(노드)이 여러 개 포함되어 있음.
  • 학습 : 입력에 대한 올바른 출력이 나오도록 가중치(Weights)를 조절하는 것
  • 가중치 초기화는 `-1.0~1.0` 사이의 임의 값으로 설정하며, 가중치를 지나치게 큰 값으로 초기화하면 활성화 함수를 편향 시키게 되며, 활성화 함수가 과적합 되는 상태를 포화 상태라고 함.

인공 뉴런 (=퍼셉트론)

 

경사 하강법(Gradient Descent)

  • 함수 기울기를 낮은 쪽으로 계속 이동시켜 극값에 이를 때까지 반복시키는 것
  • 제시된 함수의 기울기최소값을 찾아내는 머신러닝 알고리즘
  • 비용 함수(Cost Function)을 최소화 하기 위해 Parameter를 반복적으로 조정하는 과정
  • 경사 하강법 과정
① 임의의 Parameter 값으로 시작
Cost Function 계산, 시작점에서 곡선의 기울기 계산 (Cost Function : 모델을 구성하는 가중치 w의 함수)
Parameter 값 갱신 : W = W - learning rate * 기울기미분값
④ n 번의 Iteration, 최소값을 향해 수렴함. (Learning Rate가 적절해야 함.)

Gradient Descent

 

인공 신경망 모형의 장/단점

  • 장점
    • 변수의 수가 많거나 입/출력 변수 간에 복잡한 비선형 관계에 유용함.
    • 이상치 잡음에 대해서도 민감하게 반응하지 않음.
    • 입력 변수와 결과변 수가 연속형이나 이산형인 경우 모두 처리 가능
  • 단점
    • 결과에 대한 해석이 쉽지 않음.
    • 최적의 모형을 도출하는 것이 상대적으로 어려움.
    • 모형이 복잡하면 훈련 과정에 시간이 많이 소요됨.
    • 데이터를 정규화 하지 않으면 지역해(Local Minimum)에 빠질 위험이 있음.

 

신경망 활성화 함수(Activation Function)

  • 결괏값을 내보낼 때 사용하는 함수
  • 가중치 값을 학습할 때 에러가 적게 나도록 도움.
  • 풀고자 하는 문제 종류에 따라 활성화 함수의 선택이 달라짐.
  • 목표 정확도와 학습시간을 고려하여 선택하고 혼합 사용도 함.
  • 문제 결과가 직선을 따르는 경향이 있으면 ‘선형 함수’를 사용

 

종류
계단 함수 부호 함수 선형 함수

 

sigmoid 함수
  • 연속형 0~1, Logistic 함수라 불리기도 함.
  • 선형적인 멀티-퍼셉트론에서 비선형 값을 얻기 위해 사용

 

 

softmax 함수
  • 모든 logits의 합이 1이 되도록 output을 정규화
  • sigmoid 함수의 일반화된 형태로, 결과가 다 범주인 경우 각 범주에 속할 사후 확률(Posterior Probability)을 제공하는 활성화 함수
  • 주로 3개 이상 분류 시 사용함.

 

신경망 은닉 층, 은닉 노드

  • 다층 신경망단층 신경망에 비해 훈련이 어려움.
  • 은닉층 수은닉 노드 수의 결정은 ‘분석가가 분석 경험에 의해 설정' 함.
  • 은닉층 노드
    • 너무 적으면
      • 네트워크가 복잡한 의사결정 경계를 만들 수 없음.
      • Underfitting 문제 발생
    • 너무 많으면
      • 복잡성을 잡아낼 수 있지만, 일반화가 어려움.
      • 레이어가 많아지면 기울기 소실 문제가 발생할 수 있음.
      • 과적합(Overfitting) 문제 발생

 

역전파 알고리즘(Backpropagation Algorithm)
  • 출력층에서 제시한 값에 대해, 실제 원하는 값으로 학습하는 방법으로 사용
  • 동일 입력층에 대해 원하는 값이 출력되도록 개개의 Weight를 조정하는 방법으로 사용됨.

 

기울기 소실 문제(Vanishing Gradient Problem)
  • 다층 신경망에서 은닉층이 많아 인공 신경망 기울기 값을 베이스로 하는 역전파 알고리즘으로 학습시키려고 할 때 발생하는 문제

 

기울기 소실

  • 역전파(Backpropagation) 알고리즘출력층(Output Layer)에서 입력층(Input Layer)으로 오차 Gradient를 흘려 보내면서, 각 뉴런의 입력 값에 대한 손실 함수의 Gradient를 계산함.
  • 이렇게 계산된 Gradient를 사용하여 각 가중치 매개변수를 업데이트 해 줌.
  • 다층 신경망에서는 역전파 알고리즘이 입력층으로 갈 수록 Gradient가 점차적으로 작아져 0에 수렴하여, Weight가 업데이트 되지 않는 현상이 발생함.
  • 활성화 함수(Activation Function)으로 sigmoid 함수를 사용할 때 발생 
    • 해결을 위해 ReLU 등 다른 함수 사용


- 최대점 0.25에서 0으로 수렴함. (기울기 = 0)
- W = W - Learning Rate * 기울기미분값

 

모형 평가

① 홀드 아웃(Hold Out)

  • 원천 데이터를 랜덤하게 두 분류로 분리하여 교차 검정을 실시하는 방법으로 하나는 모형 학습 및 구축을 위한 훈련용 자료로 다른 하나는 성과 평가를 위한 검증용 자료로 사용하는 방법
  • 과적합(Overfitting) 발생 여부를 확인하기 위해서 주어진 데이터의 일정 부분을 모델을 만드는 훈련 데이터로 사용하고, 나머지 데이터를 사용해 모델을 평가
  • 잘못된 가설을 가정하게 되는 2종 오류의 발생을 방지
# iris 데이터를 7:3 비율로 나누어 Training에서 70%, Testing에 30% 사용하도록 함.
idx <- sample(2, nrow(iris), replace=TRUE, prob=c(0.7, 0,3))
trainData <- iris[idx==1,]
testData <- iris[idx==2,]

 

② 교차 검증(Cross Validation)

  • 데이터가 충분하지 않을 경우, Hold-out으로 나누면 많은 양의 분산 발생
  • 이에 대한 해결책으로 교차 검증을 사용할 수 있음.
  • 그러나 클래스 불균형 데이터에는 적합하지 않음.
  • 주어진 데이터를 가지고 반복적으로 성과를 측정하여 그 결과를 평균한 것으로 분류 분석 모형의 평가 방법
K-fold Cross Validation
1. 전체 데이터를 Shuffle
2. K개로 데이터를 분할
3. K번째의 하부 집합을 검증용 자료, K-1개는 훈련용 자료로 사용하여 K번 반복 측정
4. 결과를 평균 낸 값을 최종 평가로 사용함

 

③ 붓스트랩(Bootstrap)

  • 평가를 반복하는 측면에서 교차 검증과 유사하지만, 훈련용 자료를 반복 재선정한다는 점에서 차이가 있는 평가 방법
  • 붓스트랩은 관측치를 한 번 이상 훈련용 자료로 사용하는 복원추출법에 기반함.
  • 전체 데이터 양이 크지 않을 경우의 모형 평가에 가장 적합
  • 훈련 데이터를 63.2% 사용하는 0.632 붓스트랩이 있음.

 

데이터 분할 시 고려사항

  • Class의 비율이 한쪽에 치우쳐 있는 클래스 불균형 상태라면 다음 기법 사용을 고려함.
    • Under Sampling : 적은 Class의 수에 맞추는 것
    • Over Sampling : 많은 Class의 수에 맞추는 것

 

오분류표를 활용한 평가 지표

 

지표 설명
정밀도
(Precision)
- 측값이 True인 것에 대해 실제값이 True인 지표
- : TP / (TP + FP)
재현율, 민감도
(Recall, Sensitivity)
- 제값이 True인 것에 대해 예측값이 True인 지표
- : TP / (TP + FN)
F1 - 데이터가 불균형 할 때 사용
- 오분류표 중 정밀도재현율의 조화 평균을 나타내며 정밀도재현율같은 가중치를 부여하여 평균한 지표
- 2 * (Precision * Recall) / (Precision + Recall)



정분류율
(Accuracy)
- (TP + TN) / (TP + FP + FN + TN)
- 전체 예측에서 옳은 예측의 비율
오분류율
(Error Rate)
- (FP + FN) / (TP + FP + FN + TN)
- 전체 예측에서 틀린 예측의 비율
특이도
(Specificity)
- TN / (TN + FP)
- 실제로 N 인 것들 중 예측이 N으로 된 경우의 비율
FP Rate - FP / (FP + TN), 1 - Specificity
- 실제가 N 인데 예측이 P로 된 비율 (Y가 아닌데 Y로 예측된 비율, 1종 오류)
kappa - (Accuracy - P(e)) / (1 - P(e))     (P(e) : 우연히 일치할 확률)
- 두 평가자의 평가가 얼마나 일치하는지 평가하는 값으로 0~1 사이의 값을 가짐.
`F_{2}` 재현율에 정밀도의 2배 만큼 가중치를 부여하는 것

 

요약

지표 설명
Precision TP / (TP + FP)
Recall, Sensitivity TP / (TP + FN)
F1 2 * (Precision * Recall) / (Precision + Recall)
Specificity TN / (TN + FP)
FP Rate FP / (FP + TN), 1 - Specificity
Error Rate (FP + FN) / (TP + FP + FN + TN)
Accuracy (TP + TN) / (TP + FP + FN + TN)

 

300x250

 

분류 모형 성능 평가

ROC(Receiver Operating Characteristic) Curve

  • X축은 FP Rate(1-Specificity), Y축은 민감도(Sensitivity)를 나타내 이 두 평가 값의 관계로 모형을 평가함.
  • ROC 그래프의 밑부분의 면적(AUC, Area Under the Curve)이 넓을수록 좋은 모형으로 평가함.

 

  • Recall, Sensitivity 
    • 실제 값이 True인 것에 대해 예측 값이 True로 된 비율
    • TP / (TP + FN)
  • FP Rate
    • FP / (FP + TN), 1 - Specificity
    • 실제가 False 인데 예측이 True로 된 비율 (1종 오류 비율)
  • X축 : False Positive Rate (1 - Specificity)
  • Y축 : True Positive Rate (Sensitivity)
  • Perfect Classifier : 긍정, 부정 모두 다 맞추는 위치로, Classification 성능이 우수하다고 봄. (x=0, y=1인 경우)

 

군집 분석(Clustering Analysis)

군집 분석의 종류

  • 여러 변수 값들로부터 n 개의 개체를 유사한 성격을 가지는 몇 개의 군집으로 집단화하고 형성된 군집들의 특성을 파악해 군집들 사이의 관계를 분석하는 다변량 분석 기법
군집 형태 군집간 거리 척도/연결법 (Linkage Method)
계층적 군집
(Hierarchical)
응집형(Agglomerative)
Bottom-Up
- 단일(최단) 연결법
- 완전(최장) 연결법
- 평균 연결법
- 중심 연결법
- Ward 연결법
분리형(Divisive)
Top-Down
다이아나 방법(DIANA Method)
분할적 군집
(Partitional)
프로토타입 기반
(Prototype-Based)
- k-중심 군집 : k-평균 군집, k-중앙값 군집, k-메도이드 군집
- 퍼지(Fuzzy) 군집
분포 기반
(Distribution-Based)
혼합 분포 군집
밀도 기반
(Density-Based)
- 중심 밀도 군집
- 격자 기반 군집

 

https://scikit-learn.org/stable/auto_examples/cluster/plot_cluster_comparison.html

 

계층적 군집(Hierarchical Clustering)

  • 가장 유사한 개체를 묶어 나가는 과정을 반복하여 원하는 개수의 군집을 형성하는 방법
  • 유사도 판단은 두 개체 간의 거리에 기반하므로 거리 측정에 대한 정의가 필요함,
    • 유클리드, 맨해튼, 민코프스키, 마할라노비스 등
  • 이상치에 민감함,
  • 사전에 군집 수 k를 설정할 필요가 없는 탐색적 모형
  • 군집을 형성하는 데 매 단계에서 지역적 최적화를 수행해 나가는 방법을 사용하므로 그 결과가 전역적인 최적해라고 볼 수 없음,
  • 병합적 방법에서 한 번 군집이 형성되면 군집에 속한 개체는 다른 군집으로 이동할 수 없음,
  • hclust() 함수, cluster 패키지의 agnes(), mclust() 함수 사용

 

응집형(병합) 군집 방법

방법 설명
A - 최단 연결법 단일 연결법이라고도 하며, 두 군집 사이의 거리를 군집에서 하나씩 관측 값을 뽑았을 때 나타날 수 있는 거리의 최솟값을 측정, 고립된 군집을 찾는데 중점을 둔 방식
B - 최장 연결법 완전 연결법이라고도 하며, 두 군집 사이의 거리를 군집에서 하나씩 관측 값을 뽑았을 때 나타날 수 있는 거리의 최대값을 측정
C - 중심 연결법 - 두 군집의 중심 간의 거리를 측정함.
- 두 군집이 결합될 때 새로운 군집의 평균은 가중평균을 통해 구해짐.
D - 와드 연결법 - 계층적 군집 내의 오차 제곱합에 기초하여 군집을 수행하는 군집 방법
- 크기가 비슷한 군집끼리 병합하는 경향이 있음.
E - 평균 연결법 모든 항목에 대한 거리 평균을 구하면서 군집화, 계산량이 많아질 수 있음.

 

계층적 군집의 거리

  • 수학적 거리 개념 
    • 유클리드
    • 맨해튼
    • 민코프스키
  • 통계적 거리 개념
    • 표준화
    • 마할라노비스

 

개념 설명
유클리드
(Euclidean)
- 두 점 사이의 가장 직관적이고 일반적인 거리의 개념
- 방향성이 고려되지 않음.
맨해튼
(Manhattan)
두 점의 각 성분별 차의 절대값 합
민코프스키
(Minkowski)
- 거리 차수와 함께 사용되며, 일반적으로 사용되는 거리 차수는 1, 2, ∞
- q=2 이면 Euclidean, q=1 이면 Manhattan Distance
표준화 거리 - 각 변수를 해당 변수의 표준편차로 척도 변환한 후에 유클리드 거리를 계산한 것으로 통계적
거리(Statistical Distance)라고도 함.
- 표준화를 하면 척도의 차이, 분산의 차이로 인한 왜곡을 피할 수 있음.
마할라노비스
(Mahalanobis)
변수의 표준화와 함께 변수 간의 상관성을 동시에 고려한 통계적 거리
dist 함수 - 거리 측정에 사용하는 함수
- 사용 가능한 거리 개념 : 유클리드, 맨해튼, 민코프스키, Maximum, Canberra, Binary
코사인(Cosine) 거리 - 두 벡터 사이의 사잇각을 계산해서 유사한 정도를 구하는 것
- 값이 1인 경우 유사도가 크며, -1인 경우 유사도가 매우 작음을 의미함.

 

  • 수학적 거리 개념의 종류

 

 

비계층적 군집(Non-Hierarchical Clustering)

분할적 군집 방법 : k-중심 군집 - k-means

  • 사전에 군집의 수 k를 정해 주어야 함. (k : Hyperparameter)
  • 군집수 k가 원데이터 구조에 적합하지 않으면 좋은 결과를 얻을 수 없음.
  • 알고리즘이 단순하며 빠르게 수행되어 계층적 군집보다 많은 양의 자료를 처리
  • k–means 군집은 잡음이나 이상값에 영향을 받기 쉬움.
  • k-means 분석 전에 이상값을 제거하는 것도 좋은 방법
  • 평균 대신 중앙값을 사용하는 k-medoids 군집을 사용할 수 있음.

 

절차
① 초기 군집의 중심으로 k개의 객체를 임의로 선택한다.
② 각 자료를 가장 가까운 군집의 중심에 할당한다.
③ 각 군집 내의 자료들의 평균을 계산하여 군집의 중심을 갱신한다.
④ 군집 중심의 변화가 거의 없을 때까지 ②, ③을 반복한다.

 

DBSCAN

  • 밀도 기반 클러스터링으로 점이 세밀하게 몰려 있어 밀도가 높은 부분을 클러스터링 함.
  • 어느 점을 기준으로 반경 내에 점이 n개 이상 있으면 하나의 군집으로 인식하는 방식
  • Gaussian 분포가 아닌 임의적 모양의 군집 분석에 적합함.
  • k 값을 정할 필요 없음.
  • Outlier에 의한 성능 하락을 완화할 수 있음.

 

혼합 분포 군집

  • 데이터가 봉우리가 2개인 분포, 도넛형태의 분포 등 복잡한 형태를 가진 분포의 경우 여러 분포를 확률적으로 선형 결합한 혼합 분포로 설명될 수 있음.
  • 데이터가 k개의 모수적 모형의 가중합으로 표현되는 모집단 모형에서 나왔다는 가정 하에, 추정된 k개의 모형 중 어느 모형으로부터 나왔을 확률이 높은지에 따라 군집 분류를 수행
  • 모수와 가중치 추정에 EM(Expectation Maximization) 알고리즘이 사용됨. 

 

EM(Expectation Maximization) 알고리즘

① 모수(평균, 분산, 혼합 계수)에 대해 임의의 초기값을 정함.
- 잠재변수(Latent Variable) : 어느 집단에 속하는지에 대한 정보를 갖는 변수
② E step : k개의 모형 군집에 대해 모수를 사용해 각 군집에 속할 사후 확률을 구함.
③ M step : 사후 확률을 이용해 최대 우도 추정으로 모수를 다시 추정하고, 이를 반복함.

 

군집화 평가 지수

실루엣 계수(Silhouette Coefficient)

  • 군집내 거리와 군집 간의 거리를 기준으로 군집 분할 성과를 측정하는 방식
  • 클러스터 안의 데이터들이 다른 클러스터와 비교해 얼마나 비슷한가를 나타내는 군집 평가
  • 실루엣 지표가 1에 가까울수록 군집화가 잘 되었다고 판단
  • 한 군집의 모든 개체가 한치도 떨어져 있지 않고 붙어있는 경우 실루엣 지표는 1이 됨.
  • 실루엣 지표가 0.5 보다 크면 결과가 타당한 것으로 평가

 

Dunn Index(DI)

  • DI = 군집과 군집 사이 거리 중 최솟값 / 군집 내 데이터들 거리 중 최댓값
  • 분자가 클 수록 군집 간 거리가 멀고, 분모가 작을 수록 군집 내 데이터가 모여 있음.
  • Dunn Index가 클수록 군집화가 잘 되었다고 평가

 

SOM(Self-Organizing Maps)

  • 자기 조직화 지도
  • 인공신경망의 한 종류로, 차원 축소와 군집화를 동시에 수행하는 기법
  • 비지도 학습(Unsupervised Learning)의 한 가지 방법
  • 고차원으로 표현된 데이터를 저차원으로 변환해서 보는데 유용함.
  • 입력층과 2차원의 격자 형태의 경쟁층(=출력층) 으로 이루어져 있음. (2개의 층으로 구성)

이미지 출처 : https://m.blog.naver.com/pmw9440/221588292503

 

SOM Process

- 단계 1 : SOM의 노드에 대한 연결 강도(Weight) 초기화
- 단계 2 : 입력 벡터와 경쟁층 노드 간의 거리 계산 및 입력벡터와 가까운 노드 선택 → 경쟁
- 단계 3 : 경쟁에서 선택된 노드와 이웃 노드의 가중치(연결 강도) 갱신 → 협력 및 적응 
- 단계 4 : 단계 2로 가서 반복
- 승자만이 출력을 내고, 승자와 그의 이웃만이 연결 강도를 수정하는 승자 독점 구조로 인해 경쟁층에는 승자 뉴런만 나타남.

 

SOM vs. 신경망 모형

  • 신경망 모형은 연속적인 Layer로 구성된 반면, SOM2차원의 그리드(격자)로 구성
  • 신경망 모형은 에러 수정을 학습 하는 반면 SOM경쟁 학습 실시
  • 신경망역전파 알고리즘이지만, SOM전방 패스를 사용해 속도가 매우 빠름.

 

연관 분석(Association Analysis)

  • 연관규칙(Association Rule) : 항목들 간의 ‘조건-결과’ 식으로 표현되는 유용한 패턴
  • 이러한 패턴 규칙을 발견해내는 것을 연관 분석이라 함.
  • 장바구니 분석이라고 함.
    • 미국 마트에서 기저귀를 사는 고객은 맥주를 동시에 구매한다는 연관 규칙을 알아낸 것에 기인함.

 

Apriori 알고리즘

  • 연관 규칙의 대표적 알고리즘으로 현재도 많이 사용됨.
  • 데이터들에 대한 발생 빈도를 기반으로 각 데이터 간의 연관 관계를 밝히는 방법
  • 데이터셋이 큰 경우 모든 후보 Itemset에 대해 하나하나 검사하는 것이 비효율적임.

 

FP Growth

  • Apriori 단점을 보완하기 위해 FP-Tree node, link 라는 특별한 자료 구조를 사용

 

장점

  • 조건반응(if-then)으로 표현되는 연관 분석의 결과를 이해하기 쉬움.
  • 강력한 비목적성 분석 기법이며, 분석 계산이 간편함.

 

단점

  • 분석 품목 수가 증가하면 분석 계산이 기하급수적으로 증가함.
  • 너무 세분화된 품목을 가지고 연관규칙을 찾으려면 의미 없는 분석 결과가 도출됨.
  • 상대적 거래량이 적으면 규칙 발견 시 제외되기 쉬움.

 

연관 규칙 측정 지표

규칙 표기 : A → B

  • if A then B
    • 예)  A가 팔리면 B가 같이 팔린다.

 

지지도(Support)

  • 전체 거래 항목 중 상품 A와 상품 B를 동시에 포함하여 거래하는 비율
  • 전체 거래 중 차지하는 비율을 통해 해당 연관 규칙이 얼마나 의미가 있는 것인지를 확인함.
  • 지지도 = P(A∩B) : A와 B가 동시에 포함된 거래 수 / 전체 거래 수

 

신뢰도(Confidence)

  • 상품 A를 포함하는 거래 중 A와 B가 동시에 거래되는 비율
  • 상품 A를 구매했을 때 상품 B를 구매할 확률이 어느 정도 되는지를 확인
  • 신뢰도 = P(B|A) = P(A∩B) / P(A) : A와 B가 동시에 포함된 거래 수 / A가 포함된 거래 수

 

향상도(Lift)

  • A가 주어지지 않았을 때 B의 확률 대비 A가 주어졌을 때 B의 확률 증가 비율
  • 품목B를 구매한 고객 대비 품목 A를 구매한 후 품목 B를 구매하는 고객에 대한 확률
  • 향상도 = P(B|A) / P(B) = P(A∩B) / P(A)*P(B)
    • = 상품 A의 거래 중 상품 B가 포함된 거래의 비율 / 전체 상품 거래 중 상품 B가 거래된 비율
    • = A와 B가 동시에 일어난 확률 / A, B가 독립된 사건일 때 A, B가 동시에 일어날 확률

 

향상도 해석

▲ 1보다 큰 수 - 향상도가 1보다 높아질수록 연관성이 높다고 할 수 있음.
- 향상도가 1보다 크면 이 규칙은 결과를 예측하는데 있어 우수하다는 것을 의미함.
- 향상도가 1보다 크면 서로 양의 관계로 품목 B를 구매 할 확률보다 품목 A를 구매한 후에 품목B를 구매할 확률이 더 높다는 것을 의미함.
1 품목 A와 B 사이에 아무런 상호 관계가 없음. (독립)
▼ 1보다 작은 수 향상도가 1보다 작으면 두 품목이 서로 음의 상관 관계임을 의미함.

 

728x90
그리드형(광고전용)
⚠️AdBlock이 감지되었습니다. 원할한 페이지 표시를 위해 AdBlock을 꺼주세요.⚠️
starrykss
starrykss
별의 공부 블로그 🧑🏻‍💻


📖 Contents 📖