2 분 소요

※ 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 원리는 성립함
  • 따라서 개별 요소(이벤트)에 다른 요소를 추가하는 방식으로 규칙을 아래와 같이 직접 찾아 나가야 함
  1. 유니크한 요소 목록 추출
  2. 빈발하는 단일 이벤트 추출
  3. 이벤트 추가 및 지지도 계산
  4. 최대 빈발 아이템 집합 탐색
  5. 규칙 생성


■ 동적 프로그래밍

  • 원 문제를 작은 문제로 분할한 다음 점화식으로 만들어 재귀적인 형태로 원 문제를 해결하는 방식
  • 시퀀스 데이터에 대한 연관규칙탐사 적용을 위한 동적 프로그래밍 구조
  1. 요소 추가를 기다리는 Queue
  2. 요소 추가 및 지지도/신뢰도 계산
  3. 1,2 반복
  4. Rules



※ Time Series Data (시계열 데이터)

  • 각 요소가 (시간, 값) 형태로 구성된 데이터
  • 반드시 순서 및 시간을 고려해야 함


■ 시계열과 시퀀스 데이터의 차이

  • 시계열 데이터와 시퀀스 데이터는 사용하는 인덱스와 값의 종류로 다음과 같이 구분할 수 있음
구분 시계열 데이터 시퀀스 데이터
인덱스 시간(순서) 순서
주로 연속형 주로 범주형

다만, 엄밀히 말해서 시계열 데이터도 시퀀스 데이터에 속함


■ 시계열 패턴의 정의

  • 모양에 의한 패턴
  • 변화에 의한 패턴
    • e.g. 증가 - 감소 - 증가 - 감소
  • 값에 의한 패턴
    • e.g. 보통 - 큼 - 보통 - 매우 작음 - 보통 - …
  • 계절성 혹은 주기성이 있는 경우를 제외하면, 모양 패턴을 찾는 것은 거의 불가능에 가까움


■ SAX: 시계열 -> 시퀀스

  • 시계열 데이터는 연속형이라는 특징때문에 패턴을 찾으려면 이산화가 필요
  • SAX (Symbolic Aggregate Approximation)를 사용하면 시계열 데이터를 효과적으로 이산화할 수 있음
  • SAX는 아래 세 단계로 구성됨 (1) 윈도우 분할 (2) 윈도우별 대푝밧 계산 (3) 알파벳 시퀀스로 변환

댓글남기기