제 1절 데이터 마이닝 개요
데이터 마이닝 : 데이터 베이스에서의 지식 발견
거대한 양의 데이터 속에서 쉽게 드러나지 않는 유용한 정보를 찾아내는 과정 (창문-도둑)
원천 데이터 기반으로 감춰진 지식, 기대못한 경향, 새로운 규칙 발견 → 의사결정의 유용한 정보 활용
= 지식추출, 정보수확, 정보 고고학, 데이터 패턴 프로세싱
1. 분류
새롭게 나타난 현상을 검토하여 기존의 분류, 정의된 집합에 배정하는 것
잘 정의된 분류기분과 선 분류 되어진 검증 집합에 의해 완성 → 다른 현상들 분류 할 수 있음
의사결정나무, memory-based reasoning, link analysis
2. 추정
연속된 변수 값을 추정, 주어진 입력 데이터를 사용하여 알려지지 않은 결과이 값을 추정
부모가 있는 어린이의 수, 가정구성원의 총 수입, 고객의 평생가치
신경망 모형
3. 예측
미래의 양상을 예측하거나 미래의 값을 추정하는 것, 정확성을 알 수 있는 방법은 기다리고 지켜보는 것
입력된 데이터의 성격에 따라 기술의 사용이 달라짐
장바구니 분석(연관분석), memory-based
reasoning, 의사결정나무, 신경망
4. 연관분석
같이 팔리는 물건과 같이 아이템의 연관성을 파악하는 분석
소매점 배열계획, 카탈로그 배열 및 교차판매, 공격적 판촉행사 등의 마케팅 계획
장바구니 분석 결과
5. 군집
이질적인 모집단을 동질성을 지닌 그룹 별로 세분화하는 것을 의미
군집은 선분류의 기준을 의존 하지 않음(분류와의 차이점)
데이터 마이닝, 모델링의 준비단계 → 고객 세분화
6. 기술
데이터가 가진 의미를 단순하게 기술하는 것, 설명하는 것, 설명에 대한 답을 찾아낼 수 있음
연구주제 제공, 장바구니 분석 규칙 기술
데이터 마이닝 수행 5단계
가. 목적정의
데이터 마이닝의 목적을 정의 하는 단계, 이해관계자가 모두 동의하고 이해함에 따라 가능, 전문가 참여
나. 데이터 준비
마이닝 수행에 필요한 데이터를 수집하는 단계, IT부서와 사전 협의 필요(접근 부하 문제)
데이터 정제를 통해 품질 보장, 보강작업 거쳐 데이터 양을 충분히 확보
다. 데이터 가공
모델링 목적에 따라 목적 변수를 정의하고 필요한 데이터를 데이터 마이닝 소프트웨어 적용하도록 가공
적절한 데이터 가공 및 충분한 CPU와 메모리, 디스크 공간 등 개발 환경의 구축이 선행
라. 데이터마이닝 기법의 적용
목적하는 정보를 추출, 기법은 1단계에서 미리 결정해야함, 데이터 분석 전문가의 전문성 필요
목적이 무엇이고, 어떤 데이터를 갖고 있고, 산출되는 정보가 무엇인가에 따른 적절한 소프트웨어 기법 선정
마. 검증
테스트 마케팅이나 과거 데이터 활용 (차이점 잘 구분해야함)
자동화 방안, IT 부서와의 협의 → 결과를 업무에 적용 → 보고서 작성을 통한 기대효과 보고
제 2절 분류 분석
분류분석 : 반응변수(종속변수)가 알려진 다변량 자료를 이용하여 모형 구축, 새로운 자료에 대한 예측, 분류 수행
- 반응변수가 범주형이면 새로운 자료에 대한 분류가 목적
- 반응변수가 연속형이면 그 값을 예측하는 것이 목적
로지스틱 회귀모형, 신경망모형, 의사결정나무모형, 앙상블모형, 규칙기반분류, 사례기반분류, 인접이웃분류모형
베이즈분류모형, 서포트벡터기계, 유전자 알고리즘 등등
1. 로지스틱 회귀모형
반응변수가 범주형
새로운 설명변수(예측변수) 값이 주어질 때 반응 변수의 각 범주에 속할 확률이 얼마 인지 추정(예측 모형)
추정 확률을 기준치에 따라 분류하는 목적으로 사용(분류모형)
모형의 적합을 통해 추정된 확률을 사후확률이라 부름
오즈(odds)관점에서 해석할 수 있는 장점 : 1단위 증가 할 때마다 성공의 오즈가 몇 배 증가하는 나타냄
1) 설명 변수가 한 개인 경우 회귀계수 부호에 따라 양수면 S자 또는 음수면 역S자 모양을 가진다.
2) 누적분포함수로 성공의 확률을 설명(추정) 할 수 있음
※ 프로빗 : 표준정규분포의 누적함수를 성공의 확률로 모형화한 유사한 모형
기준값에 따라서 집단을 나누게 됨
분류 기준값의 결정은 사전정보 또는 손실함수 사용하거나 정분류율, 민감도, 특이도 동시 고려함
glm()함수 : 예측 변수가 1개 일 때
glm(반응변수 ~ 설명변수, 데이터세트, family=binomial)
> a <- subset(iris, Species=="setosa" | Species
=="versicolor")
> a$Species<-factor(a$Species)
> b<-glm(Species~Sepal.Length, data=a, family = binomial)
> summary(b)
Call:
glm(formula = Species ~ Sepal.Length, family = binomial, data = a)
Deviance
Residuals:
Min 1Q
Median 3Q Max
-2.05501 -0.47395 -0.02829
0.39788 2.32915
Coefficients:
Estimate Std. Error z value
Pr(>|z|)
(Intercept) -27.831 5.434
-5.122 3.02e-07 ***
Sepal.Length 5.140 1.007
5.107 3.28e-07 ***
---
Signif. codes:
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion
parameter for binomial family taken to be 1)
Null
deviance: 138.629 on 99 degrees of freedom
Residual deviance: 64.211 on 98
degrees of freedom
AIC: 68.211
Number
of Fisher Scoring iterations: 6
→ p-value 값이 0의 가까움으로 매우 유의한 변수, Sepal.Length가 1단위 증가에 다른 오즈는 170배
> exp(coef(b)["Sepal.Length"])
Sepal.Length
170.7732
→ Null deviance 절편만 포함하는 모형의 완전 모형으로의 이탈도 귀무가설 성립에 따른 모형
→ Residual deviance 예측변수가 추가된 적합 모형의 이탈도
> coef(b)
(Intercept) Sepal.Length
-27.831451 5.140336
> confint(b, parm="Sepal.Length") # 회귀계수의 신뢰구간
Waiting for profiling to be
done...
2.5 % 97.5 %
3.421613 7.415508
> exp(confint(b,
parm="Sepal.Length")) #오즈의
신뢰구간
Waiting for profiling to be
done...
2.5 % 97.5 %
30.61878 1661.55385
> fitted(b)[c(1:5, 96:100)] #적합 결과 확인
1 2 3 4
0.16579367 0.06637193 0.02479825 0.01498061
5 96 97 98
0.10623680 0.81282396 0.81282396 0.98268360
99 100
0.16579367 0.81282396
> predict(b, newdata=a[c(1,50,51,100),],
type="response") #예측값
1 50 51
100
0.1657937 0.1062368 0.9997116 0.8128240
> cdplot(Species~Sepal.Length, data=a) #범주형 변수의 조건부 분포, 커짐에 따라 versicolor 확률 증가
다중회귀분석
> attach(mtcars)
> glm.vs <- glm(vs~mpg+am, data=mtcars, family = binomial) #vs는 반응변수, mpg, am은 예측변수
> summary(glm.vs)
Call:
glm(formula = vs ~ mpg + am, family = binomial, data = mtcars)
Deviance
Residuals:
Min 1Q
Median 3Q Max
-2.05888 -0.44544 -0.08765
0.33335 1.68405
Coefficients:
Estimate Std. Error z value
Pr(>|z|)
(Intercept) -12.7051 4.6252 -2.747
0.00602 **
mpg 0.6809 0.2524
2.698 0.00697 **
am -3.0073 1.5995
-1.880 0.06009 .
---
Signif. codes:
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion
parameter for binomial family taken to be 1)
Null
deviance: 43.860 on 31 degrees of freedom
Residual deviance: 20.646 on 29 degrees of freedom
AIC: 26.646
Number
of Fisher Scoring iterations: 6
→ mpg 한 단위 증가함에 vs가 1일 오즈는 1.98배 증가 98%증가
> exp(0.6809)
[1] 1.975655
→ am 한 단위 증가함에 vs가 1일 오즈는 0.05배 증가, mpg에 비해 95% 감소
> exp(-3.0073)
[1] 0.04942495
> anova(glm.vs, test="Chisq") #모형이 적합이 단계별로 이탈도의 감소량과 유의성 검정 결과 제시
Analysis of Deviance Table
Model:
binomial, link: logit
Response:
vs
Terms
added sequentially (first to last)
Df
Deviance Resid. Df Resid. Dev
Pr(>Chi)
NULL 31 43.860
mpg 1
18.327 30 25.533 1.861e-05 ***
am 1
4.887 29 20.646
0.02706 *
---
Signif. codes:
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> 1-pchisq(18.327, 1)
[1] 1.860515e-05
> 1-pchisq(4.887, 1)
[1] 0.02705967
2. 신경망 모형
인공신경망 동물의 뇌신경계 모방하여 분류, 예측 위해 만들어진 모형
입력은 스냅스에 해당, 신경돌기 처럼 개별신호의 가중도에 따라 가중되며, 활성함수는 인공신경망의 출력 계산
많은 데이터에 대한 학습을 거쳐 오차가 작아지는 방향으로 가중치 조정
단층신경망 = 퍼셉트론
입력층이 직접 출력되는, 은닉층이 없는 단층신경망
- z값에 대한 활성함수 적용되어 y(x)가 계산
- w : 가중치, 의사결정 경계의 방향 나타내는 모수
- : 절편, 의사결정 경계의 위치를 결정하는 모수
→ 가중치와 절편은 학습을 통해 오차제곱합이 최소가 되는 방향으로 갱신
→ 최종 목표값은 y=y(x) z에 대해 비선형 활성함수를 적용하여 구해짐
- 활성함수 종류
부호 또는 threshold함수, 계단함수, 시그모이드함수, Sofrmax함수, tanh함수, 가우스함수
nnet패키지의 nnet함수 이용
초기값을 정해지주지 않으면 결과가 항상 변경됨
시각화를 위한 plot.nnet() 함수 사용 - url소스 다운로드/3개 패키지 인스톨(clusterGeneration,
scales, reshape)
선의 굵기는 연결선의 가중치의 비례함
neuralnet패키지의
neuralrnet 함수 이용
역전파 알고리즘 통해 모형을 수행
일반 가중치는 다른 모든 공변량의 의존함으로 각 자료의 국소적인 기여도
특정 공변향의 효과가 선형적인지 여부 파악,
작은 분산은 선형효과 제시, 큰분산은 공간상 변화가 심한 비-선형적인 효과 나타냄
큰 분산을 가진 입력변수들로만 신경망 모형에 적합, 선형적인 것은 결과의 영향을 미치지 않음
compute( ) 함수 : 각 뉴런의 출력값 계산
confidence.interval() 함수 : 가중치들에 대한 신뢰구간
정오분류표 확인하기
다층신경망 = 다층퍼셉트론
은닉층을 가지고 있고 입력베터 x를 출력벡터y(x)로 맵핑하는 것
다층신경망의 가중치는 학습과정에서의 오차의 역전파 알고리즘을 통해 갱신
은닉수 결정에 따른 고려사항
- 다층신경망은 단층신경망에 비해 훈련이 어렵다
- 시그모이드 활성함수를 가지는 2개 층의 네트워크(1개 은닉층)는 임의의 의사결정 경계를 모형화 할수있다.
각 층의 노드 수의 결정에 따른 고려사항
- 출력층 노드의 수는 출력 범주의 수로 결정한다.
- 입력의 수는 입력 차원의 수로 결정한다
- 은닉층 노드의 수는 너무 적으면 네트워크가 복잡한 의사결정 경계를 만들수 없고,
너무 많으면 네트워크의 일반화가 어렵다.
장점
- 변수의 수가 많거나 입, 출력 변수 간에 복잡한 비선형 관계가 존재할 때 유용
- 잡음에 대해서도 민감하게 반응하지 않음
단점
- 결과에 대한 해석이 쉽지 않음
- 은닉층의 수와 은닉노드 수의 결정이 어려움
- 초기값에 따라 전역해가 아닌 지역해로 수렴 가능
- 모형이 복잡하면 훈련과정에 시간이 많이 소요 될 수 있음
3. 의사결정나무 모형
의사결정나무란?
전체 자료를 몇 개의 소집단으로 분류하거나 예측을 수행하는 분석방법
상위 → 하위로 나무 구조 형성하는데 매 단계마다 분류변수와 분류기준값의 선택이 중요
상위 노드 : 분류변수, 분류기준값이 기준에 의해 분기됨
하위 노드 : 노드내는 동질성이 노드간에는 이질성이 커지도록 선택
과대적합(과소적합) 되지 않도록 합리적인 기준에 의해 적당히 조절
개념
뿌리마디 : 맨위의 마디, 분류(예측)대상이 되는 모든 자료의 집단
상위마디 : 부모마디
하위마디 : 자식마디
최종마디 : 더 이상 분기되지 않는 마디
가지 분할 : 나무 가지를 생성하는 과정
가지치기 : 생성된 가지를 잘라내어 모형을 단순화 하는 과정
분류변수과 분류기준값 선택방법, 불확실성에 대한 측정지표 :
목표변수가 이산형 → 분류나무
- 카이제곱 통계량의 p-값 : 값이 작을 수록 노드 내의 이질성, 불확실성이 큼, 값이 커지는 방향 수행
- 지니계수, 엔트로피 지수 : 값이 클수록 노드 내의 이질성이 큼, 값이 작아지는 방향 수행
→ 지니계수가 클수록 이질적이며, 순수도가 낮다고 함
목표변수가 연속형 → 회귀나무
- F-통계량의 p-값 : 값이 클수록 오차의 변동에 비해 처리의 변동이 큼, 자식 노드간이 이질적임,
처리변동이 커지는 방향, p-값은 작아지는 방향으로 수행
- 분산의 감소량 : 최대화 되는 방향으로 가지분할 수행
분석과정
1단계 : 목표변수와 관계 있는 설명변수를 선택
2단계 : 분석목적과 자료구조에 따라 적절한 분리기준과 정지규칙을 정하여 의사결정나무 생성
3단계 : 부적절한 나뭇가지는 제거 : 가지치기
4단계 : 이익, 위험, 비용 등을 고려한 모형평가
5단계 : 분류 및 예측
알고리즘과 분류 기분의 선택법
|
이산형 목표변수
|
연속형 목표변수
|
CHAID(다지분할)
|
카이제곱 통계량
|
ANOVA F-통계량
|
CART(이진분할)
|
지니지수
|
분산감소량
|
C4.5
|
엔트로피지수
|
|
rpart 패키지의 rpart( ) 함수 이용
rpart.plot 이용하여 의사결정나무 모형 시각화 가능
party 패키지의 ctree() 함수 이용
장점
- 구조가 단순하고 해석이 용이
- 유용한 입력변수의 파악과 예측 변수간의 상호작용
- 비선형을 고려한 분석 수행
- 선형성, 정규성, 등분산성 등의 수학적 가정이 불필요한 비모수적 모형
단점
- 분류기준값의 경계선 근방의 자료값에 대해서는 오차가 클 수 있음(비연속성)
- 각 예측변수의 효과를 파악하기 어려움
- 새로운 자료에 대한 예측이 불안정
사용 예시
시장조사, 광고조사, 의학연구, 품질관리,
고객 타겟팅, 고객 신용점수화, 캠페인 반응 분석, 고객행동예측, 고객세분화
4. 앙상블 모형
여러 개의 분류모형에 의한 결과를 종합적으로 분류하여 정확도를 높이는 방법
적절한 표본추출법으로 데이터에서 여러 개 훈련용 데이터 집합을 만들고
각각의 데이터 집합에서 하나의 분류기를 만들어 앙상블하는 기법
1) 배깅
bootstrap aggregation의 준말
원 데이터 집합으로부터 크기가 같은 표본을 여러 번 단순 임의 복원추출하여
각 표본(붓스트랩 표본)에 대한 분류기를 생성 한 후 결과를 앙상블 하는 방법
반복추출방법 : 같은 데이터가 한 표본에 여러 번 추출 가능, 어떤 데이터는 아에 추출 안됨
adabag 패키지의 bagging 함수
> iris.bagging <- bagging(Species~., data=iris,
mfinal = 10)
> iris.bagging$importance
Petal.Length Petal.Width
Sepal.Length Sepal.Width
58.27875 41.72125 0.00000 0.00000
2) 부스팅
붓스트랩 표본을 구성하는 재표본 과정에서 각 자료에 동일한 확률 부여하지 않음
분류가 잘못된 데이터에 더 큰 가중을 주어 표본을 추출
표본 추출하여 분류기 생성 → 결과에 대한 데이터 추출 확률 조정 → 표본 재추출
아다부스팅 알고리즘
adabag 패키지의 boosting함수
> boo.adabag <- boosting(Species~., data=iris,
boos=TRUE, mfinal=10)
> boo.adabag$importance
Petal.Length Petal.Width
Sepal.Length Sepal.Width
57.975148 26.183796 3.559308
12.281748
→ 분류의 정확도가 높아짐, 오분류율(error.rpart) 0의 값을 냄
ada 패키지의 ada() 함수
- plot() : 오차와 일치도를 나타내는 카파 계수, 훈련용, 검증용 자료 둘다 보여줌
- varplot() : 변수의 중요도
- pairs() : 두 예측변수의 조합별, maxvar=옵션 통해 변수의 수 지정 가능
3) 랜덤포레스트
배깅의 개념과 feature(변수)의 임의선택(랜덤과정)을 결합
원자료에서 붓스트랩샘플 추출 → 샘플에 대한 트리 형성 → 최적분할이 아닌 예측변수 임의 추출
→ 추출된 변수 내에서 최적의 분할을 만들어 나감
새로운 자료에 대한 예측은 분류의 경우 다수결, 회귀의 경우는 평균을 취하는 방법
ploidy패키지에
randomForest() 함수
정오분류표과 함께 오류율에 대한 OOB(out-of-bag)추정치 제공하여 검증 실시
importance()와 varlmpPlot()로 변수의 중요성 확인 가능
- 변수로 분할이 일어날 때 불순도의 감소가 얼마나 일어나는지 나타내는 값(불순도 낮음, 순수도 증가)
- 지니계수는 노드의 불순도를 나타내는 값
- 회귀의 경우는 잔차제곱합
party패키기의 cforest()함수
5. 모형평가
분류분석 모형 평가 : 예측, 분류를 위해 구축된 모형이 임의의 모형보다 우수한 성과를 보이는지
고려된 서로 다른 모형 중 어느것이 가장 우수한지 등을 비교
데이터 마이닝 목적, 데이터 특성에 따라 가장 적합한 모형을 선택하기 위한 성과 평가 기준 필요
모형평가 기준
- 일반화의 가능성 : 같은 모집단 내의 다른 데이터에 적용해도 안정적인 결과를 제공하는 것
- 효율성 : 얼마나 효과적으로 구축되었는지, 적은 입력변수를 필요로 할수록 효율성 높음
- 예측과 분류의 정확성 : 모형의 정확성 측면 평가, 실제 문제를 적용했을 때 정확한 결과 내야함
전체 자료(원천데이터)
- 훈련용 자료
- 검증용 자료
: 모형의 과적합화 문제 해결하기 위한 단계, 잘못된 가설 2종 오류 발생 방지
- 홀드아웃방법 : 랜덤하게 두 분류로 분리 후 교차검증 실시(70%, 30%)
sample( ) 함수 사용
- 교차검증 : 반복적으로 성과 측정, 그 결과 평균한 것으로 분류분석 모형 평가 방법
k-fold 교차검증 : 전체 데이터를 사이즈가 동일한 k개 하부 집합 나누고 k를 검증자료로
나머지 k-1개를 훈련용 자료로 k번 반복 측정하고 각각이 평균 낸 값을 최종평가
- 붓스트랩 : 평가를 반복한다는 측면은 교차검증과 유사하나 훈련용 자료를 반복 재선정함
관측치를 한번 이상 훈련용 자료로 사용하는 복원 추출법에 기반함
0.632 붓스트랩 : d개의 관측치, 선정될 확률 1/d, d번 반복할 때 선정되지 않을 확률 (1-1/d)/d
d가 크다고 가정할 때의 확률은 e-1=0.368, 36.8% 관측치 훈련용 집합으로 선정불가
나머지 63.2%가 관측치 훈련자료로 사용된다, 전체양이 크지 않은 경우 적합
분류모형평가를 위한 범주형 변수에 사용되는 평가지표
1) 오분류표
목표변수의 실제범주와 모형에 의해 예측된 분류범주 사이의 관계
|
예측치 TRUE(p)
|
예측치 FALSE(n)
|
합계
|
실제값 TRUE(t)
|
TP
|
FN
|
P
|
실제값 FALSE(f)
|
FP
|
TN
|
N
|
합계
|
P'
|
N'
|
P+N
|
- 정분류율 : 전체관측치 중 실제값과 예측치가 일치하는 정도, 분포가 균형을 이룰 때 효과적이 평가지표
- 오분류율 : 전체 과측치 중 실제값과 예측치가 다른 정도, 1-accuracy
대부분의 분석은 대상이 소수 집단에 대한 예측 실패 비용이 다수집단에 대해 크다
→ 범주불균형의 문제 : 중요한 분류 범주만 다룸
- 민감도 : 실제값이 TRUE인 관측치 중 예측치가 적중한 정도
- 특이도 : 실제값이 FALSE인 관측치 중 예측치가 적중한 정도
- 정확도 : TRUE로 예측한 관측치 중 실제값이 TRUE인 정도
- 재현율 : 실제값이 TRUE인 관측치 중 예측치가 적중한 정도, 모형의 완정성을 평가함, 민감도와 동일
→ 정확도가 높아지면 재현율이 낮아지는 가능성이 높은 관계, 보완을 위해 필요한 F1,
- F1지표 : 정확도와 재현율의 조화평균, 같은 가중치 부여하여 평균하게
- 지표 : 베타는 양수로 베타 값만큼 재현율에 가중치를 주어 평균
재현율에 2배 가중치, 정확도에 2배 가중치
caret 패키지의
confusionMatrix() 함수 사용, e1071 명령어 사용
모형 중 어떤 모형이 더 정확한지 나타내줌
2) ROC그래프
레이더 이미지 분석의 성과 측정위해 개발
두 분류 분석 모형 비교 분석 결과를 가시화 가능, 밑부분 면적이 넓을 수록 좋은 모형(AUC=1)
x축 : FP Ratio (1-특이도)
y축 : 민감도
모델 A가 더 높은 분류 성과 가지는 것으로 평가
Epi 패키지의 ROC() 함수
면적의 넓이를 파악해서 뭐가 더 높은 성과인지 확인 가능
3) 이익도표와 향상도 곡선
이익 : 목표 범주에 속하는 개체들이 각 등급에 얼마나 분포하고 있는지 나타내는 값
이익도표 : 해당 등급에 따라 계산된 이익값을 누적으로 연결한 도표
→ 분류된 관측치가 각 등급별 얼마나 포함되는지 나타내는 도표
향상도곡선 : 랜덤모델과 비교하여 해당 모델의 성과가 얼마나 향상되었는지 등급별 파악하는 그래프
상위 등급은 향상도가 매우 크고 하위로 갈수록 향상도가 감소되어 예측력이 적절함 의미
등급에 상관없이 향상도에 차이가 없으면 예측력이 좋지 않음
ROCR 패키지의 ROC ( ) 함수 이용 : ROC 그래프와 향상도 곡선 함께 나타내줌
제 3절 군집 분석
군집분석 : 각 개체에 대해 관측된 여러 개의 변수 값 들로부터 n개의 개체를 유사한 성격으로 군집화하고
형성된 굽집들의 특성을 파악하여 군집들 사이의 관계를 분석하는 다변량분석기법
별도의 반응변수 필요없음, 개체간의 유사성에만 기초하여 군집 형성
이상값탐지에도 사용, 심리학, 사회학, 경영학, 생물학 등 다양한 분야 이용
계층적 군집, 분리군집, 밀도-기반군집, 모형-기반군집, 격자-기반군집, 커널-기반군집, SOM
1. 계층적 군집
가장 유사한 개체를 묶어 나가는 과정을 반복, 원하는 개수의 군집을 형성하는 방법
보통 계통도, 덴드로그램의 형태로 결과가 주어짐 → 각 개체는 하나의 군집에 포함
개체간의 유사성에 대한 다양한 정의 가능, 연결법에 따라 군집 결과가 다름
- 병합적 방법 : 작은 군집을 출발하여 군집을 병합
매 단계마다 그룹 쌍 간의 거리를 계산하여 가까운 순으로 병합 수행, 한 개가 남을 때 까지 계속
그룹 혹은 항목의 상대적 거리가 가까울수록 유사성이 높음
hclust{stats}와 {cluster} 패키지의 agnes(), mclust() 함수
dist()는 거리(또는 비유사성)행렬을
제공하는 함수
- method= 옵션에는 "euclidean",
"maximum", "manhattan", "binary",
"minkowski"
hclust(method= 옵션에는 "ward",
"single" , "complete", "average", "centroid"
)
cutree() : 군집 결과를 이용 트리의 높이나 그룹 수를 옵션으로 지정하여 원하는 그룹으로 나눔
agnes( metric=거리공식)
daisy( ) : 데이터 관측치 사이의 거리 계산, 자료의 형태가 수치 형일 필요 없음
- 분할적 방법 : 큰 군집을 분리해나감
{cluster} 패키지의 diana( ), mona( ) 함수
- 덴드로그램
구조적 관계를 쉽게 파악, 항목간의 거리, 군집간의 거리 알 수 있고 유사성 정도 파악 가능 → 견고성 해석가능
거리 측정 방법
1) 최단연결법, 단일연결법
두 군집 사이의 거리를 하나씩 관측값에서 나타나는 최소의 거리값
사슬 모향으로 생기고, 고립된 군집을 찾는데 중점을 둔 방벙
2) 최장연결법, 완전연결법
두 군집 사이의 거리를 하나씩 관측값에서 나타나는 최대의 거리값
같은 군집에 속하는 관측치는 알려진 최대 거리보다 짧고, 내부 응집성에 중점을 둔 방법
3) 중심연결법
두 군집의 중심간의 거리 측정, 결합시 새로운 군집의 평균은 가중 평균을 통해 구함
4) 평균연결법
모든 항목에 대한 거리 평균을 구하고 군집화 하기 때문에 계산량이 불필요하게 많음
5) 와드연결법
군집내의 오차제곱합에 기초하여 군집 수행 (거리 기반 아님)
두 군집이 합해지면 병합된 군집의 오차제곱합은 병합 이전의 각 군집보다 커지게 됨
그 증가향이 가장 작아지는 방향으로 군집을 형성해나가는 방법
크기가 비슷한 군집끼리 병합하는 경향
거리 기반 공식
- 수학적 거리 : 유클리드 거리, 맨하튼 또는 시가 거리, 민코우스키 거리,
- 통계적 거리 : 표준화 거리(변수 측정단위 표준화), 마할라노비스 거리(변수간 상관성 고려)
- 체비세프거리, 켄버라거리, 유사성측도 코사인거리, 상관계수 등
명목형 자료에 대한 거리 유사성 측도 : 단순일치계수, 자카드계수
순서형 자료에 대한 순위상관계수
유사성과 거리는 반대 개념임을 유의
특징
- 매 단계에서 지역적 최적화를 수행해 나가는 방법 사용 → 결과가 전역적인 최적해가 아님
- 병합적 방법에서 한번 군집이 형성되면 군집에 속한 개체는 다른 군집으로 이동할 수가 없음
- 중심연결법, 와드연결법 등에서는 군집의 크기에 가중을 두어 병합함으로 크기가 큰 군집과의 병합 유도
2. k-평균 군집
원하는 군집 수만큼(k개) 초기값 지정
각 개체(데이터)를 가까운 초기값에 할당하여 군집 형성
각 군집의 평균을 재계산하여 초기값갱신
갱신된 답에 대해 위의 할당화 과정을 반복하여 k개의 최종 군집 형성
알고리즘
1단계 : 초기 (군집의) 중심으로 k개의 객체를 임의로 선택한다.
2단계 : 각 자료를 가장 가까운 군집 중심에 할당한다.
군집의 중심점(평균)으로부터 오차제곱합이 최소가 되도록 각 자료를 할당하는 과정
3단계 : 각 군집 내의 자료들의 평균을 계산하여 군집의 중심을 갱신하다.
4단계 : 군집 중심의 변화가 거의 없을 때(또는 최대 반복수)까지 2,3단계 반복한다.
특징 및 장점
군집의 수는 미리 정해줘야 함
초기 중심값은 임의로 선택 또는 무작위로 선택, 멀리 떨어져 있어야함, 초기값에 따라 결과 변화 큼
탐욕적 알고리즘 : 군집 중심으로부터의 오차제곱합을 최소화 하는 방향으로 군집 형성(부분최적화)
안정된 군집 보장하나 최적을 보장하지 못함
단순하고 빨라서 계층적군집보다 많은 양의 자료 가능
거리 계산에 기반함으로 모든 변수가 연속적이야함
단점
- 잡음이나 이상값에 영향을 받음
- 볼록한 형태가 아닌 u형태 군집일 경우 성능이 떨어짐
이상값에 민감한 단점 보완
- k-중앙값 군집 pam( ) 함수 이용, {flexclust} 의 kcca( ) 함수
- 수행전에 탐색적 자료 분석을 통한 이상값 제거
kmeans( ) 함수 사용
nstart = 옵션 25 추천, 다중의 초기값에 대한 군집 수행
set.seed( ) 초기값에 따라 결과 변경을 없애기 위해 난수 고정
scale( ) 함수 : 단위 표준화
wssplot( ) : 군집수 설정 함수
k - 평균군집 : kmeans {stats}, kcca {flexclust}, cclust{flexclust} , cclust{cclust}, Kmeans
{amap}
k - 중앙값군집 : pam( ) 함수를 통해 수행할 수 있다.
pam은 partitioning around medoids
군집 수 결정 방법
- Nbclust 통한 적절한 군집 수에 대한 정보 얻음
- 군집수에 따른 집단 내 제곱합 그래프
3. 혼합 분포 군집
모형-기반 군집방법
데이터가 k개의 모수적모형(정규분포, 다변량 정규분포 가정)의 가중합으로 표현되는 모집단 모형으로부터
모수와 함께 가중치를 자료로 추정하는 방법 사용
추정된 k개의 모형 중 어느 모형으로부터 나왔을 확률이 높은지에 따라 군집의 분류
모수와 가중치의 추정(최대가능도추정)에는 EM알고리즘 사용
- (왼쪽) 3개 정도의 정규분포의 결합
- (오른쪽) 여러 개의 이변량 정규분포의 결합
→ 정규분포로 제한할 필요는 없음
EM알고리즘 (혼합분포에 대한 최대가능도추정)
편의상 모집단을 구성하는 각 집단의 분포는 정규분포를 따르고
각 자료가 M개중 어느 클래스에 나온지 안다면 모수 추정이 어렵지 않음
그러나 각 데이터가 어느 집단으로부터 나오는지 모르므로, 이 정보만 추정하면 최대 가능도 추정 문제 해결
잠재변수, 조건부분포(어느집단에 속할지에 대한)로부터 조건부 기댓값
특징
- k-평균군집의 절차와 유사하나 확률 분포를 도입하여 군집을 수행하는 모형-기반 군집 방법
- 군집을 몇 개의 모수로 표현 가능
- 서로 다른 크기가 모양의 군집을 찾을 수 있음
- 이상값에 대해 민감하여 사전조치 필요
- EM알고리즘 이용한 모수 추정 시, 데이터가 커지면 수렴하는데 시간이 오래 걸리고
군집의 크기가 너무 작으면 추정도가 떨어짐
4. SOM(Self-Organizing Maps)
자기조직화지도, 코호넨 맵
비지도 신경망으로 고차원의 데이터를 이해하기 쉬운 저차원의 뉴런으로 정렬하여 지도 형태 형상화
입력 변수의 위치를 그대로 보존, 입력변수가 가까이 있으면 지도상에도 가까운 위치 나타남
→ 입력 변수의 정보와 그들의 관계가 지도상에 그대로 나타남
2개의 인공신경망 층으로 구성
- 입력층 : 입력벡터를 받는 층
입력 변수의 개수와 동일하게 뉴런수가 존재
- 경쟁층 : 2차원 격차로 구성됨, 입력의 벡터의 특성에 따라 벡터가 한 점으로 클러스팅 되는 층
사용자가 미리 정해놓은 군집 수 만큼 뉴런수가 존재
지도(map) : 입력층의 자료는 학습을 통해 경쟁층에 정렬
완전연결 : 입력층에 있는 각각 뉴런은 경쟁층에 있는 각각 뉴런과 연결됨
프로토타입 벡터와의 유클리드 거리 계산하고 비교
BMU : 표본 벡터에 가장 가까운 프로토타입 벡터 선택
승자독점 학습 규칙에 따른 위상학적 이웃에 대한 연결 강도 조정
경쟁 학습으로 각각의 뉴런이 입력 벡터와 얼마나 가까운지 계산하여 연결강도를 반복적으로 재조정
승자 독식 구조로 인해 경쟁층에는 승자 뉴런만 나타남
SOM을 이용한 군집분석은 역전파 알고리즘과 달리,
단 하나의 전방패스 사용함으로 속도가 매우 바르고
실시간 학습처리가 가능
고차원의 데이터를 저차원의 지도 형태로 형상화, 시각적으로 이해하 쉽고 보존하기에 실제와 유사함
제 4절 연관 분석
1. 연관규칙
1) 연관규칙의 개념
항목들 간의 '조건-결과'식으로 표현되는 유용한패턴
이러한 패턴, 규칙을 발견하는 것이 연관 분석, 장바구니 분석
- 사용하는 데이터 형태 : 장바구니 데이터
- 특정고객, 즉 장바구니 하나에 해당하는 정보 : 트랜잭션
트랜잭션 사이의 연관성을 살펴보고 빈번히 나타나는 규칙을 찾아냄 (맥주-기저귀)
교차판매위해 효과적임
연관성 규칙의 조건과 반응 (if - then) : If - A then B
2) 연관규칙의 측정지표
인구통계학적 자료 불필요, 판매시점에서 기록된 거래와 품목의 정보 포함
얼마나 유의미한지 파악이 필요
- 지지도 : 전체 거래 중 A, B가 동시에 포함되는 거래 비율
연관규칙이 나왔을 때 작용성이 있는지 판단, 불필요한 분석 줄임
- 신뢰도 : 품목 A가 포함된 거래 중에서 품목 A, B를 동시에 포함하는 거래
연관성의 정도를 파악가능, A → B와 B→A는 다른의미
- 향상도 : 품목 B를 구매한 고객 대비 품목 A를 구매한 후 품목 B를 구매하는 고객에 대한 확률
연관규칙 A → B는 품목 A와 품목 B의 구매가 서로 관련 없음 향상도는 항상 1
1보다 크면 결과를 예측하는데 우수함, 양의 관계로 A를 구매하고 B를 구매할 확률 높음
1이면 서로 독립적인 관계
1보다 작으면 우연적 기회, 연관성이 없음, 음의 관계
지지도를 높은 값에서 낮은 값으로 낮추어 가면서 실행해야 효율적임
3) 연관 분석 절차
Apriori 알고리즘 : 최소지지도를 갖는 연관규칙을 찾는 방법
최소 지지도보다 큰 집합만을 대상으로 높은 지지도를 갖는 품목 집합을 찾는 것
① 최소 지지도 설정
② 개별 품목 중에서 최소 지지도를 넘는 모든 품목을 찾음
③ 2에서 찾은 개별 품목만을 이용하여 최소 지지도를 넘는 2가지 품목 집합을 찾음
④ 위의 두 절차에서 찾은 품목 집합을 결합하여 최소 지지도를 넘는 3가지 품목 집합 찾음
⑤ 반복적으로 수행하여 최소 지지도가 넘는 빈발품목 집합 찾음
4) 연관분석의 장점
- 탐색적인 기법 : 조건반응으로 표현되는 연관 분석의 결과를 이해하기 쉽다.
- 강력한 비목적성 분석기법 : 분석 방향이나 목적이 특별하게 없는 경우 목적변수가 없으므로 유용하다.
- 사용이 편리한 분석 데이터 형태 : 거래 내용에 대한 데이터 변환없이 그 자체로 이용하는 간단 자료 구조
- 계산이 용이성 : 분석을 위한 계산이 상당히 간단
5) 연관분석의 단점
- 상당한 수의 계산 과정 : 품목수가 증가하면 분석에 필요한 계산은 기하급수적으로 늘어남
- 적절한 품목의 결정 : 너무 세분화된 품목이면 연관규칙을 찾으면 의미없는 결과가 나올수 있음
- 품목의 비율 차이 : 상대적으로 거래량이 적은 품목은 당연히 적고, 규칙 발견시 제외 가능성
6) 순차 패턴
시간에 따른 구매 정보를 활용하여 이루어짐
순차적 패턴의 발견은 구매 순서가 고려되어 상품간의 연관성이 측정되고
유용한 연관규칙을 찾는 기법 → 구매 시점에 대한 정보가 필요