진박사의 일상

ADsP 3과목 - 4 본문

프로그래밍/ADsP

ADsP 3과목 - 4

진박사. 2021. 8. 24. 14:39

정형 데이터 마이닝

 

1. 데이터마이닝

 1) 개요

대용량 데이터에서 의미있는 패턴을 파악하거나 예측하여 의사결정에 활용하는 방법. 통계분석과 달리 수리 알고리즘을 이용해 데이터로부터 의미있는 정보를 찾아내는 방법의 통칭.

 2) 종류

(1) 분류(Classification) : 새롭게 나타난 현상을 검토해 기존의 분류, 정의된 집합에 배정하는 것. 의사결정나무, memory-based reasoning 등이 있다.

(2) 추정(Estimation) : 연속된 변수의 값을 추정하는데 사용. 신경망 모형 등이 있다.

(3) 예측(Prediction) : 미래의 양상을 예측하거나 값을 추정함.(분류나 추정과 동일) 입력 데이터 성격에 따라 장바구니 분석, 의사결정나무, 신경망 등이 사용

(4) 연관분석(Association Analysis) : 아이템의 연관성을 파악하는 분야, 장바구니 분석등이 있다.

(5) 군집화(Clustering) : 미리 정의된 기준이나 예시가 아닌 레코드 자체가 지니고 있는 다른 레코드와의 유사성에 의해 그룹화되고 이질성에 의해 세분화 함.

(6) 기술(Description) : 데이터가 갖는 의미를 단순히 기술하는 것도 의미 파악만큼 중요

 3) 예시 : 인공지능, 의사결정나무, K-평균군집화, 연관분석, 회귀분석, 로짓분석, 최근접이웃, 시각화분석, 분류, 군집화, 포케스팅

 4) 분석 방법 분류

(1)지도학습 : 의사결정나무, 인공신경망(ANN), 일반화선형모형(GLM), 회귀분석, 로지스틱회귀분석, 사례기반추론, 최근접이웃법(KNN)

(2)비지도학습 : OLAP, 연관성규칙발견(장바구니분석), 군집분석, SOM

 5) 데이터마이닝 추진 5단계

(1)목적 설정(데이터마이닝 도입 목적 명확히) -> (2) 데이터 준비(충분한 양의 데이터를 준비하고, 데이터 정제를 통해 데이터 품질 확보하는 것까지 포함) -> (3) 데이터 가공(모델링 목적에 따라 데이터마이닝 기법 적용이 가능하도록 가공) -> (4) 데이터마이닝 기법 적용 -> (5) 검증(데이터마이닝으로 추출된 정보 검증, 최적의 모델을 선정)

 

 

2. 분류분석

1) 분류분석 vs 예측분석

공통점 : 레코드 속성값을 미리 알아맞히기

차이점 : 분류(범주형 속성의 값을 알아 맞히기), 예측(연속형 속성의 값을 알아맞히기)

 

2) 분류 기법 : 회귀분석, 로지스틱회귀분석, 의사결정나무, 베이지안 분류, 인공신경망, 지지도벡터기계(SVM), k-최근접 이숫(KNN), 규칙기반 분류와 사례기반 추론

 

3) 로지스틱 회귀분석

-반응변수가 범주형인 경우 적용되는 회귀분석모형, 새로운 설명변수가 주어질 때 반응변수의 각 범주에 속할 확률이 얼마인지(사후확률)를 추정해 기준치에 따라 분류하는 목적으로 활용.

-exp(β1) : 나머지 변수(x1~xk)가 주어질 때 x1이 한 단위 증가할 때마다 성공의 오즈(odds)가 몇 배 증가하는지 나타내는 값.

-오즈(odds) : 성공 또는 실패로 구성된다면 사건발생 확률/사건 발생하지 않을 확률(성공율/실패율) (0~)

-오즈비 : 서로 다른 레코드의 오즈의 비율 - 오즈비가 높은 쪽이 발생 확률이 높다

-선형회귀분석과 비교 :

선형회귀분석 - 종속변수(연속형변수), 계수추정법(최소제곱법), 모형검정(F-검정, T-검정)

로지스틱회귀분석 - 종속변수(0~1), 계수추정법(최대우도추정법/MLE), 모형검정(카이제곱 검정)

-최대우도추정법 : 관측값들이 가정된 모집단에서 하나의 표본으로 추출될 가능성이 가장 크게 되도록 하는 회귀계수 추정 방법. 표본 수가 커도 안정적.

-R코드 : glm(종속변수 ~ 독립변수1+...+독립변수n, family=binomial, data=데이터셋) / exp(Estimate) - odds 증가 배수

 

4)의사결정나무

분류함수를 의사 결정 규칙으로 이뤄진 나무모양으로 그리는 방법. 의사 결정 문제를 시각화해 해석 간편. 입력값에 대한 출력값 예측하는 모형.

-구성요소 : root node, child node, parent node, terminal node, internal node, branch, depth

-예측력과 해석력 : 방안을 예측할 땐 예측력에, 이유를 설명해야 할 땐 해석력에 치중.

-활용 : 데이터 세분화(비슷한 특정의 그룹으로 분할해 특성 발견), 분류(예측변수에 근거해 관측개체의 목표변수 범주를 등급으로 나눠 분류할 때 사용), 예측(자료에서 규칙을 찾아내 미래의 사건을 예측), 차원축소 및 변수선택(많은 수의 예측변수 중에서 목표변수에 큰 영향을 미치는 변수를 골라내고자 할 때 사용), 교호작용효과 파악(예측변수를 결합해 목표변수에 작용하는 규칙을 파악)

-장단점 : 장점(설명 용이, 계산 편리, 대용량 처리 빠름, robust, 분류 정확도가 높다) 단점(새로운 자료에 대한 과대적합 가능성+, 경계선 부근의 자료값에 대한 오차 큼, 설명벼누 간의 중요도 판단 어려움)

-분석과정 :

(1)성장 단계(분리규칙을 찾아 성장하고 정지규칙 만족시 중단) -> (2)가지치기(Pruning/ 오차를 크게할 위험이 이거나 부적절한 추론규칙을 가진 가지를 제거) -> (3) 타당성 평가(이익도표, 위험도표, 시험자료를 이용해 평가) -> (4) 해석 및 예측

-성장단계 : 분리규칙(불숨도 감소량을 가장 크게 하는 분할 규칙), 불순도(이산형 변수-카이제곱통계량의 p값, 지니지수, 엔트로피지수 등, 연속형 변수-분산분석의 F통계량, 분산의 감소량), 정지규칙(정지 기준을 깊이로 지정, 말단노드의 최소개수 지정)

-가지치기 : 너무 큰 모형은 과대적합, 작은 모형은 과소적합하므로 일반적으로 자료가 일정 수 이하일 때 분할을 정지하고 비용-복잡도 가지치기를 이용해 가지치기 한다.

-불순도 : 지수가 크면 순수도가 낮다고 봄

(1) 카이제곱통계량 - ((실제도수-기대도수)의 제곱/기대도수)의 합

(2) 지니지수 - 1-Σp^2

(3) 엔트로피지수 - -(Σp*log2(p))

-의사결정나무 알고리즘 : CART(범주형-지니지수, 연속형-분산감소량), C4.5(엔트로피지수 이용, 여러갈래 분리 가능), CHAID(카이제곱통계량 사용)

-R - party패키지 이용. rpart.plot()으로 시각화

 

5) 서포트 벡터 머신(SVM)

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

1) 장단점 : 장점(에러율이 낮다, 결과를 해석하기 용이), 단점(튜닝 파라미터 및 커널 선택에 민감, 이진 분류만 가능)

 

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

베이즈 정리에 기반한 방법으로 사후확률의 계산시 조건부 독립을 가정하여 계산을 단순화 한 방법. 사후확률이 큰 집단으로 새로운 데이터를 분류하게 된다. 조건이 비현실적인 측면이 있지만 계산이 간편해 널리 이용 중. (사후확률은 사전확률을 통해 예측할수 있다는 의미에 근거하여 분류모형 예측)

1) 장단점 :

장점(훈련 데이터가 적어도 지도학습에 효율적 훈련 가능. multi-class를 빠르고 쉽게 예측 가능)

단점(학습 데이터에는 없고 훈련 데이터에만 있는 범주에서는 확률이 0이 나와 정상적 예측이 불가능함(zero frequency) -> 해결방안(각 분자에 +1), 서로 확률적으로 독립이라는 가정에 위반될 경우 오류 발생 가능)

 

7) K-NN(K-최근접이웃)

새로운 데이터에 대해 이와 가장 유사한(거리가 가까운) K개의 과거 자료의 결과를 이용해 다수결로 분류. 반응변수가 범주형인 경우에는 분류로, 연속형인 경우에는 회귀의 목적으로 사용 가능. 새로운 데이터가 들어왔을 때 기존 데이터 사이의 거리를 측정해서 이웃을 뽑기 떄문에 게으른 모델(Lazy model) 또는 사례기반학습이라고 한다. 데이터 지역 구조에 민감한 단점이 있다.

 

3. 앙상블 분석

여러 개의 분류 모형에 의한 결과를 종합하여 분류의 정확도를 높이는 방법. 다중 모델 조합, 분류기 조합이 있다.

앙상블 모형이 단일 분류기보다 더 좋은 예측력을 갖기 위한 조건 : (1) 각각의 분류기는 상호 독립적, (2) 

1)앙상블 기법 종류

-(1) 배깅(bagging)

각 bootstrap(주어진 자료에서 동일한 크기의 표본을 랜덤 복원추출해 뽑은 자료)에 예측모형을 만든 후 결합하여 최종 예측 모형을 만드는 방법. voting은 여러개 모형으로부터 산출된 결과를 다수결에 의해 최종 결과를 선정하는 과정. train data를 모집단으로 생각해 평균예측모델을 구하기 때문에 분산을 줄이고 예측력 향상. overfitting에 좋다.

-(2) 부스팅(boosting)

배깅과 유사하지만 bootstrap 표본을 샘플링할 때 자료에 동일한 확률을 부여하는게 아니라 분류가 잘못된 데이터에 더 큰 가중치(가중치 합은 1)를 주고 표본을 추출한다. Adaboosting은 가장 많이 사용되는 부스팅 알고리즘.

-(3) 랜덤포레스트(random forest)

의사결정나무의 특징인 분산이 크다는 점을 고려해 배깅과 부스팅보다 더 많은 무작위성을 주어 약한 학습기들을 생성한 훼 이를 선형결합하여 최종학습기를 만드는 방법. 해석이 어렵다는 단점이 있지만 예측력이 매우 높음.

 

 

4. 분류 모형평가(성과분석)

1) 모형 평가의 기준 : 일반화의 가능성, 효율성, 예측/분류의 정확성은 실제 문제에 적용했을 때의 정확성

2) 데이터 분할 : 구축용(훈련데이터, 50%), 검정용(검증데이터, 30%), 시험용(테스트데이터, 20%)

데이터양이 충분하지 않을 경우 : 홀드아웃(랜덤하게 분리 일반적으로 학습:검증=7:3), 교차확인(교차검증) 방법(k-fold), 부트스트랩 방법

 

3) 오분류에 대한 추정치(*****)

오분류표 - TP(실제값=예측값=True인 빈도), TN(실제값=예측값=False인 빈도), FP(실제값=False, 예측값=True), FN(실제값=True, 예측값=False)

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

(1) Precision(정확도) - TP/(TP+FP) : Positive로 예측된 것 중 실제로 Positive인 비율

(2) Accuracy(정분류율) - (TP+TN)/(TP+TN+FP+FN) : 전체 예측 중 옳은 예측의 비율 <-> 오분류율(Error rate)=1-Accuracy

(3) Recall(재현율) = Sensitivity(민감도) - TP/(TP+FN) : 실제로 Positive인 것 중에 예측을 맞춘 비율

(4) Specificity(특이도) - TN/(FP+TN) : 실제로 Negative인 것 중 예측을 맞춘 비율 <-> FP Rate(False Alarm Rate)

(5) F1 Score - 2*(Precision*Recall)/(Precision+Recall) : Precision과 Recall의 조화평균. 시스템성능을 하나의 수치로 표현하기 위해 사용되는 점수로 0~1 사잇값을 가짐.

(6) Kappa - Accuracy-P(e)/(1-P(e)) : 코헨의 카파는 두 평가자의 평가가 얼마나 일치하는지 평가하는 값(0~1)

 

4) ROCR 패키지(ROC Curve, AUROC)(***)

(1) ROC Curve : 가로축을 FPR(1-Specificity), 세로축을 TPR(Sensivitivty)으로 시각화한 그래프.

2진 분류의 모형 성능을 평가하기 위해 많이 사용되는 척도, 그래프가 왼쪽  상단에 가깝게 그려질수록 올바르게 예측한 비율이 높고 잘못 예측한 비율은 낮다는 의미. ROC곡선 아래의 면적은 AUROC라 하고 값이 클수록 모형의 성능이 좋다.

 

5) 이익도표와 향상도(**)

(1) 이익도표 : 분류 모형의 성능을 평가하기 위한 척도로, 분류된 관측치에 대해 얼마나 예측이 잘 이루어졌는지를 나타내기 위해 임의로 나눈 각 등급별로 반응 검출율, 반응률, 리프트 등의 정보를 산출해 나타낸 도표.

만드는 순서 - (1) 관측치에 대한 예측확률 내림차순 정렬 -> (2) 데이터를 10개 구간으로 나누고 구간의 반응율을 산출 -> (3) 기본향상도에 비해 반응율이 몇배 높은지 계산(=Lift : 반응률/기본향상도)

상위 등급에서 더 높은 반응률을 보이는 것이 좋은 모형(Lift가 빠른 속도로 감소해야 함)

(2) 향상도 곡선 : 등급별로 향상도가 급격하게 변동할수록 좋은 모형.

 

 

5. 인공 신경망(ANN) 분석

(대충 아는 파트니까 패스...) 역전파알고리즘, 가중치 조정, 활성화함수(sigmoid, softmax, relu), 학습률, 은닉층, 과대적합 등

 

 

6. 군집분석

각 개체의 유사성을 측정해 유사성이 높은 대상 집단을 분류하고, 유사성이 다른 객체간의 상이성을 규명하는 분석 방법. 크게 계층적 군집과 분할적 군집으로 나뉨.

 

1) 거리(유사성/근접성)

-연속형 변수일 때

(1) 민크프스키 거리 - [Σ|x-y|^m]^(1/m) - m=1이면 맨허튼거리, 2이면 유클리드 거리(직관적인 거리) - 수학적 거리

(2) 맨허튼 거리 - Σ|x-y|  (3) 유클리드 거리 - root(Σ|x-y|^2)

(4) 체비셰프 거리 = max|x-y|  (5) 캔버라 거리 = Σ|x-y|/(x+y)

(6) 마할라노비스 거리 : 통계적 개념이 포함된 거리. 변수들의 산포를 고려해 표준화한 거리. 두 벡터 사이의 거리를 산포하는 의미인 표본공분산으로 나누어주어야 하며 그룹에 대한 사전 지식 없니는 표본공분산을 사용할수 없어 사용x

-범주형 변수일 때

(7) 자카드 거리 : 1-J(자카드 계수) : 자카드 계수 J(A,B) = |A∪B|-|A∩B|/|A∪B|

(8) 코사인 거리 : 1-(코사인 유사도) : 코사인 유사도(A,B벡터 내적의 코사인 값), 문서를 유사도 기준으로 분류/그루핑할 때 유용하게 사용

 

2) 계층적 군집 방법

(1) 단일(최단)연결법(single linkage) : 군집과 군집/데이터 사이의 거리 계산 시 최단거리로 계산해 거리행렬 수정. 사슬 모양이 생길수 있음. 고립된 군집을 찾는데 중점.

(2) 완전(최장)연결법(complete linkage) : 군집과 군집/데이터 사이의 거리 계산 시 최장거리로 계산해 거리행렬 수정. 군집의 내부 응집성에 중점.

(3) 평균연결법 : 군집과 군집/데이터 사이의 거리 계산 시 평균거리로 계산해 거리행렬 수정. 계산량이 불필요하게 많음

(4) 중심연결법(centroid) : 두 군집의 중심간 거리를 측정. 군집이 결합할 때 새로운 군집의 평균은 가중평균으로 계산

(5) 와드연결법(ward linkage) : 군집 내 오차제곱합에 기초하여 군집 수행.

-군집화 단계 : (1)거리행렬을 기준으로 덴드로그램 그리기 -> (2) 덴드로그램 최상단부터 세로축의 개수에 따라 가로선을 그어 군집 개수 선택 -> (3) 각 객체들의 구성을 고려해 적절한 군집수 선정.

-병합적 방법 함수 : hclust, cluster 패키지의 agnes(), mclust() / 분할적 방법 함수 : cluster 패키지의 diana(), mona()

 

3) 비계층적 군집 방법

(1) K-평균군집(***) : 주어진 데이터를 k개의 군집으로 묶는 알고리즘

-과정 : (1) k(원하는 군집 개수)개의 seed를 초기 군집 중심(centroid)으로 임의 선택. -> (2) 각 자료를 가장 가까운 군집 중심에 할당.(군집의 중심점으로부터 오차제곱합이 최소가 되도록 자료 할당 -> (3) 군집 내 자료의 평균을 계산해 centroid 갱신 -> (4) 변화가 없어질 때까지 (2), (3) 반복

- 장점(**) : 알고리즘이 단순하고 빠르게 수행되어 계층적 군집보다 많은 양 처리 가능, 거의 모든 형태의 데이터에 적용이 가능(연속형 변수), 내부 구조 사전 정보 없이 분석 가능

- 단점(**) : 잡음이나 이상값에 영향을 쉽게 받음(-> 평균 대신 중앙값을 사용하는 k-medoids 군집을 사용해 해결), 사전에 군집 수를 정해주어야 함(k에 영향을 많이 받음), 초기 중심값 선정에 따라 결과가 달라질 수 있음.

 

4) 군집화 확인 척도

(1) Dumm Index = (군집과 군집 사이 거리 중 최솟값)/(군집 내 데이터들 거리 중 최댓값) -> 클수록 군집화 잘됨

(2) 실루엣 지표(**) = 보통 0.5 이상이면 군집 결과 타당하다고 평가. 1에 가까울수록 군집화 잘 됨

 

5) 혼합분포군집(*)

모형기반 군집방법으로 k개의 모수적 모형의 가중합으로 표현되는 모집단 모형으로 나왔다는 가정하에서 모수와 함께 가중치를 자료로부터 추정하는 방법을 사용. k개의 각 모형은 군집을 의미하며 k개의 모형 중 어느 모형으로부터 나왔을 확률이 높은지에 따라 군집이 분류. EM 알고리즘이 사용.

-진행과정 : E-step((1) 임의의 파라미터 정함 -> (2) Z 기대치 계산) -> M-Step((3) Z의 기대치를 이용해 파라미터 추정) -> (4)Likelihood가 최대라면 파라미터 추정값 도출 / 아니라면 추정된 파라미터를 (2)에 대입

-특징 : 확률분포를 도입하여 군집 수행, 이상치 자료에 민감하므로 조치 필요

 

6) SOM(Self-Organizing Maps, 자기조직화지도 / 코호넨맵)(*)

- 개요 : 비지도 신경망으로 고차원의 데이터를 이해하기 쉬운 저차원의 뉴런으로 정렬하여 지도의 형태로 형상화.(입력변수의 위치 관계를 그대로 보존함) 차원축소와 군집화, 시각화를 동시에 수행하는 기법.

- 구성 :

(1) 입력층 : 입력변수와 동일한 수의 뉴런이 존재. 경쟁층에 정렬되어 맵이 됨. 경쟁층의 뉴런과는 완전연결.

(2) 경쟁층 : 경쟁학습으로 각 뉴런이 입력벡터와 얼마나 가까운가를 계산하여 연결강도를 반복적으로 재조정하여 학습.

- 특징 : 지도 형태로 형상화되어 시각적 이해 쉬움. 역전파를 하지 않아속도가  빨라 실시간 학습처리를 할 수 있음.

- 신경망 모형과 비교(**) : 신경망 모형은 연속적인 layer, SOM은 2차원 그리드 / 신경망 모형은 에러 수정, SOM은 경쟁학습 / 신경망은 지도학습, SOM은 비지도학습

 

7)밀도기반군집

주변 밀도가 높은 각 데이터가 서로 가까이 위치하면 동일한 군집으로 묶음. 임의 형태의 군집을 찾는데 장점이 있음. 대표적인 알고리즘은 DBSCAN(eps와 minPts 2개의 파라미터를 설정)

 

 

7. 연관분석(***)

1) 연관규칙분석 개념 : 장바구니분석 또는 서열분석으로 불림. 'A하면 B한다'

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

-(1) 지지도(Support) : 전체 거래 항목 중 A와 B를 동시에 포함하는 거래의 비율 = P(A∩B) = A∩B/전체

-(2) 신뢰도(Confidence) : A를 포함한 거래 중 A와 B가 동시에 포함되는 거래의 비율 = support(A,B)/P(A)

-(3) 향상도(Lift) : A의 거래 중 B가 포함된 거래 비율/전체 상품 중 B가 거래된 비율 = P(B|A)/P(B) = Conf(A,B)/P(B)

향상도가 1이면 A와 B의 관계는 독립, 1보다 크면 B를 구매할 확률보다 A를 사고 B를 살 확률이 높다는 것을 의미. 음수면 음의 상관 관계.

3) 절차

Apriori 알고리즘(데이터 발생 빈도를 기반으로 연관관계를 밝히는 방법)

(1) 최소 지지도 설정 -> (2) 개별 품목 중 최소 지지도 넘는 품목 찾기 -> (3) 2에서 찾은 개별 품목을 이용해 최소 지지도 넘는 두가지 품목 집합 찾기 -> (4) 3처럼 반복하며 최소 지지도가 넘는 빈발품목의 집합을 찾아냄

4) 장점 : 조건반응으로 표현되는 연관 분석 겨로가 이해 쉬움, 강력한 비목적성 분석 기법, 사용이 편리한 데이터 분석, 분석 계산이 간편

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

6) 순차패턴 : 동시에 구매될 가능성이 큰 상품군을 찾아내는 연관성분석에 시간 개념을 포함시켜 순차 구매 가능성이 큰 상품군을 찾아내는 것.

7) FP-Growth 알고리즘 : 후보 빈발항목집합을 생성하지 않고 FP-Tree를 만들어 분할정복 방식을 통해 Apriori보다 빠르게 빈발항목집합을 추출할 수 있는 방법. Apriori의 약점을 보완.

 

'프로그래밍 > ADsP' 카테고리의 다른 글

ADsP 3과목 - 3  (0) 2021.08.22
ADsP 3과목 - 2  (0) 2021.08.10
ADsP 3과목 - 1  (0) 2021.08.08
ADsP 2과목 정리(마지막)  (0) 2021.08.06
[TIL] 21.08.03 - ADsP 공부  (0) 2021.08.03