[ADSP] 3과목 5장 정형데이터 마이닝 -2
인공신경망 분석
인공신경망 분석(ANN)
인공신경망이란
- 인간 뇌를 기반으로 한 추론 모델
- 뉴런은 기본적인 정보처리 단위
인공신경망연구
- 1943년 매컬럭과 피츠: 인간의 뇌를 수많은 신경세포가 연결된 하나이 디지털 네트워크 모형으로 간주하고 신경세포의 긴호처리 과정을 모형화하여 단순 패턴분류 모형을 개발
- 헵: 신경세포 사이의 연결강도를 조정하여 학습규칙개발
- 로젠블럿: 퍼셉트론이라는 인공세포 개발
- 비선형성의 한계점 발생 -XOR(Exclusive OR) 문제를 풀지 못하는 한계
- 홉필드, 러멜하트, 맥클랜드: 역전파알고리즘을 활용하여 비선형성을 극복한 다계층 퍼셉트론으로 새로운 인공신경망 모형등장
인간의 뇌를 형상화한 인공신경망
- 인간뇌의 특징
- 100억개의 뉴런과 6조개의 시냅스의 결합체
- 인간의 뇌는 현존하는 어떤 컴퓨터보다 빠르고 매우 복잡, 비선형적, 병렬적인 정보처리 시스템과 같음
- 적응성에 따라 ‘잘못된 답’에 대한 뉴런들 사이의 연결 약화, ‘올바른 답’에 대한 연결 강화
- 인간의 뇌 모델링
- 뉴런은 가중치가 있는 링크들로 연결
- 뉴런은 여러 입력 신호를 받지만 출력 신호는 오직 하나만 생성
인공 신경망의 학습
- 신경망은 가중치를 반복적으로 조정하며 학습
- 뉴런은 링크로 연결되어 있고, 각 링크에는 수치적인 가중치가 있음
- 인공 신경망은 신경망의 가중치를 초기화하고 훈련데이터를 통해 가중치를 갱신하여 신경망의 구조를 선택하고, 활용할 학습 알고리즘을 결정한 후 신경망 훈련
인공신경망의 특징
- 구조
- 입력 링크에서 여러 신호를 받아서 새로운 활성화 수준을 계산, 출력 링크로 출력 신호를 보냄
- 입력신호는 미가공 데이터 또는 다른 뉴런의 출력이 될 수 있음
- 출력신호는 문제의 최종적인 해가 되거나 다른 뉴런에 입력
- 뉴런의 계산
- 뉴런은 전이함수, 즉 활성화 함수를 사용
- 활성화 함수를 이용해 출력을 결정, 입력신호의 가중치 합을 계산하여 임계값과 비교
- 가중치 합이 임계값보다 작으면 뉴런의 출력은 -1, 크거나 같으면 +1
- 뉴런의 활성화 함수
- 시그모이드 함수
- 로지스틱 회귀분석과 유사하며 0~1의 확률값 가짐
- softmax함수
- 표준화지수 함수로도 불림
- 출력값이 여러개로 주어지고 목표치가 다범주인경우 각 범주에 속할 사후확률 제공
- Relu함수
- 입력값이 0이라는 0, 0이상은 x값을 가지는 함수
- 시그모이드 함수
- 단일 뉴런의 학습(단층 퍼셉트론)
- 퍼셉트론은 선형 결합기와 하드 리미터로 구성
- 초평면은 n차원 공간을 두개의 영역으로 나눔
- 초평면을 선형 분리 함수로 정의
신경망 모형 구축시 고려사항
- 입력 변수
- 신경망 모형은 그 복잡성으로 인하여 입력 자료의 선택에 매우 민감
- 입력변수가 범주형 또는 연속형변수일때 아래의 조건이 신경망 모형에 적합
범주형 변수: 모든 범주에서 일정 빈도 이상의 값을 갖고 각 범주의 빈도가 일정할 때 연속형 변수: 입력변수 값들의 범위가 변수간의 큰 차이가 없을 떄 - 연속형 변수의 경우 그 분포가 평균을 중심으로 대칭이 아니면 좋지 않은 결과를 도출하기 때문에 아래와 같은 방법을 활용
변환: 고객의 소득(대부분 평균미만이고 특정 고객의 소득이 매우 큰): 로그변환 범주화: 각 범주의 빈도가 비슷하게 되도록 설정 - 범주형 변수의 경우 가변수화하여 적용하고 가능하면 모든 범주형 변수는 같은 범위를 갖도록 가변수화 하는 것이 좋음
- 가중치의 초기값과 다중 최소값 문제
- 역전파 알고리즘은 초기값에 따라 결과가 많이 달라지므로 초기값의 선택은 매우 중요
- 가중치가 0이면 시그모이드 함수는 선형이 되고 신경망 모형은 근사적으로 선형모형
- 일반적으로 초기값은 0 근처로 랜덤하게 선택하므로 초기 모형은 선형모형에 가깝고, 가중치 값이 증가할수록 비선형모형이 됨(초기값이 0이면 반복하여도 값이 전혀 변하지 않고, 너무 크면 좋지 않은 해를 주는 문제점을 내포)
- 학습모드
- 온라인 학습모드
- 각 관측값을 순차적으로 하나씩 신경망에 투입하여 가중치 추정값이 매번 바뀜
- 일반적으로 속도가 빠르며 훈련자료에 유사값이 많은 경우 그 차이가 더 두드러짐
- 훈련자료가 비정상성과 같이 특이한 성질을 가진 경우가 좋음
- 국소최솟값에서 벗어나기 쉬움
- 확률적 학습 모드
- 온라인 학습 모드와 같으나 신경망에 투입되는 관측값의 순서가 랜덤
- 배치 학습 모드
- 전체 훈련자료를 동시에 신경망에 투입
- 온라인 학습모드
- 은닉층과 은닉노드
- 신경망을 적용할 때 가장 중요한 부분이 모형의 선택(은닉층의 수와 은닉노드의 수 결정)
- 은닉층과 은닉노드가 많으면 가중치가 많아져서 과대 적합 문제 발생
- 은닉층과 은닉노드가 적으면 과소적합 문제 발생
- 은닉층의 수가 하나인 신경망은 범용 근사자이므로 모든 매끄러운 함수를 근사적으로 표현할 수 있음. 그러므로 가능하면 은닉층은 하나로 선정
- 은닉노드의 수는 적절히 큰 값으로 놓고 가중치를 감소시키며 적용하는 것이 좋음
- 과대 적합 문제
- 신경망에서는 많은 가중치를 추정해야 하므로 과대적합문제 빈번
- 알고리즘의 조기종료와 가중치 감소 기법으로 해결
- 모형이 적합하는 과정에서 검증오차가 증가하기 시작하면 반복을 중지하는 조기종료 시행
- 선형모형의 능형회귀와 유사한 가중치 감소라는 벌점화 기법 활용
군집분석
군집분석
개요
- 각 객체의 유사성을 측정하여 유사성이 높은 대상 집단을 분류, 군집에 속한 객체들의 유사성과 서로다른 군집에 속한 객체간의 상이성을 규명하는 분석 방법
- 특성에 따라 고객을 여러 개의 배타적인 집단으로 나누는 것
- 결과는 구체적인 군집분석 방법에 따라 차이
- 군집의 개수나 구조에 대한 가정 없이 데이터들 사이의 거리를 기준으로 군집화 유도
-
마케팅 조사에서 소비자들의 상품구매행동이나 life style에 따른 소비자군 분류하여 시장전략 수립 등에 활용
- 계층적 군집
- 합병형
- 단일(최단) 연결법
- 평균 연결법
- Ward 연결법
- 완전(최장) 연결법
- 중심연결법
- 분리형
- 다이아나 방법
- 합병형
- 분할적 군집
- 프로토타입
- K-중심 군집
- 퍼지 군집
- K-평균 군집
- K-중앙값 군집
- K-메도이드 군집
- 분포기반
- 혼합분포군집
- 밀도기반
- 중심밀도 군집
- 밀도기반
- 프로토타입
특징
- 요인분석과 차이점
- 요인분석은 유사한 변수를 함께 묶어주는 것이 목적
- 판변분석과의 차이점
- 판별분석은 사전에 집단이 나누어져 있는 자료를 통해 새로운 데이터를 기존의 집단에 할당하는 것이 목적
거리
군집분석에서는 관측 데이터 간 유사성이나 근접성을 측정해 어느 군집으로 묶을 수 있는지 판단
연속형 변수의 경우
- 유클리디안 거리
- 데이터간의 유사성을 측정할 때 많이 사용하는 거리
- 통계적 개념이 내포되어있지 않아 변수들의 산포 정도가 전혀 감안되어 있지 않음
- 표준화 거리
- 해당변수의 표준편차로 척도 변환한 후 유클리드안 거리를 계산하는 방법
- 표준화하게 되면 척도의 차이, 분산의 차이로 인한 왜곡을 피할 수 있음
- 마할라노비스 거리
- 통계적 개념이 포함된 거리
- 변수들의 산포를 고려하여 이를 표준화한 거리
- 두 벡터 사이의 거리를 산포를 의미하는 표본공분산으로 나눠주어야 하며, 그룹에 대한 사전 지식 없이는 표본공분산 S를 계산할 수 없음
- 페비셰프 거리
- 맨하탄 거리
- 유클리디안 거리와 함꼐 가장 많이 사용되는 거리
- 맨하탄에서 건물에서 건물을 가기위한 최단 거리를 구하기 위해 고안된 거리
- 캔버라 거리
- 민코우스키 거리
- 맨하탄 거리와 유클리디안 거리를 한번에 표현한 공식
- L1 거리(맨하탄거리), L2 거리(유클리디안 거리)라 불리고 있음
범주형 변수의 경우
- 자카드 거리
- 자카드 계수
- 코사인 거리
- 문서를 유사도를 기준으로 분류 혹은 그루핑 할 떄 유용하게 사용
- 코사인 유사도
- 두 개체의 백터 내적의 코사인 값을 이용하여 측정된 벡터간의 유사한 정도
계층적 군집분석
- 계층적 군집방법은 n개의 군집으로 시작해 점차 군집의 개수를 줄여 나가는 방법
- 계층적 군집을 형성하는 방법에는 합병형 방법, 분리형 방법이 있음
최단연결법(single linkage, nearest neighbor)
- n*n 거리행렬에서 거리가 가장 가까운 데이터를 묶어서 군집 형성
- 군집과 군집 또는 데이터와의 거리를 계산 시 최단거리(min)를 거리로 계산하여 거리행렬 수정을 진행
- 수정된 거리행렬에서 거리가 가까운 데이터 또는 군집을 새로운 군집으로 형성
최장연결법(complete linkage, farthest neighbor)
- 군집과 군집 또는 데이터와의 거리를 계산할 때 최장거리를 거리로 계산하여 거리 행렬을 수정
평균연결법(average linkage)
- 군집과 군집 또는 데이터와의 거리를 계산할 때 평균을 거리로 계산하여 거리행렬 수정
와드연결법(ward linkage)
- 군집내 편차들의 제곱합을 고려한 방법
- 군집 간 정보의 손실을 최소화하기 위해 군집화를 진행
군집화
- 거리행렬을 통해 가장 가까운 거리의 객체들간의 관계를 규명하고 덴드로그램을 그림
- 덴드로그램을 보고 군집의 개수를 변화해 가면서 적절한 군집 수 선정
- 군집의 수는 분석 목적에 따라 선정할 수 있지만 대부분 5개 이상의 군집은 잘 활용하지 않음
- 군집화 단계
- 거리행렬을 기준으로 덴드로그램을 그림
- 덴드로그램의 최상단부터 세로축의 개수에 따라 가로선을 그어 군집의 개수 선택
- 각 객체들의 구성을 고려해서 적절한 군집수 선정
비계층적 군집분석
n개의 개체를 g개의 군집으로 나눌 수 있는 모든 가능한 방법을 점검해 최적화한 군집 형성
K-평균 군집분석
- 주어진 데이터를 k개의 클러스터로 묶는 알고리즘, 각 클러스터와 거리 차이의 분산을 최소화하는 방식으로 동작
K-평균 군집분석과정
- 원하는 군집의 개수와 초기값들을 정해 seed중심으로 군집형성
- 각 데이터를 거리가 가장 가까운 seed가 있는 군집으로 분류
- 각 군집의 seed 값을 다시 계산
- 모든 개체가 군집으로 할당될 때까지 위 과정 반복
K-평균 군집분석의 특징
- 거리계산을 통해 군집화가 이루어지므로 연속형 변수에 활용 가능
- K개의 초기 중심값은 임의로 선택 가능(가급적 멀리 떨어지는 것이 바람직)
- 초기 중심값을 임의로 선택할 때 일렬로 선택하면 군집혼합되지 않고 층으로 나누어질 수 있어 주의(초기 중심값의 선정에 따라 결과 달라질 수 있음)
- 초기 중심으로 부터 오차 제곱합을 최소화하는 방향으로 군집이 형성되는 탐욕적알고리즘이므로 안정된 군집은 보장하나 최적이라는 보장없음
| 장점 | 단점 |
|---|---|
| 알고리즘이 단순하며, 빠르게 수행되어 분석 방법 적용이 용이 | 군집의 수, 가중치와 거리 정의 어려움 |
| 계층적 군집분석에 비해 많은 양의 데이터를 다룰 수 있음 | 사전에 주어진 목적이 없으므로 결과해석 어려움 |
| 내부 구조에 대한 사전정보가 없어도 의미있는 자료구조를 찾을 수 있음 | 잡음이나 이상값의 영향을 많이 받음 |
| 다양한 형태의 데이터에 적용이 가능 | 볼록한 형태가 아닌 군집이 존재할 경우 성능이 떨어짐 |
| 초기 군집수 결정에 어려움이 있음 |
혼합 분포 군집(mixture distrivution clustering)
개요
- 모형 기반의 군집 방법, 데이터가 k개의 모수적 모형의 가중합으로 표현되는 모집단 모형으로부터 나왔다는 가정하에서 모수와 함께 가중치를 자료로부터 추정하는 방법 사용
- K개의 각 모형은 군집을 의미, 각 데이터는 추정된 k개의 모형 중 어느 모형으로부터 나왔을 확률이 높은지에 따라 군집의 분류가 이루어짐
- 흔히 혼합모형에서의 모수와 가중치의 추정에는 EM 알고리즘 사용
EM 알고리즘의 진행과정
- 각 자료에 대해 Z의 조건부분포로부터 조건부 기댓값을 구할 수 있음
- 관측변수 X와 잠재변수 Z를 포함하는 (X,Z)에 대한 로그-가능도함수에 Z 대신 상수값인 Z의 조건부 기댓값을 대입하면, 로그-가능도함수를 최대로 하는 모수를 쉽게 찾을수 있음(M-단계)
- 갱신된 모수 추정치에 대해 위 과정을 반복한다면 수렴하는 값을 얻게 되고, 이는 최대 가능도 추정치로 사용될 수 있음
- E-단계: 잠재변수 Z의 기대치 계산
- M-단계: 잠재변수 Z의 기대치를 이용하여 파라미터를 추정
혼합 분포 군집모형의 특징
- K-평균군집의 절차와 유사하지만 확률분포를 도입하여 군집을 수행
- 군집을 몇 개의 모수로 표현할 수 있으며, 서로 다른 크기나 모양의 군집을 찾을 수 있음
- EM 알고리즘을 이용한 모수 추정에서 데이터가 커지면 수렴에 시간이 걸릴 수 있음
- 군집의 크기가 너무 작으면 추정의 정도가 떨어지거나 어려울 수 있음
- K-평균군집과 같이 이상치 자료에 민감하므로 사전에 조치 필요
SOM(Self Organizing Map)
개요
- 자기조직화지도 알고리즘은 코호넨에 의해 제시, 개발되었으며 코호넨 맵이라고도 알려져있음
- SOM은 비지도 신경망으로 고차원의 데이터를 이해하기 쉬운 저차원의 뉴런으로 정렬하여 지도의 형태로 형상화
- 이러한 형상화는 입력 변수의 위치 관계를 그대로 보존한다는 특징있음
- 실제 공간의 입력 변수가 가까이 있으면, 지도상에도 가까운 위치
구성
SOM 모델은 두개의 인공신경망층으로 구성
- 입력층(Input Layer)
- 입력변수의 개수와 동일하게 뉴런 수 존재
- 입력층의 자료는 학습을 통하여 경쟁층에 정렬, 이를 지도라 부름
- 입력층에 있는 각각의 뉴런은 경쟁층에 있는 각각의 뉴런들과 연결(완전 연결)
- 경쟁층(Competitive layer: 2차원 격차로 구성된 층)
- 입력벡터의 특성에 따라 벡터가 한 점으로 클러스터링 되는 층
- SOM은 경쟁 학습으로 각각의 뉴런이 입력 벡터와 얼마나 가까운가를 계산하여 연결 강도를 반복적으로 재조정하여 학습
- 이 과정을 거치면서 연결강도는 입력 패턴과 가장 유사한 경쟁층 뉴런이 승자
- 입력 층의 표본 벡터에 가장 가까운 프로토타입 벡터를 선택해 BMU라고하며, 코호넨의 승자 독점의 학습 규칙에 따라 위상학적 이웃에 대한 연결 강도를 조정
- 승자 독식 구조로 인해 경쟁층에는 승자 뉴런만이 나타나며, 승자와 유사한 연결 강도를 갖는 입력 패턴이 동일한 경쟁 뉴런으로 배열
특징
- 고차원의 데이터를 저차원의 지도 형태로 형상화하기 떄문에 시각적으로 이해가 쉬움
- 입력 변수의 위치 관계를 그대로 보존하기 때문에 실제 데이터가 유사하면 지도상에서 가깝게 표현
- 패턴 발견, 이미지 분석 등에서 뛰어난 성능을 보임
- 역전파 알고리즘 등을 이용하는 인공신경망과 달리 단 하나의 전방 패스를 사용함으로써 속도가 매우 빠름
- 실시간 학습처리 가능
SOM과 신경망 모형 차이
| 구분 | 신경망 모형 | SOM |
|---|---|---|
| 학습 방법 | 오차역전파법 | 경쟁학습방법 |
| 구성 | 입력층, 은닉층, 출력층 | 입력층, 2차원 격자 형태의 경쟁층 |
| 기계 학습 방법의 분류 | 지도학습 | 비지도학습 |
최신 군집분석 기법
Hierarchical Clustering
idx <- sample(1:dim(iris)[1],40)
iris.s <- iris[idx,]
iris.s$Species <- NULL
hc <- hclust(dist(iris.s),method="ave")
plot(hc, hang=-1, labels = iris$Species[idx])

K-means Clustering
data(iris)
newiris <- iris
newiris$Species <- NULL
kc <- kmeans(newiris,3)
table(iris$Species, kc$cluster)
plot(newiris[c("Sepal.Length","Sepal.Width")], col = kc$cluster)

연관분석
연관규칙
연관규칙분석의 개념
- 연관성 분석은 흔히 장바구니분석 또는 서열분석이라고 불림
- 기업의 데이터베이스에서 상품의 구매, 서비스 등 일련의 거래 또는 사건들 간의 규칙을 발견하기 위해 적용
- 장바구니 분석: ‘장바구니에 무엇이 같이 들어 있는지에 대한 분석’
- 서열분석: ‘A를 산 다음에 B를 산다’
연관규칙의 형태
조건과 반응의 형태(if- then)로 이루어져 있음
만일 A가 일어나면 B가 일어난다
연관규칙의 측도
산업의 특성에 따라 지지도, 신뢰도, 향상도 값을 잘 보고 규칙을 선택해야 함
- 지지도(support)
- 전체 거래 항목 중 항목 A와 항목 B를 동시에 포함하는 거래의 비율로 정의
- 신뢰도(confidence)
- 항목 A를 포함한 거래 중에서 항목 A와 항목 B가 같이 포함될 확률
- 연관성의 정도를 파악할 수 있음
- 향상도(Lift)
- A가 구매되지 않았을 때 품목 B의 구매확률에 비해 A가 구매됐을 때 품목 B의 구매확률의 증가 비
- 연관규칙 A-> B는 품목 A와 품목 B의 구매가 서로 관련이 없는 경우에 향상도가 1이됨
연관규칙의 절차
- 최소 지지도보다 큰 집합만을 대상으로 높은 지지도를 갖는 품목 집합을 찾는 것
- 처음에는 5%로 잡고 규칙이 충분히 도출되는지를 보고 다양하게 조절하여 시도
- 처음부터 너무 낮은 최소 지지도를 선정하는 것은 많은 리소스가 소모되므로 적절하지 않음
- 절차
- 최소 지지도 결정
- 품목 중 최소 지지도를 넘는 품목 분류
- 2가지 품목 집합 생성
- 반복적으로 수행해 빈발품목 집합을 찾음
연관규칙의 장점과 단점
- 장점
- 탐색적인 기법으로 조건 반응으로 표현되는 연관성분석과 결과를 쉽게 이해할 수 있음
- 강력한 비목적성 분석기법으로 분석 방향이나 목적이 특별히 없는 경우 목적변수가 없으므로 유용하게 활용
- 사용이 편리한 분석 데이터의 형태로 거래 내용에 대한 데이터를 변환 없이 그 자체로 이용할 수 있는 간단한 자요 구조
- 분석을 위한 계산 간단
- 단점
- 품목수가 증가하면 분석에 필요한 계산은 기하급수적으로 증가
- 이를 개선하기 위해 유사한 품목을 한 범주로 일반화
- 연관 규칙의 신뢰도 하한을 새롭게 정의해 실제 드물게 관찰되는 의미가 적은 연관규칙은 제외
- 너무 세분화한 품목을 갖고 연관성 규칙을 찾으면 의미없는 분석이 될 수도 있음
- 적절히 구분되는 큰 범주로 구분해 전체 분석에 포함시킨 후 그 결과 중에서 세부적으로 연관규칙을 찾는 작업 수행
- 거래량이 적은 품목은 당연히 포함된 거래수가 적을 것이고, 규칙발견시 제외하기 쉬움
- 그 품목이 관련성을 살펴보고자 하는 중요한 품목이라면 유사한 품목들과 함께 범주로 구성하는 방법을 통해 연관성 규칙의 과정에 포함
- 품목수가 증가하면 분석에 필요한 계산은 기하급수적으로 증가
순차패턴
- 동시에 구매될 가능성이 큰 상품군을 찾아내는 연관성분석에 시간이라는 개념을 포함시켜 순차적으로 구매 가능성이 큰 상품군을 찾아내는 것
- 연관성분석에서의 데이터 형태에서 각각의 고객으로부터 발생한 구매시점에 대한 정보가 포함
기존 연관성분석의 이슈
- 대용량 데이터에 대한 연관성분석이 불가능
- 시간이 많이 걸리거나 기존 시스템에서 실행시 시스템 다운되는 현상 발생
최근 연관성분석 동향
- 거래내역에 포함되어 있는 모든 품목의 개수가 n개 일 때, 품목들의 전체집합에서 추출할 수 있는 품목 부분집합의 개수는 $2^n - 1$(공집합 제외)개다. 그리고 가능한 모든 연관 규칙의 개수는 $3^n - 2^{n+1} + 1$개이다.
- 이때 모든 가능한 품목 부분집합의 개수를 줄이는 방식으로 작동하는 것이 Apriori 알고리즘
- 거래내역 안에 포함된 품목의 개수를 줄여 비교하는 횟수를 줄이는 방식으로 작동하는 것이 FP-Growth 알고리즘
Apriori 알고리즘
- 최소 지지도보다 큰 지지도 값을 갖는 품목의 집합을 빈발항목집합이라고 함
- 모든 품목집합에 대한 지지도를 전부 계산하는 것이 아니라, 최소 지지도 이상의 빈발항목집합을 찾은 후 그것들에 대해서만 연관규칙을 계산하는 것
- 1994년에 발표된 1세대 알고리즘으로 구현과 이해하기가 쉽다는 장점이 있으나, 지지도가 낮은 후보 생성 시 아이템의 개수가 많아지면 계산 복잡도가 증가한다는 문제점을 가지고 있음
FP-Growth 알고리즘
- FP-Growth 알고리즘은 후보 빈발항목집합을 생성하지 않고, FP-Tree를 만든 후 분할정복 방식을 통해 APriori 알고리즘 보다 더 빠르게 빈발항목집합을 추출할 수 있는 방법
- Aprirori 알고리즘의 약점을 보완하기 위해 고안, 데이터베이스를 스캔하는 횟수가 작고, 빠른 속도로 분석가능
연관성분석 활용방안
- 장바구니 분석의 경우 실시간 상품추천을 통한 교차 판매에 응용
- 순차 패턴 분석은 A를 구매한 사람인데 B를 구매하지 않은 경우, B를 추천하는 교차판매 캠페인에 사용
연관성분석 예제
> data(Groceries)
> inspect(Groceries[1:3])
items
[1] {citrus fruit,semi-finished bread,margarine,ready soups}
[2] {tropical fruit,yogurt,coffee}
[3] {whole milk}
> rules <- apriori(Groceries, parameter = list(support=0.01, confidence = 0.3))
Apriori
Parameter specification:
confidence minval smax arem aval originalSupport maxtime support minlen maxlen target ext
0.3 0.1 1 none FALSE TRUE 5 0.01 1 10 rules TRUE
Algorithmic control:
filter tree heap memopt load sort verbose
0.1 TRUE TRUE FALSE TRUE 2 TRUE
Absolute minimum support count: 98
set item appearances ...[0 item(s)] done [0.00s].
set transactions ...[169 item(s), 9835 transaction(s)] done [0.00s].
sorting and recoding items ... [88 item(s)] done [0.00s].
creating transaction tree ... done [0.00s].
checking subsets of size 1 2 3 4 done [0.00s].
writing ... [125 rule(s)] done [0.00s].
creating S4 object ... done [0.00s].
- apriori 알고리즘으로 연관규칙분석을 실행한 결과 총 88개의 아이템으로 연관규칙을 만들어냈으며 125개의 Rule이 발견되었음
- 규칙의 수가 너무 적으면 지지도와 신뢰도를 낮추고, 너무 많으면 지지도와 신뢰도를 높여야함
> inspect(sort(rules,by=c("lift"), decreasing = TRUE)[1:20])
lhs rhs support confidence coverage lift count
[1] {citrus fruit,other vegetables} => {root vegetables} 0.01037112 0.3591549 0.02887646 3.295045 102
[2] {tropical fruit,other vegetables} => {root vegetables} 0.01230300 0.3427762 0.03589222 3.144780 121
[3] {beef} => {root vegetables} 0.01738688 0.3313953 0.05246568 3.040367 171
[4] {citrus fruit,root vegetables} => {other vegetables} 0.01037112 0.5862069 0.01769192 3.029608 102
[5] {tropical fruit,root vegetables} => {other vegetables} 0.01230300 0.5845411 0.02104728 3.020999 121
[6] {other vegetables,whole milk} => {root vegetables} 0.02318251 0.3097826 0.07483477 2.842082 228
[7] {whole milk,curd} => {yogurt} 0.01006609 0.3852140 0.02613116 2.761356 99
[8] {root vegetables,rolls/buns} => {other vegetables} 0.01220132 0.5020921 0.02430097 2.594890 120
[9] {root vegetables,yogurt} => {other vegetables} 0.01291307 0.5000000 0.02582613 2.584078 127
[10] {tropical fruit,whole milk} => {yogurt} 0.01514997 0.3581731 0.04229792 2.567516 149
[11] {yogurt,whipped/sour cream} => {other vegetables} 0.01016777 0.4901961 0.02074225 2.533410 100
[12] {other vegetables,whipped/sour cream} => {yogurt} 0.01016777 0.3521127 0.02887646 2.524073 100
[13] {tropical fruit,other vegetables} => {yogurt} 0.01230300 0.3427762 0.03589222 2.457146 121
[14] {root vegetables,whole milk} => {other vegetables} 0.02318251 0.4740125 0.04890696 2.449770 228
[15] {whole milk,whipped/sour cream} => {yogurt} 0.01087951 0.3375394 0.03223183 2.419607 107
[16] {citrus fruit,whole milk} => {yogurt} 0.01026945 0.3366667 0.03050330 2.413350 101
[17] {onions} => {other vegetables} 0.01423488 0.4590164 0.03101169 2.372268 140
[18] {pork,whole milk} => {other vegetables} 0.01016777 0.4587156 0.02216573 2.370714 100
[19] {whole milk,whipped/sour cream} => {other vegetables} 0.01464159 0.4542587 0.03223183 2.347679 144
[20] {curd} => {yogurt} 0.01728521 0.3244275 0.05327911 2.325615 170
- 향상도를 기준으로 내림차순 정렬한 후 상위 5개의 규칙을 확인해 보았을 때, rhs의 제품만 구매할 확률에 비해 lhs의 제품을 샀을때 rhs제품을 구매할 확률이 약 3배가량 높음(Lift > 3 이기 때문)
- rhs와 lhs 제품간 결합상품 할인쿠폰 혹은 품목배치변경을 제안 할 수 있음
댓글남기기