본문 바로가기
데이터분석/데이터분석준전문가(ADsP)

ADsP 대비 Part3.정형 데이터마이닝

by Bookohol 2019. 5. 16.

* 위 참고도서를 직접 구입해 개인적으로

공부한 내용을 공유합니다.

ADsP를 준비하시는 많은 비전공자 분들에게

도움이 되었으면 합니다 :)

* 이 포스팅은 PC 버전에 최적화 되어있습니다.

기출 빈도

* Part3 데이터 분석은

교재에 명시된 기출문제 위주

주요 R언어 문법 및 함수 사용법을 다루고자 합니다.

1. 데이터 마이닝 개요

'데이터마이닝' 이란 거대한 양의 데이터 속에서 쉽게 드러나지 않는 유용한 정보를 찾아내는 과정

(1) 분류(classfication) : 새롭게 나타난 현상을 검토하여 기존의 분류, 정의된 집합에 배정하는 것. 예) 의사결정나무

(2) 추정(Estimation) : 주어진 입력 데이터를 사용하여 알려지지 않는 결과의 값을 추정. 예) 신경망 모형

(3) 예측(Prediction) : 미래의 양상 또는 값을 추정 + 분류, 추정의 의미 포함함. 예) 의사결정나무, 신경망, 장바구니 분석 등

(4) 연관분석(Association) : '함께 팔리는 물건'과 같이 아이템의 연관성을 파악. 예) 장바구니 분석

(5) 군집(Clustering) : 분류와 달리 미리 정의된 기준이나 예시에 의해서가 아니라 데이터 자체의 유사성 및 이질성에 의해 군집화됨.

(6) 기술(Description) : 데이터가 암시하는 바에 대해 설명이 가능해야 함.

 

2. 분류 분석

1) 로지스틱 회귀모형

- 로지스틱 회귀 분석 : 반응형 변수가 범주형인 경우에 적용되는 회귀분석 모형 → 성공 또는 실패, 흡연 또는 비흡연과 같은 두 가지 범주로 나누어져 있을 때, 이항 분포를 따르는 경우 사용되는 통계 기법, 일반화 선형모델이라고도 함(Generalized linear model, GLM)

- 선호되는 이유 : 독립변수에 대해서 어떠한 가정도 필요로 하지 않고, 독립변수가 연속형 및 이산형 두 경우 모두 가능함. 범주형 변수일 때는 선형회귀모델을 그대로 적용할 수 없기에 로지스틱 회귀분석이 제안됨.

- 오즈비(odds ratio) = 성공률/실패율 = P/(1-P),

단 P가 성공률 → 성공 가능성이 높을 경우 1보다 큼, 실패 가능성이 높을 경우 1보다 작음

- glm 함수 사용 : glm(모형, data, family = "binominal"), 과산포가 있을 경우 quasibinominal 사용

* y= e(a+bx), x의 회귀계수는 eb 배 증가

예시) glm 후 summary에서 coefficients가 5가 나올경우 x가 1 증가할 때 e5 배 됨

* 최대우도추정법 : 관측값들이 가정된 모집단에서 하나의 표본으로 추출될 가능성이 가장 크게 되도록 하는 회귀계수 추정 방법. 로지스틱회귀분석에서 이 방법을 사용하여 회귀방정식을 추정함

- 다항 로지스틱 회귀분석 시, anova 함수를 통해 모형의 적합단계별로 이탈도와 감소량과 유의성 검정결과를 제시해줌 * null adeviane와 residual diviance 차이는 해당 변수가 모델에 포함 되었을 때 모델의 성능이 얼마나 나아지는지를 보여주는 수치임

2) 신경망 모형

(1) 인공신경망(Artificial neuron Network)

: 신경망 모형은 지도학습의 한 방법으로 이메일을 스팸과 스팸 아님으로 분류, 불만이 많은 고객과 만족하는 고객으로 분류할 때 사용.

- 신경망 모델 : 뉴런 간의 신호전달 시스템을 모사.

입력이 주어지면 신경망 모델의 화살표를 따라 hidden layer에 도달하고 이 hidden layer의 노드는 주어진 입력에 따라 활성화. 이는 다시 hidden layer 노드가 출력값을 계산해 그 결과를 출력층에 전달하는 방식임

- 역전파 알고리즘 : 맨 뒷단에 있는 에러를 앞으로 전달 시키는 형태. 입력데이터와 그 데이터와 연결된 레이블, 출력의 오차값을 알아야 학습이 가능했기 때문인데, hidden layer 부분에 출력 오차값을 얻어낼 수 없었음. 따라서 출력단에서 역으로 오차를 추정해서 가중치를 조정하는 방식.

* R에서 neuralnet( ), nnet( )함수 활용

(2) 신경망 학습은 가중치의 조절 작업

- input과 output이 있을 때, input을 input layer에 준 다음 모델의 output이 원하는 output과 같은지 확인한다. 값이 다를 경우 가중치를 조절한다.

- 여기서 f는 활성함수로 결과의 점위를 제한하고 계산의 편의성을 제공함. 시그모이드 함수, 부호 함수, 소프트 맥스 함수 등이 있음.

(3) 신경망의 hidden layer 및 은닉 노드 수를 정할 때 고려해야 할 사항

a. 다층신경망은 단층신경망에 비해 훈련이 어렵다

b. 노드가 많을수록 복잡성을 잡아내기 쉽지만, 과적합의 가능성도 높아진다.

c. 은닉층 노드가 너무 적으면 복잡한 의사결정 경계를 만들 수 없다.

d. 출력층 노드의 수는 출력 범주의 수로 결정, 입력의 수는 입력 차원의 수로 결정한다.

(4) 신경망 모형의 장단점

장점

단점

1. 변수의 수가 많거나 입력, 출력변수 간에 복잡한 비선형 관계에 유용

2. 잡음에 대해서 민감하게 반응하지 않음

3. 입력변수와 결과변수가 연속형이나 이산형인 경우 모두 처리가 가능

1. 결과에 대한 해석이 쉽지 않다

2. 최적의 모형을 도출하는 것이 상대적으로 어렵다

3. 데이터 정규화를 하지 않으면 지역해에 빠질 위험이 있음

4. 모형이 복잡하면 훈련 과정에 시간이 많이 소요

3) 의사결정나무 모형

(1) 의사결정나무 : 의사 결정 규칙을 나무 구조로 나타내어 전체 자료를 몇 개의 소집단으로 분류하거나 예측을 수행하는 분석방법

* 의사결정나무 분석 패키지

a. tree 패키지, rpart 패키지 : 엔트로피, 지니 지수를 기준으로 가지치기를 할 변수를 결정하기 때문에 상대적으로 연산 속도는 빠르지만 과적합화의 위험성이 존재. 그래서 두 패키지를 사용할 경우에는 가지치기 과정이 필요.

b. party패키지 : p-test를 거친 significance를 기준으로 가지치기를 할 변수를 결정하기 때문에 biased될 위험이 없어 별도로 가지키기 할 필요가 없다는 장점이 있음. 단, 입력 변수의 레벨이 31개까지로 제한

(2) 데이터 분할과 과대적합 : training/test set으로 나누어 사용. 과대적합이나 과소적합의 문제를 높이기 위해서는 다양한 데이터를 확보하고, 확보한 데이터로부터 더 다양한 특징을 찾아서 학습에 사용해야 함.

(3) 의사결정나무 구분

a. 분류나무 : 목표변수가 이산형인 경우, 분류변수와 분류 기준값의 선택방법으로 카이제곱통계량의 p값은 클수록, 지니지수와 엔트로피 지수는 그 값이 작은 방향으로 가지분할을 수행.

* 불확실성 측정 지표

- 지니 지수 : 불순도 혹은 다양성을 계산하는 방법

- 엔트로피 지수 : 지니 지수와 비슷한 개념이지만, log를 포함시킴으로써 정규화 하는 과정을 거침.

→ 두 지수 모두 작을 수록 좋음

b. 회귀나무 : 목표변수가 연속형인 경우, F통계량의 p값이 작아지는 방향으로, 분산의 감소량이 최대화되는 방향으로 가지분할이 수행됨.

* 정지규칙 : 더 이상 분리가 일어나지 않고 현재의 마디가 최종마디가 되도록하는 여러가지 규칙(자식마디의 초소 관측치 수, 카이제곱통계량, 지니 지수, 엔트로피 지수 등)

* 가지치기 : 최종 마디가 너무 많으면 모형이 과대적합된 상태로, 분류된 관측치의 비율, MSE 등을 고려하여 수준의 가지치기 규칙을 제공해야 함.

c. 의사결정나무 알고리즘 분류 및 기준변수의 선택법

과적합

해소방법

이산형

목표변수

연속형

목표변수

CHAID

카이제곱

통계량

ANOVA

통계량

CART

지니 지수

분산 감소량

C4.5

엔트로피 지수

 

(4) 의사결정나무 장단점

장점

단점

1. 구조가 단순하여 해석이 용이

2. 입력변수 파악과 예측변수 간의 상호작용 및 비선형성을 고려하여 분석이 가능

3. 수학적 가정이 불필요한 비모수적 모형

4. 계산 비용이 낮아 대규모의 데이터셋에서도 비교적 빠르게 연산이 가능

5. 수치형/범주형 변수를 모두 사용

1. 분류 기준값의 경계선 부근의 자료값에 대해서는 오차가 큼(비연속성)

2. 각 예측변수의 효과를 파악하기 어려움

3. 새로운 자료에 대한 예측이 불안정할 수 있음

* 의사결정나무는 상대적으로 모델이 불안정해서 Bootstrapping, bagging 등의 방법으로 사용. 고객 타겟팅, 고객들의 신용점수화, 캠페인 반응분석, 고객행동예측, 고객 세분화 등이 있음.

2. 분류 분석

4) 앙상블 모형

- 여러 개의 분류모형에 의한 결과를 종합해 분류의 정확도를 높이는 방법으로 과적합 모델에 사용하기 좋음

(1) 배깅(bagging) : bootstrap aggregation의 준말.

- train data를 모집단으로 생각하고 크기가 같은 표본을 여러 번 단순 임의 복원추출 → 각 bootstrap 표본에 대해 분류기를 생성한 후 → 그 결과를 앙상블

(2) 부스팅(booting) : 배깅과 유사하나 bootstrap 표

본을 구성하는 샘플링 과정에서 분류가 잘못된 데이터에 더 큰 가중치를 주어 표본을 추출하는 방식.

(3) 랜덤 포레스트(random forest) : 배깅에 랜덤과정을 추가한 방법. 의사결정나무의 과적합 문제를 해결하는 대안으로써 활용.

- 의사결정나무들이 모여서 그 결과를 결합하며, 각 의사결정나무를 만들 때 사용하는 변수들을 임의로 추출하는 방식

5) 서포트 벡터 머신(SVM, Support Vector Machine)

- 서로 다른 분류에 속한 데이터 간의 간격이 최대가 되는 선을 찾아 이를 기준으로 데이트를 분류

- Kerlab, e1070 패키지 활용하며 svm( )함수 사용

- 특히 패턴 인식 분야(안면 인식 등)에 활용됨

- Cost를 사용해 과적합(overfitting)정도를 조절

- SVM 모델의 장단점

장점

단점

1. 에러율이 낮다

2. 결과를 해석하기 용이

3. 선형/비선형

분류 가능

4. 적은 양의 데이터로도 학습 가능

1. 튜닝 파라미터

및 커널 선택에 민감

2. 이진 분류만

다룰 수 있음

6) 나이브 베이즈 분류 모형

- 베이즈 정리에 기반한 방법으로 사후확률은 사전확률을 통해 예측할 수 있다는데 기반한 분류 모형

- 스팸메일 분류 시, 고객 취향 맞춤 상품 추천 시 활용

- naiveBayes(모형, data) 함수 사용

* 베이즈 정리

- 이전 경험과 현재의 증거를 토대로 어떤 사건의 확률을 추론하는 과정

- 사전확률과 사후확률사이의 관계를 조건부 확률을 이용하여 계산

- 결과를 관측한 뒤 원인을 추론

* 나이브 베이즈 분류모형 장단점

장점

단점

1. 지도 학습 환경에서 매우 효율적으로 훈련

2. 분류 시 training data가 매우 적어도

사용가능

3. 분류가 multi-class에서 쉽고 빠르게

예측 가능

1. training data에는 없고, test data에 있는 범주에서는

확률이 0으로 나타나

정상적인 예측 불가

2. 확률적으로 독립적이라는 가정이 위반되는

경우 오류 발생

7) 모형 평가 (기출빈도 높음!)

- 적합한 모델을 선택하기 위한 기준

a. 일반화의 가능성 : 같은 모집단 내의 다른 데이터에 적용할 경우에도 안정적인 결과를 제공하는가?

b. 효율성 : 분류분석 모형이 얼마나 효과적으로 구축되었는지를 평가. 적은 입력변수를 필요로 할 수록 효율성이 높음

c. 예측과 분류의 정확성은 실제 문제에 적용했을 때의 정확성을 의미

(1) 홀드아웃(hold-out)방법

: 훈련용 자료(train data(70%))와 검증용 자료(test data(30%))를 랜덤하게 나누어 교차검정을 실시하는 방법. 검증용 자료의 결과는 모형에 영향을 미치지 않고 성과 측정만을 위해 사용

(2) 교차검증(cross-validation)

: 주어진 데이터를 가지고 반복적으로 성과를 측정하여 그 결과를 평균한 것. 대표적으로 k-fold 교차검증 있음.

(3) 붓스트랩

: 훈련용 자료를 반복 재선정, 복원추출법에 기반함. 전체 데이터 양이 크지 않은 경우 적합함

* 0.632 bootstrap : 무작위 표본추출을 반복할 때 평균적으로 초기 표본의 63.2%가 훈련용 집합에 포함되고, 36.8% 가 검증용 집합에 형성됨을 의미

(4) 오분류표(confusion matrix)

a. precision : True로 예측한 것 중 실제 True인 경우의 비율(TP/(TP+FP))

b. accuracy : 전체 예측에서 옳은 예측의 비율

(TP+TN)/(TP+FP+FN+TN)

c. recall(sensitivity) : 실제 True인 것들 중에 True로 예측된 비율 (TP/(TP+FN))

d. specificity : 실제 False인 것들 중에 False로 예측된 비율 (FP/(FP+TN))

e. FR rate : True가 아닌데 True로 예측된 비율

(1-specificity)

f. F1 : precision과 recall의 조화평균. 시스템 성능을 하나의 수치로 표현하기 위해 사용하는 점수로 0~1 사이의 값을 가진다.

(2*[Precision*Recall/(Precision+Recall])

(5) ROC(Receiver Operating Characteristic)

: 레이더 이미지 분석의 성과를 측정하기 위해 개발.

x축에는 FR ratio, y축에는 민감도를 나타내며 ROC그래프의 아래 면적이 넓을수록 좋은 모형으로 평가함.

AUC 값으로 평가. x값이 0이고 y값이 1이면 ACU =1

(6) 이익도표와 향상도

- 이익(gain) : 목표 범주에 속하는 개체들이 각 등급에 얼마나 분포하고 있는지를 나타내는 값

- 이익도표 : 분류분석 모형을 사용해 분류된 관측치가 각 등급별로 얼마나 포함되는지를 나타내는 도표

- 향상도 곡선(lift curve) : 랜덤모델과 비교하여 해당

모델의 성과가 얼마나 향상되었는지를 각 등급별로 파악. 향상도는 모델을 사용하여 얻은 결과와 모델을 사용하지 않고 얻은 결과 사이의 비율로 계산되는 측정값 또는 유효성. performance(data, "lift","rpp") 함수 사용

* 향상도 곡선을 읽는 방법

- X축은 모집단의 비율을 나타내며 가장 높은 확률부터 가장 낮은 확률 순서대로 표시

- Y축은 사용자의 모델이 무작위 모델보다 얼마나 더 좋은지를 보여주며 상위 등급에서 향상도가 매우 크고 하위 등급으로 갈수록 향상도가 감소함. 만약 등급에 관계없이 향상도 차이가 없으면 모형의 예측력이 좋지 않음.

3. 군집분석

- 유사한 성격을 가지는 데이터들 끼리 군집으로 집단화하고, 형성된 군집들의 특성을 파악해 군집들 간의 관계를 분석하는 다변량분석 기법

1) 계층적 군집

- 가장 유사한 개체를 묶어나가는 과정을 반복하여 원하는 개수의 군집을 형성하는 방법. 계통도, 덴드로그램의 형태로 결과가 주어지며 각 개체는 하나의 군집에만 속하게 됨.

- 군집을 형성하는 매 단계에서 지역적(local) 최적화를 수행해나가므로 그 결과가 전역적인(global) 최적해라고 볼 수 없음

* 군집방법

- 병합적 방법 : hclust, cluster 패키지의 agnes( ), mclust( )

a. 단일연결법 : 한 군집의 점과 다른 군집의 점 사이의 가장 짧은 거리를 측정. 고립된 군집을 찾는 데 중점

b. 완전연결법 : 두 군집 사이에 나타날 수 있는 거리의 최대값 측정. 군집들의 내부 응집성에 중점

c. 평균연결법 : 모든 항목에 대한 거리평균 계산. 불필요한 계산량이 많아 질 수 있음

d. 중심연결법 : 두 군집간의 중심거리 측정

e. 와드연결법 : 군집내의 오차제곱합에 기초하여 군집

- 분할적 방법 : cluster 패키지의 diana( ), mona( )

 

* 거리 측정법

(1) 수학적 거리

a. 유클리드 : 두 점 사이의 거리

b. 맨해튼 : 두 점 좌표간의 절대값 차이, 데이터 이상치사 존재할때 사용

c. 민코프스키

(2) 표준화 거리(통계적 거리) : 각 변수를 해당 변수의 표준편차로 척도 변환한 후에 유클리드 거리를 계산한 거리(관측단위의 영향을 없애기위함)

a. 마할라노비스 : 변수의 표준화와 변수 간의 상관성을 동시에 고려한 통계적 거리

2) 비계층적 군집

(1) k-means 군집

: 원하는 군집 수 k 값을 지정하고, 각 자료들에 가까운 초기값을 할당하여 군집을 형성 → 각 군집의 평균을 재계산하여 초기값을 갱신한 뒤 → 군집의 중심점(평균)으로 부터 오차제곱합이 최소가 되도록 자료를 재배치 → 이를 반복하여 k개의 최종 군집을 형성

* k-means 군집 장단점

장점

단점

1. 알고리즘이 단순하며 빠르게 수행되어 계층적 군집보다 많은 양의 자료를 처리

2. 거의 모든 형태의 데이터에 적용 가능

3. 주어진 데이터의 사전적 정보 없이도 의미 있는 자료 분석이 가능

1. 잡음이나 이상값에 영향을 받기 쉬움. 따라서 사전에 이상값을 제거하거나, 평균 대신 중앙값을 사용하는 k-medoids 군집을 사용

2. 계층적 군집과는 달리 사전에 군집의 수를 정해야 함. 적절한 군집 수 k를 정하기 위해 Nbclust 패키지 사용

3) 혼합분포군집

- k개의 군집을 초기에 형성한 뒤 → 각 자료들이 군집에 포함될 확률을 계산하여 → EM 알고리즘을 통해 추정할 파라미터 기대치를 최대화하여 파라미터를 조절

* EM(Expectation Maxmization) : 주어진 데이터를 가지고 알려지지 않은 분포 파라미터를 예측하고, 그 예측값을 데이터에 재적용하여 기대치를 최대화시키는 과정 반복을 통해 최적 파라미터를 구하는 알고리즘

* k-means vs 혼합분포군집

 

k-means

혼합분포군집

공통점

1. 모두 1개의 클러스터로 출발

2. 초기 군집 수를 정해줘야 함

3. 이상값 자료에 민감

차이점

클러스터 간의 중심거리

MSL(Maximum likelihood Estimation)로 거리 측정(다른 군집에도 속할 수 있다는 확률적 관점)

4) SOM(Self-Organizing Maps) : 자기조직화지도

- 인공 신경망의 한 종류로 차원축소와 군집화를 동시에 수행하는 기법. kohonen 패키지, som( ) 함수 사용

* SOM의 기능

a. 구조 탐색 : 데이터의 특징을 파악하여 유사 데이터를 군집화함. 고차원 데이터셋을 저차원인 맵(2D 그리드에 매핑)에 표현

b. 차원축소 및 시각화 : 차원을 축소하여 2차원 그리드에 매핑하여 인간이 시각적으로 인식할 수 있게 함

* SOM과 신경망 모형의 비교

- 신경망 모형은 연속적인 layer인 반면 SOM은 2차원 그리도로 구성

- 신경망 모형은 에러를 수정하는 학습을 하는 반면 SOM은 경쟁 학습을 시킴.

- 신경망 모형은 지도학습, SOM은 비지도 학습

4. 연관분석

1) 연관규칙

(1) 개념 : 항목들 간의 '조건-결과'식으로 표현되는 유용한 패턴. 이 규칙을 발견해내는 것을 연관분석이라 하며 흔히 장바구니 분석이라고도 함.

예) 기저귀를 사는 고객은 맥주를 동시에 구매

(2) 연관규칙의 측정 지표

a. 지지도 : 상품 A와 B를 동시에 구매할 확률

P(A∩B) = A와 B가 동시에 포함된 거래 수/전체 거래 수

b. 신뢰도 : 상품 A를 포함하는 거래 중 A와 B가 동시에 거래되는 확률로 상품 A를 구매했을 때 상품 B를 구매할 확률 P(A∩B)/P(A) =A와 B가 동시에 거래된 수/A가 포함된 거래 수

c. 향상도 : 상품A 거래 중 B가 포함된 거래의 비율/상품B가 거래된 비율 P(A∩B)/P(A)*P(B)=P(B|A)/P(B)

- 품목 A와 B사이에 아무런 상호 관계가 없으면, 독립인 경우 향상도는 1, 1보다 크거나 작은 경우 상관관계 존재함. 예) A와 B의 향상도가 1보다 클 경우 상품 B를 구입하는 비율보다 A를 구매한 후에 B를 구매할 확률이 더 높다는 것을 의미함

(3) 연관분석 절차

- Apriori 알고리즘 분석 절차 : 최소 지지도를 설정 → 개별 품목 중에서 최소 지지도를 넘는 모든 품목을 찾음 → 찾은 개별 품목만을 이용하여 최소 지지도를 넘는 품목집합들을 하나씩 늘려가며 찾음 → 반복 수행 후 최소 지지도가 넘는 빈발품목집합을 찾음

(4) 연관분석의 장단점

장점

단점

1. 조건반응으로 표현되어 연관분석의 결과를 이해하기 쉬움

2. 비목적성 분석 기법

3. 사용이 편리한 데이터 분석

4. 분석 계산이 간편

1. 분석 품목 수가 증가하면 분석계산이 기하급수적으로 증가함

2. 너무 세부화된 품목을 가지고 연관규칙을 찾으려면 의미 없는 분석 결과가 도출됨

3. 상대적으로 거래량이 적으면 규칙 발견 시 제외

 

댓글