Community

INTRO K-means와 같은 군집 알고리즘을 들어보셨나요? 이번에 소개드릴 논문은 “Discovering Playing Patterns”으로 시계열 데이터 군집 방법론을 소개 합니다. 시계열

INTRO K-means와 같은 군집 알고리즘을 들어보셨나요? 이번에 소개드릴 논문은 “Discovering Playing Patterns”으로 시계열 데이터 군집 방법론을 소개 합니다. 시계열 패턴의 분류는 분석가의 목표와 관심영역(domain)에 따라 다양한 방법이 존재 하는데요, 이번 목표는 상승📈 혹은 하락세📉인 시계열 데이터를 군집하는 것 입니다. 본 논문은 유저 행동 시계열 데이터를 기반으로 군집화를 시도하지만 비슷한 고민을 가진 다양한 산업에서 활용할 수 있을 것 같습니다. How 1. 시계열 데이터는 Trend(추세) + Seasonal (계절성) +random(잔차)로 분해 가능합니다. 여기서는 Trend만을 이용합니다. 유저마다 Trend는 일별 플레이 타임의 이동평균으로 구합니다. 2. 이동 평균 데이터를 군집할 때 사용하는 metric은 보통 사용하는 유클리디안 거리가 아닌 상관계수(Correlation)을 이용합니다. 왜냐하면 군집의 목표는 플레이 타임이 상승 혹은 하락세인 유저 군집을 찾아내기 위함이기 때문입니다. 즉, 플레이 타임이 10->20->30 인 유저와 100->200->300인 유저를 한 군집으로 묶기 위해서 입니다. 유클리디안 거리를 이용한다면 30->20->10과 같은 하락세인 유저와 묶일 수 있기 때문입니다. 3. 마지막으로 군집을 할 때는 계층 군집(Hierarchical Cluster)에 ward연결법을 이용합니다. 이유는 다른 연결법보다 variance가 가장 적고 노이즈나 이상치에 덜 민감하기 때문입니다. 생각보다 간단하고 여러 분야에 바로 적용 가능할 것 같지 않나요? 보통의 시계열 군집은 R - dtwclust 패키지를 이용하셨을 겁니다. 이는 DTW(Dynamic time wrapping)을 이용하는 방법인데요, 실험을 해보면 유사한 패턴을 군집화 하지만 비슷한 scale의 데이터만 군집을 만든다고 합니다. 개인적으로는 방법이 간단한 편이라 바로 적용해 볼 수 있어서 처음 본 뒤로 애용하고 있는 방법론 중 하나 입니다.

알림

알림이 없습니다