데이터 마이닝을 알아보자!
데이터 마이닝
: 기존 통계와 달리 대용량 데이터베이스 시스템
에서 데이터들
간의 의미있는 패턴
을 파악
하거나 예측
하여 의사결정에 활용
CRM
의 발전으로 성장데이터 마이닝 방법론
목적
예측
해석
종류
데이터 마이닝 절차
SAS
에서 사용하고 있는 SEMMA 방법
SPSS, 테라데이타, 다임러, NCR
등에서 개발한 CRISP-DM
대용량 데이터
에서 의미있는 패턴
을 파악
하거나 예측
하여 의사결정
에 활용하는 방법통계분석
과의 차이점
통계분석
: 가설
이나 가정
에 따른 분석이나 검증데이터 마이닝
: 다양한 수리 알고리즘을 이용해 데이터베이스
의 데이터
로부터 의미있는 정보
를 찾아
내는 방법종류
정보를 찾는 방법론에 따른 종류 | 분석대상, 활용목적, 표현방법에 따른 분류 |
---|---|
-인공지능(Artificial Intelligence) -의사결정나무(Decision Tree) -K-평균 군집(K-means Clustering) -연관분석(Association Rule) -회귀분석(Regression) -로짓분석(Logit Analysis) -최근접이웃법(k-Nearest Neighbor) | -시각화분석(Visualization Analysis) -분류(Classification) -군집화(Clustering) -예측(Forecasting) |
사용분야
예측
기존 환자
가 응급실에 왔을 때 어떤 조치를 먼저 해야 하는지 결정고객 데이터
를 이용해 해당 고객의 우량/불량
을 예측
해 대출적격 여부 판단입국자의 이력
과 데이터를 이용해 관세물품 반입 여부 예측
데이터 마이닝
의 최근 환경
데이터 마이닝 도구
가 다양
하고 체계화
되어 환경
에 적합한 제품
을 선택해 활용 가능알고리즘
에 대한 깊은 이해가 없어도 분석에 큰 어려움X
분석 결과
의 품질
은 분석가의 경험
과 역량
에 따라 차이가 나므로 분석 과제의 복잡성
이나 중요도
가 높으면 전문가
에게 의뢰
국내
에서 데이터 마이닝이 적용된 시기는 1990년대 중반
2000년대
에 비즈니스 관점
에서 데이터 마이닝이 CRM의 중요한 요소
로 부각통계학 전문가
와 대기업
위주로 진행Supervised Learning(지도학습) | Unsupervised Learning(비지도학습) |
---|---|
-의사결정나무(Decision Tree) -인공신경망(Artificial Neural Network, ANN) -일반화 선형 모형(Generalized Linear Model, GLM) -선형 회귀분석(Linear Regression Analysis) -로지스틱 회귀분석(Logistic Regression Analysis) -사례기반 추론(Case-Based Reasoning) -최근접 이웃(k-Nearest Neighbor,kNN) | -OLAP(On-Line Analytical Processing) -연관성 규칙(Association Rule Discovery, Market Basket) -군집분석(k-Means Clustering) -SOM(Self Organizing Map) |
*판별분석(Discriminant Anlysis)
: 두 개 이상
의 모집단
에서 추출된 표본들이 지니고 있는 정보를 이용해 이 표본들이 어느 모집단
에서 추출된 것
인지를 결정해줄 수 있는 기준
을 찾는 분석
1단계
: 목적 설정
데이터 마이닝
을 통해 무엇
을 왜
하는지 명확한 목적(이해관계자 모두 동의하고 이해할 수 있는)
설정전문가
가 참여해 목적
에 따라 사용할 모델
과 필요 데이터
정의2단계
: 데이터 준비
다양한 데이터
활용IT부서
와 사전에 협의하고 일정을 조율해 데이터 접근 부하
에 유의운영에 지장이 없도록
데이터 준비
데이터 정제
를 통해 데이터의 품질
을 보장하고, 필요시 데이터를 보강
하여 충분한 양
의 데이터 확보
3단계
: 가공
모델링 목적
에 따라 목적 변수(y)
정의데이터
를 데이터 마이닝 소프트웨어
에 적용할 수 있는 형식으로 가공
4단계
: 기법 적용
1단계
에서 명확한 목적
에 맞게 데이터 마이닝 기법
을 적용하여 정보 추출
5단계
: 검증
정보 검증
테스트 데이터
와 과거 데이터
를 활용해 최적의 모델
선정검증이 완료
되면 IT부서
와 협의해 상시 데이터 마이닝 결과
를 업무에 적용
하고, 보고서를 작성
하여 추가 수익
과 투자대비성과(ROI)
등으로 기대효과
전파테스트 데이터
와 구축용 데이터
로 분할하여, 구축용 데이터
로 모형 생성
, 테스트 데이터
로 모형이 얼마나 적합
한지 판단데이터 분할
구축용(Training Data, 50%)
추정용
, 훈련용 데이터
데이터 마이닝 모델
을 만드
는 데 활용검정용(Validation Data, 30%)
과대추정
또는 과소추정
을 미세 조정
하는데 활용시험용(Test Data, 20%)
테스트 데이터
나 과거 데이터
를 활용해 모델의 성능
을 검증데이터의 양이 충분하지 않은 경우
홀드아웃(Hold-Out) 방법
: 주어진 데이터를 랜덤
하게 두 개의 데이터
로 구분하여 사용하는 방법
-학습용(Training Data)
와 시험용(Test Data)
로 분리하여 사용
k-fold 교차분석(Cross-Validation) 방법
: 주어진 데이터를 k개의 하부 집단
으로 구분하여, k-1개의 집단
을 학습용
,
나머지는 하부집단
으로 검증용
으로 설정하여 학습
-k번 반복 측정한 결과
를 평균낸 값
을 최종값
으로 사용.
-주로 10-fold 교차분석
사용
오분류에 대한 추정치
정분류율(Accuracy)
오분류율(Error Rate)
특이도(Specificity)
민감도(Sensitivity)
정밀도(Precision)
재현율(Recall)=민감도
F1 Score
*코헨 카파 상관계수(Cohen's Kappa Coefficient)
: 모델의 예측값
과 실제값
의 일치여부
를 판정하는 통계량
0~1사이의 범위
를 가지며, 1
에 가까울수록 예측-실제값
일치
*클래스 불균형(Class Imbalance)
: 분류할 각 집단
에 속하는 데이터 수
가 동일하지 않은 경우
오버 샘플링
또는 언더 샘플링
등의 해결 방안으로 처리ROCR 패키지
로 성과분석
ROC Curve(Receiver Operating Characteristic Curve)
ROC Curve
: 가로축
을 FPR(Ralse Positive Rate, 1-특이도)
,세로축
을 TPR(True Positive Rate, 민감도)
로 두어 시각화
한 그래프
2진 분류(Binary Classfication)-추론값과 정답값이 (참, 거짓) 2개인 것
에서 모형의 성능
을 평가
하기 위해 사용되는 척도왼쪽 상단
에 가깝게
그려질 수록 올바르게 예측한 비율
은 높고
, 잘못 예측한 비율
은 낮음
AUROC(Area Unser ROC,ROC곡선 아래의 면적)
값이 크면 클수록(1에 가까울 수록)
모형의 성능
이 좋음
TPR(True Positive Rate, 민감도)
: 1인 케이스
에 대한 1로 예측
한 비율FPR(False Positive Rate, 1-특이도)
: 0인 케이스
에 대한 1로 잘못 예측
한 비율ROC Curve
와 AUROC
의 활용예시
R
실습ROCR 패키지
는 Binary Classification
만 지원library(rpart)
library(party) #의사결정나무분석 포함된 패키지
library(ROCR)
#척추후만증 데이터를 nrow(kyphosis) 사이즈만큼 sample()로 무작위 추출
# replace=F로 한 번 추출한 값은 제외
x<-kyphosis[sample(1:nrow(kyphosis),nrow(kyphosis),replace=F),]
#sample()로 뽑힌 무작위 데이터 중 75%는 학습용 데이터
x.train<-kyphosis[1:floor(nrow(x)*0.75),]
#학습용 데이터 뒤부터 끝까지 평가용 (25%)
x.evaluate<-kyphosis[floor(nrow(x)*0.75):nrow(x),]
#cforest : 조건 랜덤포레스트
x.model<-cforest(Kyphosis~Age+Number+Start, data=x.train)
#x.evaluate에 없던 것을 추가. 예측
x.evaluate$prediction<-predict(x.model, newdata=x.evaluate)
x.evaluate$correct<-x.evaluate$prediction==x.evaluate$Kyphosis
print(paste("% of predicted classification correct", mean(x.evaluate$correct)))
#treeresponse는 list로 되므로 unlist 사용, probabilities는 확률
x.evaluate$probabilities<- 1-unlist(treeresponse(x.model,
newdata=x.evaluate), use.names=F)[seq(1,nrow(x.evaluate)*2,2)]
그래프1
#prediction(예측, 레이블(실제값))
pred<-prediction(x.evaluate$probabilities,x.evaluate$Kyphosis)
#ROC Curve를 그리기 위한 민감도, 1-특이도 계산
perf<-performance(pred, "tpr","fpr")
plot(perf, main="ROC Curve", colorize=T)
그래프2
# ROC 커브가 아닌 lift Curve//향상도 곡선
perf<-performance(pred,"lift","rpp")
#랜덤 모델과 비교했을 때, 해당 모델의 성과가 얼마나 향상됐는지 각 등급별로 파악
plot(perf, main="lift curve", colorize=T)
*sample()
: 벡터
혹은 데이터 프레임
에서 지정된 크기
만큼 데이터를 무작위로 추출
할 때 사용하는 R 함수
*set.seed()
: 난수를 생성
하고 다시 난수를 생성하면 다른 결과가 나온다.
이전과 동일한 난수를 생성하고 싶을 때
사용해 지정 가능
이익도표(Lift chart
이익도표
의 개념
분류모형
의 성능
을 평가
하기 위한 척도분류된 관측치
에 대해 얼마나 예측
이 잘 이루어졌는지를 나타내기 위해 임의로 나눈 각 등급별
로 반응검출율
, 반응률
, 리프트
등의 정보를 산출하여 나타내는 도표2000명의 전체고객
중 381
명이 상품을 구매
한 경우에 대해 이익도표
를 만드는 과정을 예로 살펴보자.데이터셋
의 각 관측치
에 대한 예측확률
을 내림차순
으로 정렬.10개의 구간
으로 나눈 다음 각 구간의 반응율(% response)
산출기본 향상도(Baseline Lift)
에 비해 반응률
이 몇 배나 높은지
를 계산 (향상도(Lift)
)이익도표
의 각 등급
은 예측확률
에 따라 매겨진 순위
이므로, 상위 등급
에서 더 높은 반응률
을 보이는 것이 좋은 모형
이익도표
의 활용 예시
기본 향상도(Baseline Lift)
= 구매자/전체 = 381/2000Frequency of "buy"
: 2000명 중 실제 구매자
% Captured Response
: 반응검출율
=해당 등급 실구매자/전체 구매자
% response
: 반응률
= 해당 등급의 실구매자/200명(2000/10)
Lift
: 향상도
= 반응률/기본향상도
, 좋은 모델이라면 Lift가 빠른 속도로 감소해야 함
등급별
로 향상도가 급격
하게 변동
할수록 좋은 모형
각 등급별
로 향상도가 들쭉날쭉
하면 좋은 모형 X
*과대적합(과적합), 과소적합
의 개념
과적합/과대적합(Overfitting)
: 모형이 학습용 데이터
를 과하게 학습하여, 학습 데이터
에 대해서는 높은 정확도
를 나타내지만, 테스트 데이터
혹은 다른 데이터에 적용할 때는 성능이 떨어
지는 현상
과소적합(Underfitting)
: 모형이 너무 단순
하여 데이터 속에 내제되어있는 패턴
이나 규칙
을 제대로 학습하지 못한 경우
. 지나친 일반화
*Bias-Variance Trade-Off
: 모델을 학습시킬 때 Bias(편향)
과 Variance(분산)
이 최소화
가 되도록 해야지만, 하나가 커지면 하나가 작아지고 하나가 작아지면 하나가 커지기 때문에 서로 Trade-Off 관계
분류분석
의 정의
어떤 그룹
에 속하는지 예측
하는데 사용되는 기법클러스터링
과 유사
하나 분류분석
은 각 그룹
이 정의
되어있음교사학습(Supervised Learning)
에 해당하는 예측기법예측분석
의 정의
시계열분석
처럼 시간
에 따른 값
두 개만을 이용해 앞으로의 매출
또는 온도
등을 예측모델링
을 하는 입력 데이터
가 어떤 것인지에 따라 특성이 다름
여러 개
의 다양한 설명변수(독립변수, X)
가 아닌, 한 개의 설명변수(X)
분류분석, 예측분석의 공통점과 차이점
공통점
특정 속성
의 값
을 미리 알아맞히
는 점차이점
분류
: 레코드의 범주형 속성
의 값을 알아맞힘예측
: 레코드의 연속형 속성
의 값을 알아맞힘분류, 예측의 예
분류
내신등급
을 알아맞힘1년 후 신용등급
을 알아맞힘예측
수능 점수
를 알아맞힘연 매출액
을 알아맞힘분류 모델링
분류 기법
반응변수(y)
가 범주형
인 경우에 적용되는 회귀분석모형
설명변수(예측변수, X)
가 주어질 때 반응변수
의 각 범주(or 집단)
에 속할 확률
이 얼마인지를 추정(예측모형)
하여, 추정 확률
을 기준치에 따라 분류하는 목적(분류모형)
으로 활용사후확률(Posterior Probability)
: 모형의 적합
을 통해 추정된 확률
exp(β_1)
: 나머지 변수(x_1, ..., x_k)
가 주어질 때, x_1
이 한 단위 증가
할 때마다 성공(Y=1)
의 오즈
가 몇 배 증가
하는지를 나타내는 값다중로지스틱 회귀모형
설명변수
가 한 개(x1)
인 경우 해당 회귀계수 β1
의 부호
에 따라 S자 모양(β1>0)
또는 역 S자 모양(β1<0)
표준 로지스틱 분포
의 누적분포함수 F(x)
표준 로지스틱 분포
의 누적분포함수
로 성공확률
추정선형회귀분석
과 로지스틱 회귀분석
의 비교
glm()함수
를 이용해 로지스틱 회귀분석
실행#family=binomial은 로지스틱 회귀분석시 이항식으로
glm(종속변수~독립변수1 + ...+ 독립변수k, family=binomial, data=데이터셋명)
종속변수
: Species, 독립변수
: Sepal.Length
Sepal.Length
가 한 단위 증가
함에 따라 Species(Y)
가
1에서 2
로 바뀔 때 오즈(Odds)
가 exp(5.140)≈170배 (β가 음수이면 감소)
Null deviance
: 절편
만 포함하는 모형의 완전 모형
으로부터의 이탈도(Deviance)
=> p-값=P(𝜒^2(99)>138.629)≈0.005
으로 통계적으로 유의
하므로 적합결여
Residual deviance
: 예측변수 Sepal.Length
가 추가
된 적합 모형의 이탈도
=> Null deviance
에 비해 자유도 1
기준 이탈도의 감소
가 74.4
정도 큰 감소
=> p-값=P(𝜒^2(98)>64.211)≈0.997
으로 통계적으로 유의하지 못해
귀무가설 기각 X
적합값
이 관측된 자료를 잘 적합
함
*오즈와 오즈비
오즈(Odds)
: 성공할 확률
이 실패할 확률
의 몇 배
인지를 나타내는 확률
오즈비(Odds Ratio)
: 두 오즈의 비율
정의
의사결정나무
: 분류함수
를 의사결정 규칙
으로 이뤄진 나무 모양
으로 그리는 방법나무구조
는 연속적으로 발생하는 의사결정 문제
를 시각화
해 의사결정
이 이뤄지는 시점
과 성과
를 한눈에 볼 수 있음계산 결과
가 의사결정나무에 직접 나타나므로 해석 간편
입력값
에 대하여 출력값
을 예측하는 모형
분류나무
모형회귀나무
모형*의사결정나무
의 구성요소
뿌리마디(Root Node)
: 시작되는 마디. 전체자료 포함자식마디(Child Node)
: 하나의 마디로부터 분리되어 나간 2개 이상의 마디들부모마디(Parent Node)
: 주어진 마디의 상위 마디끝마디(Terminal Node)
: 자식마디가 없는 마디중간마디(Internal Node)
: 부모마디와 자식마디가 모두 있는 마디가지(Branch)
: 뿌리마디로부터 끝마디까지 연결된 마디들깊이(Depth)
: 뿌리마디부터 끝마디까지의 중간마디들의 수예측력과 해석력
고객
의 유치방안
을 예측
하고자 하는 경우에는 예측력
에 치중부적격 이유
를 설명
해야하므로 해석력
에 치중의사결정나무
의 활용
세분화
: 데이터를 비슷한 특성
을 갖는 몇 개의 그룹
으로 분할
해 그룹별 특성
을 발견하는 것
분류
: 여러 예측변수
들에 근거해 관측개체의 목표변수 범주
를 몇 개의 등급
으로 분류
하고자 하는 경우에 사용
예측
: 자료에서 규칙
을 찾아내고 이를 이용해 미래의 사건을 예측
하고자 하는 경우
차원축소
및 변수선택
: 매우 많은 수
의 예측변수
중에서 목표변수에 큰 영향
을 미치는 변수들을 골라내고
자 하는 경우에 사용
교호작용효과
의 파악
: 여러 개의 예측변수
들을 결합
해 목표변수에 작용
하는 규칙
을 파악
하고자 하는 경우
범주의 병합
또는 연속형 변수
의 이산화
: 범주형 목표변수(y)
의 범주
를 소수의 몇 개로 병합하거나, 연속형 목표변수(y)
를 몇 개의 등급
으로 이산화
하고자 하는 경우의사결정나무
의 특징
장점
결과
를 누구에게나 설명
하기 용이
계산적으로 복잡X
대용량 데이터
에서도 빠르게
만들 수 있음비정상 잡음 데이터
에 대해서도 민감함 없이 분류 가능
한 변수
와 상관성이 높은
다른 불필요한 변수가 있어도 크게 영향X
설명변수
나 목표변수
에 수치형변수
와 범주형변수
모두 사용 가능모형 분류 정확도
가 높음
단점
새로운 자료
에 대한 과대적합
발생 가능성 높음분류 경계선 부근
의 자료값
에 대해서 오차 큼
설명변수 간
의 중요도
를 판단하기 쉽지 않음의사결정나무
의 분석과정(형성과정)
성장 단계
마디
에서 적절한 최적의 분리규칙(Splitting Rule)
을 찾아내 나무를 성장
시키는 과정정지규칙(Stopping Rule)
만족시 중단
가지치기 단계
오차
를 크게 할 위험
이 높거나 부적절한 추론규칙
을 가지고 있는 가지
또는 불필요한 가지
를 제거
타당성 평가 단계
이익도표(Gain Chart)
, 위험도표(Risk Chart)
혹은 시험자료
를 이용해 의사결정나무
를 평가
해석
및 예측 단계
해석
하고 예측모형을 설정
한 후 예측
에 적용
하는 단계나무의 성장
훈련자료
를 (xi, yi) i=1,2,...,n
으로 나타낸다.xi=(xi1,...,xip)
x
들로 이루어진 입력 공간
을 재귀적으로 분할
하는 과정분리규칙(Splitting Rule)
분리 변수(Split Variable)
가 연속형
인 경우분리변수
가 범주형{1, 2, 3, 4}
인 경우A=1,2,4
와 A^c=3
으로 나뉨최적 분할의 결정
은 불순도 감소량
을 가장 크게
하는 분할각 단계
에서 최적 분리기준
에 의한 분할
을 찾은 다음 각 분할
에 대하여도 동일한 과정 반복
분리기준(Splitting Criterion)
이산형 목표변수
기준값 | 분리기준 |
---|---|
카이제곱 통계량 p값 | P값이 가장 작은 예측변수와, 그 때의 최적분리에 의해서 자식마디를 형성 |
지니 지수 | 지니 지수를 감소시켜주는 예측변수와, 그 때의 최적분리에 의해서 자식마디 선택 |
엔트로피 지수 | 엔트로피 지수가 가장 작은 예측 변수와, 이 때의 최적분리에 의해 자식마디 형성 |
정지규칙(Stopping Rule)
분리가 일어나지 않고
, 현재의 마디가 끝마디
가 되도록 하는 규칙정지기준(Stopping Criterion)
: 의사결정나무의 깊이(Depth)
를 지정, 끝마디
의 레코드 수
의 최소 개수
를 지정나무의 가지치기(Pruning)
너무 큰 나무모형
은 자료를 과대적합
하고, 너무 작은 나무모형
은 과소적합
할 위험 존재나무의 크기
를 모형의 복잡도
로 보며, 최적의 나무 크기
는 자료
로 부터 추정마디에 속하는 자료
가 일정 수(ex.5)
이하
일 때, 분할을 정지
하고 비용-복잡도 가지치기(Cost Complexity Runing)
을 이용해 성장시킨 나무를 가지치기
함목표변수(y)
가 범주형
변수인 의사결정나무
의 분류규칙을 선택하기 위해서 카이제곱 통계량, 지니지수, 엔트로피 지수 활용카이제곱 통계량
셀
에 대한 ((실제도수-기대도수)의 제곱/기대도수)의 합
기대도수
= 열의 합계x합의 합계/전체합계
지니지수
노드
의 불순도
를 나타내는 값지니지수 값
이 클수록
이질적(Diversity)
이며 순수도(Purity)
가 낮다
엔트로피 지수
열역학
에서 쓰는 개념으로 무질서 정도
에 대한 측도엔트로피 지수의 값
이 클수록
순수도(Purity)
가 낮다
엔트로피 지수
가 가장 작은
예측 변수
와 이때의 최적분리 규칙
에 의해 자식마디 형성
CART(Classification and Regression Tree)
의사결정나무 알고리즘
불순도의 측도
로 출력(목적)변수
가 범주형
일 경우 : 지니지수
연속형
인 경우 : 분산
을 이용한 이진분리(Binary Split)
사용개별 입력변수
뿐만 아니라 입력변수들의 선형결합
들 중에서 최적의 분리
를 찾을 수 있음C4.5
와 C5.0
CART
와 다르게 각 마디
에서 다지분리(Multiple Split)
이 가능범주형 입력변수
에 대해서는 범주의 수
만큼 분리
가 일어남불순도의 측도
: 엔트로피 지수
CHAID(CHi-Squared Automathic Interaction Detection)
가지치기
를 하지 않고
적당한 크기에서 나무모형의 성장을 중지
입력변수
가 반드시 범주형 변수
불순도의 측도
: 카이제곱 통계량
party 패키지
를 이용한 의사결정나무
party 패키지
: 의사결정나무
를 사용하기 편한 다양한 분류 패키지 중 하나분실값
을 잘 처리하지 못하
는 문제를 갖고 있는 단점tree
에 투입된 데이터
가 표시되지 않거나
predict
가 실패
하는 경우 문제 발생iris data
를 이용한 분석iris data
: 30%는 test data, 70%는 training data#prob : 랜덤 추출 확률 지정, 1이 선택될 확률 0.7, 2가 선택될 확률 0.3
#2 : 1 또는 2
idx<-sample(2,nrow(iris),replace=TRUE,prob=c(0.7,0.3))
train.data<-iris[idx==1,]
test.data<-iris[idx==2,]
train.data
를 이용하여 모형 생성
예측된 데이터
와 실제 데이터
비교test data
를 적용하여 정확성 확인
주어진 자료
로부터 여러 개
의 예측모형
들을 만든 후 예측모형
들을 조합
하여 하나의 최종 예측 모형
을 만드는 방법다중 모델 조합(Combining Multiple Models)
, 분류기 조합(Classifier Combination)
이 있음학습방법의 불안전성
학습자료
의 작은 변화
에 의해 예측모형
이 크게 변하
는 경우, 그 학습방법은 불안정
가장 안정적인 방법
: 1-Nearest Neighbor(가장 가까운 자료만 변하지 않으면 예측 모형이 변하지않음)
, 선형회귀모형(최소제곱법으로 추정해 모형 결정)
이 존재가장 불안정한 방법
: 의사결정나무
앙상블 기법
의 종류
배깅
Breiman(1994)
에 의해 제안여러 개
의 붓스트랩(Bootstrap)
자료를 생성
하고, 각 붓스트랩 자료에 예측모형
을 만든 후 결합
하여 최종 예측모형
을 만드는 방법붓스트랩
동일한 크기
의 표본
을 랜덤 복원추출
로 뽑은 자료
보팅(Voting)
: 여러 개의 모형
으로부터 산출된 결과를 다수결
에 의해서 최종 결과
를 선정
최적의 의사결정나무
를 구축할 때 가장 어려운 부분이 가지치기
이지만,배깅
에서는 가지치기
를 하지 않고
최대로 성장한 의사결정나무
활용훈련자료의 모집단의 분포
를 모르기
때문에 실제 문제에서는 평균예측모형
을 구할 수 없음.배깅
은 이러한 문제를 해결하기 위해 훈련자료
를 모집단
으로 생각하고 평균예측모형
을 구해 분산을 줄이고 예측력 향상
부스팅
예측력
이 약한 모형(Weak Learner)
들을 결합
하여 강한 예측모형
을 만드는 방법부스팅 방법
중 Freund&Schapire
가 제안한 Adaboost
이진분류 문제
에서 랜덤 분류기
보다 조금 더 좋은 분류기 n개
에 각각 가중치
를 설정하고 n개의 분류기
를 결합
하여 최종 분류기
를 만드는 방법 제안가중치의 합은 1
)훈련오차
를 빨리 그리고
쉽게 줄일
수 있음배깅
에 비해 많은 경우
예측오차
가 향상
되어 Adaboost
의 성능이 배깅보다 뛰어남
*GBM(Gradient Boosting Machine)
: AdaBoost
와 유사
하나, 가중치 업데이트
시 경사 하강법(Gradient Descent)
를 이용
*XGBoost(Extreme Gradient Boosting)
: Gradient Boosted Decision Trees 알고리즘
에 기반해 분류, 회귀
등의 모델을 제공하며, GBM
에 비해 빠른 수행 시간
과 과적합 방지 기능
가짐
*Light GBM
: Tree 기반 학습 알고리즘
으로 기존의 다른 Tree기반 알고리즘과 달리 leaf-wise 방식
을 따르므로, 속도가 빠르
며 큰 사이즈의 데이터
를 다룰 수 있고 메모리를 적게 차지
랜덤 포레스트(Random Forest)
Breiman(2001)
에 의해 개발의사결정나무
의 특징
인 분산이 크다
는 점을 고려해 배깅
과 부스팅
보다 더 많은 무작위성
을 주어 약한 학습기들을 생성
한 후 이를 선형 결합
하여 최종 학습기
를 만드는 방법Random Forest 패키지
는 Random Input
에 따른 Forest of Tree
를 이용한 분류방법랜덤한 Forest
에는 많은 트리
들이 생성수천 개의 변수
를 통해 변수제거 없이
실행되므로 정확도 측면
에서 좋은 성과
단점
: 이론적 설명
이나 최종 결과
에 대한 해석이 어렵다
장점
: 예측력
이 매우 높다
. 특히 입력변수가 많은 경우
, 배깅
과 부스팅
과 비슷
하거나 좋은
예측력-randomforest 패키지
를 이용한 분석
모형 만들기
오차율 계산
하기
그래프 그리기1
그래프 그리기2
test data 예측
그래프 그리기3
인공신경망이란?
인간 뇌
를 기반으로 한 추론 모델
뉴런
: 기본적인 정보처리 단위
인공신경망
의 연구
1943년
매컬럭(McCulloch)
과 피츠(Pitts)
인간 뇌
를 수 많은 신경세포
가 연결된 하나의 디지털 네트워크 모형
으로 간주. 신경세포의 신호처리 과정
을 모형화
하여 단순 패턴분류 모형
개발헵(Hebb)
: 신경세포(뉴런)
사이의 연결강도(Weight)
를 조정하여 학습규칙
개발로젠블럿(Rosenblatt,1955)
: 퍼셉트론(Perceptron)
이라는 인공세포
개발비선형성
의 한계점 발생
: XOR
문제를 풀지 못하는 한계 발견홉필드(Hopfild), 러멜하트(Rumelhart),맥클랜드(McClelland)
: 역전파 알고리즘(Backpropagation)
을 활용해 비선형성
을 극복한 다계층 퍼셉트론
으로 새로운 인공신경망
모형 등장인간의 뇌
를 형상화
한 인공신경망
인간 뇌 특징
뉴런
, 6조개의 시냅스
결합체인간의 뇌
는 현존하는 어떤 컴퓨터보다 빠르
고 매우 복잡
하고, 비선형적
이며, 병렬적인 정보 처리 시스템
과 같음.적응성
에 따라 '잘못된 답'
에 대한 뉴런들 사이의 연결
은 약화
,'올바른 답'
에 대한 연결 강화
인간의 뇌 모델링
뉴런
은 가중치
가 있는 링크
들로 연결뉴런
은 여러 입력 신호
를 받지만, 출력 신호
는 오직 하나
인공 신경망
의 학습
신경망
은 가중치
를 반복적으로 조정
하며 학습뉴런
은 링크(Link)
로 연결되어있고, 각 링크
에는 수치적인 가중치
가 있음인공신경망
은 신경망
의 가중치
를 초기화
하고, 훈련 데이터
를 통해 가중치를 갱신
하여 신경망의 구조를 선택
하고, 활용할 학습 알고리즘
을 결정 후 신경망 훈련
인공신경망의 특징
구조
입력 링크
에서 여러 신호
를 받아서 새로운 활성화 수준
을 계산하고, 출력 링크
로 출력 신호
를 보냄입력신호
는 미가공 데이터
혹은 다른 뉴런의 출력
출력신호
는 문제의 최종적인 해
또는 다른 뉴런의 입력
뉴런의 계산
뉴런
은 전이함수
, 즉 활성화 함수(Activation Function)
사용활성화 함수
를 이용해 출력
을 결정, 입력신호
의 가중치 합
을 계산
하여 임계값
과 비교가중치 합<임계값
: 뉴런의 출력
은 -1
가중치 합>=임계값
: 뉴런의 출력
은 +1
뉴런의 활성화 함수
시그모이드 함수
로지스틱 회귀분석
과 유사
, 0~1
의 확률값 가짐소프트맥스(Softmax) 함수
표준화지수 함수
로 불리며, 출력값
이 여러개
로 주어지고목표치
가 다범주
인 경우, 각 범주에 속할
사후확률
을 제공하는 함수ReLU함수
입력값
이 0이하
는 0
, 0이상
은 x값
을 가지는 함수.딥러닝
에서 많이 활용하는 활성화 함수단일 뉴런
의 학습
(단층 퍼셉트론
)퍼셉트론
은 선형 결합기
와 하드 리미터
로 구성초평면(hyperplane)
은 n차원 공간
을 두 개의 영역
으로 나눔초평면
을 선형 분리 함수
로 정의신경망 모형 구축시 고려사항
입력 변수
신경망 모형
은 복잡성
으로 인해 입력자료
의 선택
에 매우 민감
입력변수
가 범주형
또는 연속형
변수일 때, 아래의 조건이 신경망 모형에 적합범주형 변수 : 모든 범주에서 일정 빈도 이상의 값을 갖고, 각 범주의 빈도가 일정할 때
연속형 변수 : 입력변수 값들의 범위가 변수간의 큰 차이가 없을 때
연속형 변수
의 경우 그 분포
가 평균을 중심
으로 대칭
이 아니면, 좋지 않은 결과
를 도출하므로 아래와 같은 방법 활용변환 : 고객의 소득(대부분 평균미만이고, 특정 고객의 소득이 매우 큰) : 로그변환
범주화 : 각 범주의 빈도가 비슷하게 되도록 설정
범주형 변수
의 경우 가변수화
하여 적용
(ex. 남녀:1, 0 또는 1,-1) 하고,모든 범주형 변수
는 같은 범위
를 갖도록 가변수화
가중치의 초기값
과 다중 최소값 문제
역전파 알고리즘
은 초기값
에 따라 결과가 많이 달라
지므로 초기값
의 선택이 매우 중요가중치
가 0
이면, 시그모이드 함수
는 선형
이 되고,신경망 모델
은 근사적으로 선형모형
이 됨초기값
은 0 근처로 랜덤
하게 선택하므로, 초기 모형
은 선형 모형
에 가깝고, 가중치 값
이 증가
할수록 비선형모형
이 됨초기값
이 0
이면, 반복
해도 값이 전혀 변하지 않고
, 너무 크면
좋지 않은 해
를 주는 문제점을 내포하고 있어 주의 필요)*기울기 소실(Gradient Vanishing)
: 깊은 인공신경망에서 역전파 과정
에서 입력층
으로 갈수록 기울기가 점차 작아져
가중치 업데이트가 안되는 현상
*일반화 가중치(Generalized Weights)
: 각 공변량
들의 효과
를 나타내는 것으로, 로지스틱 회귀모형
에서의 회귀계수
와 유사
하게 해석
(각 공변량의 로그-오즈
에 미치는 기여도)
학습모드
온라인 학습 모드(Online Learning Mode)
순차적
으로 하나씩 신경망
에 투입하여 가중치 추정값
이 매번 바뀜속도가 빠르
며, 특히 훈련자료
에 유사값
이 많은 경우, 그 차이가 더 두드러짐
훈련자료
가 비정상성(Nonstationarity)
과 같이 특이한 성질
을 가진 경우가 좋음
국소최솟값
에서 벗어나기가 더 쉬움
확률적 학습 모드(Probabilistic Learning Mode)
온라인 학습 모드
와 같으나, 신경망
에 투입
되는 관측값의 순서가 랜덤
배치 학습 모드(Batch Learning Mode)
전체 훈련자료
를 동시에
신경망에 투입*학습률(Learning Rate)
: 처음
에는 큰 값
으로 정하고, 반복
수행과정을 통해 해
에 가까울수록 학습률
이 0에 수렴
은닉층(Hidden Layer)
과 은닉 노드(Hidden Node)
의 수
신경망
을 적용할 때 가장 중요한 부분이 모형의 선택(은닉층의 수, 은닉노드의 수 결정)
은닉층
과 은닉노드
가 많으면
, 가중치가 많아
져서 과대 적합 문제
발생은닉층
과 은닉노드
가 적으면
, 과소적합 문제
발생은닉층의 수
가 하나
인 신경망
은 범용 근사자(Universal Approximator)
이므로, 모든 매끄러운 함수
를 근사적
으로 표현
할 수 있음.은닉층
은 하나
은닉노드의 수
는 적절히 큰 값
으로 놓고, 가중치를 감소(Weight Decay)시키며 적용
하는 것이 좋음.과대 적합 문제
많은 가중치
를 추정
해야 하므로 과대적합 문제
가 빈번
알고리즘의 조기종료
와 가중치 감소 기법
으로 해결
모형이 적합하는 과정
에서 검증오차가 증가
하기 시작하면, 반복을 중지
하는 조기종료
시행선형모형
의 능형회귀(릿지회귀)
와 유사한, 가중치 감소
라는 벌점화 기법
활용*포화문제
: 작은 기울기
는 곧 학습 능력이 제한
된다는 것을 의미하고, 이를 일컬어 신경망
에 포화
가 발생했다고 함.
포화
가 일어나지 않게 하기 위해 입력값
을 작게 유지
해야 함
*딥러닝(Deep Learning)
: 머신러닝
의 한 분야. 인공신경망
의 한계
를 극복하기 위해 제안된 심화신경망
을 활용한 방법
*딥러닝 소프트웨어
Tensorflow
Caffe
Theano
MXnet
유사성
을 측정해 유사성이 높은 대상 집단
을 분류
하고,군집에 속한 객체
들의 유사성
과 서로 다른 군집에 속한 객체
간의 상이성
을 규명하는 분석 방법특성
에 따라 고객을 여러 개의 배타적인 집단
으로 나누는 것결과
는 구체적인 군집분석 방법
에 따라 차이
가 남군집의 개수
나 구조에 대한 가정
없이
데이터들 사이
의 거리
를 기준으로 군집화 유도소비자들의 상품 구매 행동
, 라이프스타일
에 따른 소비자군
을 분류하여 시장 전략 수립 등특징
요인분석
과의 차이점
요인분석
: 유사한 변수
를 함께 묶어주는 것이 목적판별분석
과의 차이점
판별분석
: 사전
에 집단이 나누어져 있는 자료
를 통해 새로운 데이터
를 기존의 집단
에 할당
하는 것이 목적군집분석
에서는 관측 데이터 간
유사성
이나 근접성
을 측정해 어느 군집
으로 묶을
수 있는지 판단해야 함.연속형 변수
의 경우
유클리디안 거리(Euclidean Distance)
유사성
을 측정할 때 많이 사용
하는 거리통계적 개념
이 내포되어 있지 않아
변수들의 산포 정도가 전혀 감안X
표준화 거리(Statistical Distance)
표준편차
로 척도 변환
후 유클리디안 거리
를 계산표준화
하게 되면 척도의 차이
, 분산의 차이
로 인한 왜곡 피함
마할라노비스(Mahalanobis) 거리
통계적 개념
이 포함
된 거리이며 변수들의 산포
를 고려하여 이를 표준화한 거리(Standardized Distance)
두 벡터 사이의 거리
를 산포를 의미하는 표본공분산
으로 나눠줘야 하
며, 그룹에 대한 사전 지식 없이는 표본공분산S
를 계산할 수 없으므로 사용하기 곤란변수의 표준화
와 변수 간의 상관성
을 동시에 고려체비셰프(Chebychev) 거리
맨하탄(Manhattan) 거리
건물에서 건물을 가기 위한 최단 거리
를 구하기 위해 고안된 거리이상치
가 존재한다고 여겨지고 그것들을 제거할 수 없는 경우
에 사용ROBUST(이상치로 부터 영향X)
한 측도캔버라(Canberra) 거리
민코우스키(Minkowski) 거리
맨하탄 거리
와 유클리디안 거리
를 한번에 표현
한 공식L1 거리(맨하탄 거리)
, L2 거리(유클리디안 거리)
범주형 변수
의 경우
자카드 거리
자카드 계수
*자카드 계수 기반 유사도
: Boolean 속성
으로 이루어진 두 개의 오브젝트 A, B에 대하여 A와 B가 교집합
으로 1의 값을 가진 속성의 개수
를 A와 B의 1의 합집합 개수
로 나눈 값
코사인 거리
문서
를 유사도
기준으로 분류
혹은 그룹핑
시 유용코사인 유사도
두 개체
의 백터 내적
의 코사인 값
을 이용해 측정된 벡터간의 유사한 정도
n개의 군집
으로 시작해 점차 군집의 개수를 줄여 나가
는 방법계층적 군집
을 형성하는 방법합병형(응집형) 방법(Agglomerative : Bottom-Up)
하나의 군집
으로 보고, 관측값 특성이 가까운 군집
끼리 순차적으로 합
해가는 방식분리형 방법(Divisive : Top-Down)
최단연결법(Single Linkage)
: 군집
과 군집
또는 데이터와의 거리
계산 시 최단거리(min)
를 거리로 계산
n*n 거리행렬
에서 거리가 가장 가까운 데이터
를 묶어서 군집 형성수정된 거리행렬
에서 거리가 가까운 데이터
또는 군집
을 새로운 군집으로 형성사슬 모양
으로 군집이 생길 수 있음고립된 군집
을 찾는데 중점최장연결법(Complete Linkage)
: 군집
과 군집
또는 데이터와의 거리
계산 시 최장거리(max)
를 거리로 계산하여 거리 행렬
을 수정
군집
들의 내부 응집성
에 중점평균연결법(Average Linkage)
: 군집
과 군집
또는 데이터와의 거리
계산 시 평균(mean)
을 거리로 계산하여 거리 행렬
을 수정
계산량
이 불필요하게 많아짐
중심 연결법(Centroid Linkage)
: 두 군집의 중심간 거리
를 군집간 거리
로 하며, 군집이 결합될 때 새로운 군집의 평균
은 가중평균
을 통해 구해짐
와드연결법(Ward Linkage)
: 군집내 편차들의 제곱합
을 고려한 방법
손실
을 최소화
하기 위해 군집화 진행군집화
거리행렬
을 통해 가장 가까운 거리
의 객체들간의 관계를 규명하고 덴드로그램
을 그림덴드로그램
을 보고 군집의 개수
를 변화해가며 적절한 군집 수 선정
군집의 수
는 분석 목적에 따라 선정할 수 있으나, 대부분 5개 이상의 군집은 잘 활용 X
군집화 단계
거리행렬
을 기준으로 덴드로그램
을 그린다.덴드로그램
의 최상단
부터 세로축의 개수
에 따라 가로선
을 그어 군집의 개수
선택적절한 군집 수
선정n개의 개체
를 k개의 군집
으로 나눌 수 있는 모든 가능한 방법
을 점검해 최적화한 군집
을 형성하는 것Fuzzy Clustering
: 퍼지이론
에 기반하여 각 관측치
가 여러 군집
에 동시에 속할
수 있으며, 각 군집별
로 속할 가능성
을 제시
밀도기반 군집(Density-Based Clustering)
: 동일 군집
에 속하는 데이터는 서로 근접하게 분포
할 것이라는 가정을 기반으로 한 군집분석
DBSCAN
, OPTICS
, DENCLUE
, STING
k-평균 군집분석(k-Means Clustering)
의 개념
데이터
를 k개
의 클러스터로 묶는 알고리즘각 클러스터
와 거리의 차이
의 분산
을 최소화
하는 방식으로 동작k-평균 군집분석(K-Means Clustering) 과정
군집의 개수
와 초기 값(seed)
들을 정해 seed중심
으로 군집 형성거리가 가장 가까운 seed
가 있는 군집으로 분류
seed값
을 다시 계산
모든 개체
가 군집으로 할당
될 때까지 위 과정 반복k-평균 군집분석의 특징
거리 계산
을 통해 군집화
가 이뤄지므로 연속형 변수
에 활용 가능k개
의 초기 중심값(seed)
은 임의로 선택 가능
하며 가급적이면 멀리 떨어지는 것이 바람직
초기 중심값
을 임의로 선택시 일렬(상하, 좌우)
로 선택하면, 군집 혼합이 되지 않고
층
으로 나누어질 수 있어 주의초기 중심값
의 선정
에 따라 결과 달라짐
초기 중심
으로부터의 오차 제곱합
을 최소화하는 방향
으로 군집이 형성되는 탐욕적(Greedy) 알고리즘
안정된 군집
은 보장
하나, 최적
이라는 보장X
장점 | 단점 |
---|---|
- 알고리즘이 단순 - 빠르게 수행되어 분석 방법 적용 용이 - 계층적 군집분석에 비해 많은 양의 데이터를 다룰 수 있음 - 내부 구조에 대한 사전정보가 없어도 의미있는 자료구조 찾기 가능 - 다양한 형태의 데이터에 적용 가능 | - 군집의 수, 가중치와 거리 정의가 어려움 - 사전에 주어진 목적이 없어 결과 해석이 어려움 - 잡음이나 이상값 영향 많이 받음 - 볼록한 형태가 아닌(Non-Convex) 군집(ex. U형태) 존재시 성능이 떨어짐 - 초기 군집 수 결정에 어려움 |
PAM(Partitioning Around Medoids)/k-medoid Clustering
Medoid
: 한 클러스터의 개체인데, 이 개체가 속한 클러스터 내
에서의 다른 모든 개체들과의 평균거리
가 가장 작은 개체
k-means Clustering
의 이상값(Outlier)
에 민감
해 경계 설정
이 어렵다는 단점을 극복
하기 위한 군집 방법모형 기반(Model-Based)
의 군집 방법k개
의 모수적 모형(흔히 정규분포 또는 다변량 정규분포를 가정)의 가중합
으로 표현되는 모집단 모형
으로부터 나왔다는 가정하에 모수
와 함께 가중치
를 자료로부터 추정
하는 방법 사용k개
의 각 모형
은 군집
을 의미하며, 각 데이터는 추정된 k개의 모형
중 어느 모형
으로부터 나왔을 확률
이 높은지에 따라 군집의 분류
가 이뤄짐혼합모형
에서 모수
와 가중치의 추정
(최대가능도추정
)에는 EM알고리즘
사용혼합 분포모형
으로 설명할 수 있는 데이터의 형태
자료의 분포형태
가 다봉형의 형태
를 띄므로 단일 분포
로의 적합
은 적절하지 않
으며, 대략 3개
정도의 정규분포 결합
을 통해 설명여러 개의 이변량 정규분포
의 결합
을 통해 설명반드시 정규분포로 제한할 필요X
EM(Expectation-Maximization) 알고리즘 진행 과정
각 자료
에 대해 Z의 조건부분포(어느 집단에 속할지에 대한)
로부터 조건부 기댓값
을 구함관측변수 X
와 잠재변수 Z
를 포함하는 (X,Z)
에 대한 로그-가능도 함수(이를 보정된(Augmented) 로그-가능도함수라 함)
에 Z
대신 상수값인 Z의 조건부 기댓값
을 대입하면, 로그-가능도함수
를 최대
로 하는 모수
를 쉽게 찾을 수 있음(M-단계
)갱신된 모수 추정치
에 위 과정을 반복하면, 수렴하는 값
을 얻게 되고, 이는 최대 가능도 추정치
로 사용E-단계
: 잠재변수 Z
의 기대치 계산
M-단계
: 잠재변수 Z
의 기대치
를 이용하여 파라미터 추정
EM알고리즘
의 진행과정
혼합 분포 군집모형
의 특징
k-평균 군집
의 절차와 유사하나, 확률분포
를 도입
하여 군집 수행
군집
을 몇 개의 모수
로 표현할 수 있으며, 서로 다른 크기
나 모양
의 군집을 찾을 수 있음EM알고리즘
을 이용한 모수 추정
에서 데이터가 커지
면 수렴에 시간
이 걸림군집의 크기
가 너무 작으면
추정의 정도
가 떨어
지거나 어려움
k-평균 군집
과 같이 이상치 자료
에 민감
자기조직화지도(Self Organizing Map, SOM)
는 코호넨(Kohonen)
에 의해 제시, 개발되었으며 코호넨 맵(Kohonen Maps)
라고도 함비지도 신경망
고차원의 데이터
를 이해하기 쉬운 저차원의 뉴런으로 정렬
하여 지도
의 형태로 형상화입력 변수
의 위치 관계
를 그대로 보존
실제 공간의 입력 변수
가 가까이
있으면, 지도상
에도 가까운 위치
구성
: SOM모델
은 두 개의 인공신경망 층
으로 구성
입력층(Input Layer : 입력벡터를 받는 층)
입력 변수
의 개수
와 동일
하게 뉴런 수
존재입력층의 자료
는 학습
을 통하여 경쟁층에 정렬
되는데, 이를 지도(Map)
라 부름입력층
에 있는 각각의 뉴런
은 경쟁층
에 있는 각각의 뉴런
들과 연결
되어 있으며, 이 때 완전 연결(Fully Connected)
됨경쟁층(Competitive Layer : 2차원 격자(Grid)로 구성된 층)
입력벡터
의 특성
에 따라 벡터
가 한 점
으로 클러스터링
되는 층SOM
은 경쟁 학습
으로 각각의 뉴런
이 입력 벡터
와 얼마나 가까운가
를 계산하여 연결 강도(Connection Weight)
를 반복적으로 재조정
하여 학습연결강도
는 입력 패턴
과 가장 유사한 경쟁층 뉴런
이 승자입력 층
의 표본 벡터
에 가장 가까운 프로토타입 벡터
를 선택해 BMU(Best-Matching-Unit
이라고 함.코호넨의 승자 독점의 학습 규칙
에 따라 위상학적 이웃(Topological Neighbors)
에 대한 연결 강도
를 조정승자 독식 구조
로 인해 경쟁층
에는 승자 뉴런
만 나타남승자와 유사한 연결 강도
를 갖는 입력 패턴
이 동일한 경쟁 뉴런으로 배열
특징
고차원의 데이터
를 저차원의 지도 형태
로 형상화하기 때문에 시각적으로 이해가 쉬움
입력 변수
의 위치 관계
를 그대로 보존
하기 때문에 실제 데이터가 유사
하면 지도상에서도 가깝게 표현
패턴 발견
, 이미지 분석
등에서 뛰어남역전파(Back Propagation) 알고리즘
등을 이용하는 인공신경망
과 달리,단 하나의 전방 패스(Feed-Forward Flow)
를 사용하여 속도가 매우 빠름
실시간 학습처리
가능SOM vs 신경망 모형
구분 | 신경망 모형 | SOM |
---|---|---|
학습 방법 | 오차역전파법 | 경쟁학습방법 |
구성 | 입력층,은닉층,출력층 | 입력층,경쟁층 |
기계학습 방법의 분류 | 지도학습 | 비지도 학습 |
Hierarchical Clustering(계층적 군집)
#dim은 dataframe의 길이 관측시 사용. 행, 열 반환
#dim(iris[1]) : 행 150개
idx<-sample(1:dim(iris)[1],40)
iris.s<-iris[idx,]
#Species 안보이게 함
iris.s$Species<-NULL
#hclust : 계층 군집
#dist : 거리 계산
#평균연결법
hc<-hclust(dist(iris.s),method="ave")
#hang 옵션 : 레이블이 나머지 플롯 아래에 있어야 하는 플롯의 높이 비율
plot(hc,hang=-1,labels=iris$Species[idx])
*dist()
: 데이터 행렬
의 행 사이의 거리
를 계산하기 위해 지정된 거리 측도
를 사용해 계산된 거리 행렬
을 계산
"euclidean"
, "maximum"
,"manhattan"
, "canberra"
, "binary"
, "minkowski"
k-Means Clustering
: 비계층적 군집방법
군집화
data(iris)
newiris<-iris
newiris$Species<-NULL
#군집을 3개 만듦
kc<-kmeans(newiris,3)
결과비교
군집화 그래프
연관규칙분석(Association Analysis)
의 개념
장바구니분석(Market Basket Analysis)
또는 서열분석(Sequence Analysis)
라 불림일련의 거래
또는 사건
들 간의 규칙 발견
을 위해 적용장바구니 분석
: 장바구니에 무엇이 같이 들어있는지
에 대한 분석서열분석
: A를 산 다음
에 B를 산다
연관규칙
의 형태
조건
과 반응
의 형태(if-then
)(Item set A)->(Item set B)
if A then B #만일 A가 일어나면, B가 일어난다
#아메리카노를 마시는 손님 중 10%가 브라우니를 먹는다
#샌드위치를 먹는 고객의 30%가 탄산수를 함께 마신다
연관규칙
의 측도
지지도(Support)
전체 거래 중
항목A와 항목B를 동시에 포함
하는 거래의 비율신뢰도(Confidence)
항목 A를 포함한 거래
중에서 항목A와 항목B가 같이 포함
될 확률연관성
의 정도 파악향상도(Lift)
A가 구매되지 않았을 때 품목 B의 구매확률
에 비해 A가 구매됐을 때 품목 B의 구매확률
의 증가 비연관규칙 A->B
는 품목A
와 품목B
의 구매가 서로 관련이 없는 경우
에 향상도 1
연관규칙
의 절차
최소 지지도
보다 큰
집합만을 대상으로 높은 지지도
를 갖는 품목 집합을 찾음
처음에는 5%
로 잡고, 규칙이 충분히 도출되는지 보고 다양하게 조절
처음부터 너무 낮은 최소 지지도
를 선정하는 것은 많은 리소스 소모
로 적절X
절차
1.최소 지지도
결정
2.품목 중최소 지지도
를 넘는 품목 분류
3.2가지 품목 집합
생성
4.반복적
으로 수행해 빈발품목 집합
을 찾음
연관규칙
의 장점
과 단점
장점
탐색적인 기법
으로 조건 반응
으로 표현되는 연관성 분석의 결과
를 쉽게 이해
강력한 비목적성 분석기법
으로 분석 방향
이나 목적
이 특별히 없는 경우 목적변수(y)
가 없으므로 유용하게 활용사용
이 편리
한 분석 데이터의 형태로 거래 내용에 대한 데이터를 변환 없이
그 자체로 이용
할 수 있는 간단한 자료 구조분석을 위한 계산 간단
단점(개선방안)
품목수
가 증가하면 분석에 필요한 계산
이 기하급수적
으로 늘어남유사한 품목
을 한 범주
로 일반화
연관 규칙
의 신뢰도 하한
을 새롭게 정의해 실제 드물게 관찰
되는 의미가 적은 연관규칙 제외
너무 세분화한 품목
을 갖고 연관성 규칙을 찾으면 의미없는 분석
이 됨적절히 구분
되는 큰 범주
로 구분해 전체 분석에 포함
시킨 후 그 결과 중에서 세부적으로 연관규칙
을 찾는 작업 수행거래량이 적은 품목
은 당연히 포함된 거래수가 적을
것이고, 규칙 발견 시 제외하기 쉬움
품목
이 관련성을 살펴보고자 하는 중요한 품목
이라면 유사한 품목들과 함께 범주로 구성
하는 방법 등을 통해 연관성 규칙의 과정에 포함순차패턴(Sequence Analysis)
: 동시에 구매될 가능성이 큰 상품군을 찾아내는 연관성분석
에 시간
이라는 개념을 포함시켜 순차적으로 구매 가능성
이 큰 상품군을 찾아내는 것
연관성분석
에서의 데이터 형태에 각각의 고객
으로부터 발생한 구매시점
에 대한 정보가 포함대용량 데이터
에 대한 연관성분석
불가능
시간이 많이 걸리
거나 기존 시스템에서 실행
시 시스템 다운
되는 현상 발생1세대 알고리즘 Apriori
나 2세대 FP-Growth
에서 발전하여 3세대 FPV
를 이용해 메모리를 효율적으로 사용
함으로써 SKU레벨의 연관성분석을 성공적으로 적용모든 품목의 개수
가 n개
일 때, 품목들의 전체집합(Item Set)
에서 추출
할 수 있는 품목 부분집합
의 개수
는 2^n-1(공집합 제외)
개Apriori
: 모든 가능한 품목 부분집합
의 개수를 줄이는 방식
으로 작동하는 것FP-Growth
: 거래내역 안
에 포함된 품목의 개수를 줄여
비교하는 횟수를 줄이는 방식
으로 작동Apriori 알고리즘
빈발항목집합(Frequent Item Set)
최소 지지도
보다 큰 지지도 값
을 갖는 품목의 집합
모든 품목집합
에 대한 지지도를 전부 계산하는 것이 아니라,최소 지지도 이상
의 빈발항목집합
을 찾은 후 그것들에 대해서만 연관규칙
계산1994년
에 발표된 1세대 알고리즘
구현
과 이해
가 쉬움지지도가 낮은 후보 집합 생성
시 아이템의 개수
가 많아지면서 계산 복잡도가 증가
한다는 문제점 존재FP-Growth 알고리즘
후보 빈발항목집합
을 생성하지 않고
, Fp-Tree(Frequent Pattern Tree)
를 만든 후 분할정복
방식을 통해 Apriori 알고리즘보다 더 빠르게
빈발항목집합
을 추출
Apriori
의 약점 보완
을 위해 고안되어,DB스캔 횟수
가 적고
, 빠른 속도
로 분석 가능*콘텐츠 기반 필터링(Content Based Filtering)
: 사용자가 특정 아이템을 선호
하는 경우, 그 아이템과 비슷한 컨텐츠를 가진 다른 아이템
을 추천해주는 방식
*협업 필터링(Collaborative Filtering)
: 많은 사용자들
로부터 얻은 기호
에 따라 사용자들의 관심사
들을 자동적으로 예측
하게 해주는 방법
장바구니 분석
: 실시간 상품추천
을 통한 교차판매
에 응용순차패턴 분석
: A를 구매한 사람
인데 B를 구매하지 않은 경우
, B
를 추천하는 교차판매 캠페인
에 사용분석내용
Groceries
데이터셋은 식료품 판매점의 1달 동안의 POS데이터거래내역
을 inspect
함수로 확인apriori함수
로 최소지지도
와 신뢰도
는 각각 0.01, 0.3
으로 설정한뒤 연관규칙분석 실시install.package("arules")
library(arules)
data(Groceries)
#1~3행
inspect(Groceries[1:3])
rules<-apriori(Groceries,parameter=list(support=0.01, confidence=0.3))
#상위 20개만 보여달라
inspect(sort(rules,by=c("lift"),decreasing=TRUE)[1:20])
분석결과
88개의 아이템
으로 연관규칙
을 만들어냈으며, 125개의 Rule 발견
규칙의 수
가 너무 적으면
지지도와 신뢰도를 낮추
고, 너무 많
으면 지지도와 신뢰도를 높
여야 함향상도
를 기준으로 내림차순 정렬
한 후 상위 5개의 규칙
을 확인했을 때, rhs의 제품만 구매
할 확률에 비해 lhs의 제품을 샀을 때 rhs제품도 구매할 확률
이 약 3배가량 높음(Lift>3이므로)
rhs와 lhs 제품
들간 결합상품 할인쿠폰
혹은 품목배치 변경
등을 제안 가능