Sequence Data and Time Series Data
※ Sequence Data (시퀀스 데이터)
- 각 요소가 (순서, 값) 형태로 구성된 데이터
- 분석 시 반드시 순서를 고려해야 함
- 로그 데이터 대부분이 순서가 있는 시퀀스 데이터임
- e.g. 고객 구매 기록 / 고객 여정 / 웹 서핑 기록
■ 시퀀스 데이터에서의 빈발 패턴
- 반드시 순서가 고려되어야 함
- e.g.
ID | 기록 |
---|---|
#1 | {A, B} |
#2 | {B, C, D} |
#3 | {B, A, F} |
#4 | {B} |
- 비시퀀스 데이터에서 A->B가 출현한 ID: {#1, #3}
- 시퀀스 데이터에서 A->B가 출현한 ID: {#1}
■ 지지도와 신뢰도
- 분석 목적에 따라, 특정 패턴의 등장 여부에 대한 정의가 필요함
- e.g. A -> B -> C -> D
- A -> B는 출현 했음
- B -> A와 E -> A는 출현하지 않음
- A -> C는 등장했다고 볼 수도, 그렇지 않다고 볼 수도 있음
- 일반적으로, 윈도우 내 (크기 L)에 특정 이벤트가 발생했는지를 기준으로 패턴의 등장 여부를 확인
- e.g. A -> B -> C -> D
- (L=1) A -> B는 등장했으나, A -> C와 A -> D는 등장하지 않음
- (L=2) A -> B와 A -> C는 등장했으나, A -> D는 등장하지 않음
- (L=3) A -> B와 A -> C, A -> D 모두 등장함
- 지지도와 신뢰도에 대한 정의는 일반 데이터에 대한 것과 같으나, 출현 횟수를 계산하는 방식이 다름
■ 순서를 고려한 연관규칙 탐사
- 시퀀스 데이터에 대한 연관규칙 탐사에 대해서는
A->B와 B->A가 다른 지지도를 갖기 때문에,
같은 항목 집합으로부터 규칙을 생성할 수 없음 - 신뢰도에 대한 apriori 원리는 성립함
- 따라서 개별 요소(이벤트)에 다른 요소를 추가하는 방식으로 규칙을 아래와 같이 직접 찾아 나가야 함
- 유니크한 요소 목록 추출
- 빈발하는 단일 이벤트 추출
- 이벤트 추가 및 지지도 계산
- 최대 빈발 아이템 집합 탐색
- 규칙 생성
■ 동적 프로그래밍
- 원 문제를 작은 문제로 분할한 다음
점화식
으로 만들어재귀적인 형태
로 원 문제를 해결하는 방식 - 시퀀스 데이터에 대한 연관규칙탐사 적용을 위한 동적 프로그래밍 구조
- 요소 추가를 기다리는 Queue
- 요소 추가 및 지지도/신뢰도 계산
- 1,2 반복
- Rules
※ Time Series Data (시계열 데이터)
- 각 요소가 (시간, 값) 형태로 구성된 데이터
- 반드시 순서 및 시간을 고려해야 함
■ 시계열과 시퀀스 데이터의 차이
- 시계열 데이터와 시퀀스 데이터는 사용하는 인덱스와 값의 종류로 다음과 같이 구분할 수 있음
구분 | 시계열 데이터 | 시퀀스 데이터 |
---|---|---|
인덱스 | 시간(순서) | 순서 |
값 | 주로 연속형 | 주로 범주형 |
다만, 엄밀히 말해서 시계열 데이터도 시퀀스 데이터에 속함
■ 시계열 패턴의 정의
- 모양에 의한 패턴
- 변화에 의한 패턴
- e.g. 증가 - 감소 - 증가 - 감소
- 값에 의한 패턴
- e.g. 보통 - 큼 - 보통 - 매우 작음 - 보통 - …
- 계절성 혹은 주기성이 있는 경우를 제외하면, 모양 패턴을 찾는 것은 거의 불가능에 가까움
■ SAX: 시계열 -> 시퀀스
- 시계열 데이터는 연속형이라는 특징때문에 패턴을 찾으려면 이산화가 필요
- SAX (Symbolic Aggregate Approximation)를 사용하면 시계열 데이터를 효과적으로 이산화할 수 있음
- SAX는 아래 세 단계로 구성됨 (1) 윈도우 분할 (2) 윈도우별 대푝밧 계산 (3) 알파벳 시퀀스로 변환
댓글남기기