일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 빅데이터
- 전자계산기 구조
- 알트리아
- 장기투자
- 자격증
- 스플렁크
- 존슨앤존슨
- 매수
- 분석
- DPZ
- 2019년
- 정보처리기사 필기
- ADsP
- 서교공
- 도미노피자
- 미국 배당주
- 미국 주식
- It
- 애브비
- JNJ 주식
- 미국주식
- ABBV
- 서울교통공사
- 정보처리기사 데이터베이스
- 배당주
- 매도
- 준전문가
- 분석기획
- at&t
- 데이터분석
- Today
- Total
My Log
[ADsP #12] 데이터 분석 3장 - 정형 데이터 마이닝(2) 본문
* 시작하기에 앞서 본 게시물에 포함된 내용은 한국데이터산업진흥원에서 발행한 [데이터 분석 전문가 가이드, 2019년 2월 8일 개정]
에 근거한 것임을 밝힙니다.
1. 군집 분석
- 군집 분석은 관측값들을 유사한 성격을 가지는 몇 개의 군집으로 집단화하고, 군집의 특성을 파악하여 군집사이의 관계를
분석하는 다변량분석 기법이다.
1) 계층적 군집
- 가장 유사한 개체를 묶어 나가는 과정을 반복하여 원하는 개수의 군집을 형성하는 방법
- 군집을 형성하는 매 단계에서 지역적 최적화를 수행해 나가는 방법(전역적인 최적해라고 볼 수 없음)
- 계층적 군집의 결과는 덴드로그램의 형태로 표현
(* 덴드로그램을 통해 항목간의 거리, 군집간의 거리를 알 수 있고, 항목간 유사정도를 파악하여 견고성을 해석할 수 있다.)

- 계층적 군집을 형성하는 방법
ㄱ) 병합적 방법
- 작은 군집에서 출발하여 거리가 가까운 순으로 병합해 나가는 방법
- R에서 agnes(), mclust() 함수를 이용한다.
ㄴ) 분할적 방법
- 큰 군집에서 출발하여 군집을 분리해 나가는 방법
- R에서 diana(), mona() 함수를 이용한다.
- 군집 간 거리
ㄱ) 수학적 거리 : 유클리드 거리, 맨하튼 거리, 민코우스키 거리
ㄴ) 통계적 거리 : 표준화 거리, 마할라노비스 거리
- 군집 간 거리측정 방법
ㄱ) 최단연결법(단일연결법)
- 각 군집에서 관측값을 뽑았을 때 나타날 수 있는 거리의 최소값을 군집간 거리로 한다.
- 사슬 모양으로 생길 수 있음
- 고립된 군집을 찾는데 중점을 둔 방법
ㄴ) 최장연결법(완전연결법)
- 각 군집에서 관측값을 뽑았을 때 나타날 수 있는 거리의 최대값을 군집간 거리로 한다.
- 군집들의 내부 응집성에 중점을 둔 방법
ㄷ) 중심연결법
- 두 군집의 중심간 거리를 군집간 거리로 한다.
- 군집이 결합될 때, 새로운 군집의 평균은 가중평균을 통해 구해진다.
ㄹ) 평균연결법
- 모든 항목에 대한 거리 평균을 구하면서 군집화를 수행한다.
- 계산량이 불필요하게 많아질 수 있다.
ㅁ) 와드연결법(ward linkage)
- 군집내의 오차제곱합에 기초하여 군집을 수행한다.
- 군집이 병합되면 오차제곱합은 증가하는데, 증가량이 가장 작아지도록 군집을 형성한다.
- 크기가 비슷한 군집끼리 병합하게 되는 경향이 있다.
- R에서의 계층적 군집 분석
> d <- dist( data, method="euclidean" ) # 거리 행렬을 제공하는 함수
> h <- hclust( d, method="ave" ) # hclust() : 계층적 군집 분석 수행
# method : 군집간 거리측정 방식 지정
> plot(h) # 덴드로그램으로 시각화
> cutree(h, k=6) # 계층적 군집 결과를 원하는 그룹의 수(k)로 나누어 볼 수 있다.
# rect.hclust() 함수를 통해 원하는 그룹수로 나누어 시각화가 가능하다.
2) k-평균 군집
- k-평균 군집 알고리즘
① k개의 객체를 임의로 선택하여 군집의 중심으로 삼는다.
② 가장 가까운 중심으로 각 개체를 할당한다. (오차제곱합이 최소가 되도록)
③ 각 군집의 중심을 갱신한다.
④ 군집 중심의 변화가 거의 없을 때까지 ②~③ 과정 반복

- 특징
* 군집의 수(k)는 미리 정해야 한다.
* 초기 중심점들은 멀리 떨어져 있는 것이 바람직하며, 초기값에 따라 군집 결과가 크게 달라질 수 있다.
* 매 단계마다 오차제곱합을 최소화하는 방향으로 군집이 형성되는 탐욕적 알고리즘이다.
* 안정적 군집이 보장되나, 최적을 보장하지는 못한다.
- 장점
* 알고리즘이 단순하여 빠르게 수행
* 계층적 군집보다 많은 양의 자료를 다룰 수 있음
- 단점
* 군집의 중심 계산 과정에서 잡음이나 이상값에 영향을 많이 받음 (k-중앙값군집으로 보완)
* 볼록하지 않은 군집이 존재할 경우 성능이 떨어짐 (ex. U-형태의 군집)
- R에서의 k-평균 군집 수행
> kmeans(data, 군집수) or kcca() or cclust() # k-평균 군집 수행
> plot() # 시각화
> table() # 정오분류표
3) 혼합 분포 군집
- 데이터가 k개의 모수적 모형(군집)의 가중합으로부터 나왔다는 가정
- 각 데이터는 k개의 추정된 모형 중 어느 모형에 속할 확률이 높은지에 따라 분류

- 자료로부터 모수와 가중치를 추정하는 방법을 사용 (EM 알고리즘)
→ EM 알고리즘 : 모집단을 구성하는 각 집단의 분포는 정규분포를 따른다고 가정
각 자료가 어느 집단에 속하는지에 대한 정보를 '잠재변수 Z'라 한다.
① E-단계 : 잠재변수 Z의 기대치 계산
② M-단계 : Z의 기대치를 이용하여 파라미터를 추정
③ E~M 단계를 반복하며 모수 추정치에 수렴하는 값을 얻는다.

- 혼합 분포 군집의 특징
* k-평균 군집의 절차와 유사하나, 확률분포를 도입하여 군집을 수행하는 모형-기반의 군집 방법이다.
* 서로 다른 크기나 모양의 군집을 찾을 수 있다.
* EM알고리즘을 이용한 모수 추정에서 데이터가 커지면 수렴하는데 시간이 걸릴 수 있다.
* 군집의 크기가 너무 작으면 추정이 어려울 수 있다.
* k-평균 군집과 마찬가지로 이상값에 민감하다.
- R에서의 k-평균 군집 수행
> normalmixEM() 함수 또는 Mclust() 함수를 통해 혼합분포군집을 수행한다.
4) SOM(Self-Organizing Maps)
- 코호넨 맵이라고도 알려져 있음
- 비지도 신경망(unsupervised neural network)
- 고차원의 데이터를 이해하기 쉬운 저차원의 뉴런으로 정렬하여 지도의 형태로 형상화
- 시각적으로 이해하기 쉬움
- 패턴 발견, 이미지 분석 등에서 뛰어난 성능
- 입력 변수의 위치 관계를 그대로 보존, 입력 변수의 정보와 그들의 관계가 지도상에 그대로 나타남
- 경쟁 학습으로 각각의 뉴런이 입력 벡터와 얼마나 가까운가를 계산하여 연결 강도를 반복적으로 재조정하여 학습
- 입력 패턴과 가장 유사한 경쟁층 뉴런이 승자가 됨 (승자 독식 구조)
- 역전파 알고리즘 등을 이용하는 인공신경망과 달리 단 하나의 전방 패스를 사용함으로써 수행속도가 매우 빠름
- 두 개의 인공신경망 층으로 구성(입력층 + 경쟁층)
입력층 : 입력 변수의 개수와 동일하게 뉴런 수가 존재
경쟁층 : 사용자가 미리 정해놓은 군집의 수만큼 뉴런 수가 존재
입력층의 자료가 학습을 통해 경쟁층에 정렬됨(매핑, 완전연결)
- SOM의 학습알고리즘
단계1. SOM 맵의 연결강도 초기화
단계2. 입력 벡터 제시
단계3. 입력 벡터와 프로토타입 벡터 사이의 유사도를 계산(유클리드 거리 이용)
단계4. 가장 거리가 짧은 프로토타입 벡터(BMU) 탐색
단계5. BMU와 그 이웃들의 연결강도를 재조정
단계6. 단계2~5를 반복한다.
- R을 이용한 SOM 군집분석
> som( data, grid=somgrid(), rlen=100, alpha=c(0.05, 0.01), init, toroidal=FALSE, keep.data=TURE )
> summary() # SOM 군집 분석 결과 요약
> plot() # 그래프를 통한 시각화 (plot.kohonen의 SOM plot은 다양한 형식을 지원)
> unit.distances() # SOM 군집 분석 결과, 유닛 사이의 거리계산법
2. 연관 분석
1) 연관규칙의 개념
- 연관규칙이란 항목들 간의 'if-then'식으로 표현되는 유용한 패턴을 말함
- 이러한 패턴, 규칙을 발견하는 것을 연관 분석이라고 하며, 흔히 장바구니 분석이라고 말함
- 사소하고 일반적인 사실이 아니라, 분명하고 유용해야 함
"컴퓨터를 구매하면 마우스, 키보드를 산다" - 연관규칙X
"기저귀를 사는 고객은 맥주를 동시에 구매한다" - 연관규칙O
- 구매시점의 데이터가 포함되면, 시간에 따른 순차패턴을 발견할 수 있다.
"컴퓨터를 구입한 사람들 중 25%는 다음 달에 레이저 프린터를 구입한다."
2) 연관규칙의 측정지표
- 연관규칙을 이용하기 위해서는 데이터에 판매시점의 거래와 품목에 관한 정보가 포함되어야 한다.
- 특정 고객에 대한 성별, 나이 등의 기타 정보를 필요로 하지 않는다.
- 연관규칙으로 도출된 규칙이 모두 유용하지는 않기 때문에, 유의미한 것을 확인해야 한다.
- 유의미를 확인하기 위한 평가지표
ㄱ. 지지도(support) : [ P(A∩B) ] , 전체 거래수에서 A, B가 동시에 포함되는 비율
ㄴ. 신뢰도(confidence) : [ P(A∩B) / P(A) ] , A가 포함된 거래 중 B가 포함되는 비율
ㄷ. 향상도(lift) : [ P(B | A) / P(B) ]
* 향상도 1 : 두 품목이 서로 독립
* 향상도 > 1 : 양의 상관관계
* 향상도 < 1 : 음의 상관관계
- 연관 분석 수행시 모든 경우의 수를 분석하는 것은 비효율적이므로, 최소 지지도를 정한 뒤 규칙을 도출한다.
- 지지도를 높은 값에서 낮은 값으로 낮추어가며 실행한다.
3) 연관분석 절차 (Apriori 알고리즘)
- 단계1 : 최소 지지도 설정
- 단계2 : 최소 지지도를 넘는 모든 품목을 찾음
- 단계3 : 단계2에서 찾은 품목 중 2가지 품목 집합을 찾음
- 단계4 : 단계2~3에서 찾은 품목 집합을 결합하여 최소 지지도를 넘는 3가지 품목 집합을 찾음
- 단계5 : 반복 수행을 통해 최소 지지도를 넘는 빈발품목 집합을 찾음
4) 연관분석 장점
- 탐색적인 기법 : 분석의 결과를 이해하기 쉽다.
- 비목적성 분석기법 : 분석 방향이나 목적이 특별히 없어 목적변수가 없다.
- 사용이 편리한 분석데이터 형태 : 데이터를 변환없이 이용할 수 있다.
- 계산의 용이성 : 간단한 계산으로 분석을 수행한다.
5) 연관분석 단점
- 계산의 기하급수적 증가 : 품목 수가 증가하면, 계산이 기하급수적으로 늘어난다.
- 적절한 품목 결정 필요 : 너무 세분화된 품목으로 진행하면 의미없는 결과가 도출될 수 있다.
- 품목의 비율차이 : 거래량이 적은 품목은 지지도가 낮아서 규칙발견에 제외되기 쉽다.
6) R에서의 연관분석 수행
- apriori() 함수를 통한 연관규칙 발굴
> rules <- apriori(data)
- inspect() 함수를 통해 발굴된 규칙 확인
> inspect(rules)
- {arulesViz} 패키지를 통해 연관규칙의 시각화
> library(arulesViz)
> plot() 함수로 연관규칙 산점도, 관계도 시각화
'자격증 기록 > ADsP(데이터분석 준전문가)' 카테고리의 다른 글
[ADsP #13] 데이터분석 준전문가 시험결과 및 후기 (0) | 2019.10.03 |
---|---|
빅데이터 분석기사 신설예정!! (0) | 2019.09.07 |
[ADsP #11] 데이터 분석 3장 - 정형 데이터 마이닝(1) (0) | 2019.08.23 |
[ADsP #10] 데이터 분석 2장 - 통계 분석 (2) (0) | 2019.08.22 |
[ADsP #9] 데이터 분석 2장 - 통계 분석 (1) (0) | 2019.08.19 |