2 가지 기능과 일련의 이벤트를 기반으로 고객 분류


12

내가 설계하고있는 알고리즘에서 다음 단계가 무엇인지에 대한 도움이 필요합니다.

NDA로 인해 많은 것을 공개 할 수는 없지만 일반적이고 이해할 수 있도록 노력할 것입니다.

기본적으로 알고리즘의 여러 단계 후에 다음과 같은 결과가 있습니다.

내가 보유한 각 고객과 한 달 동안 수행하는 이벤트에 대해 첫 번째 단계에서 이벤트를 여러 범주로 클러스터링했습니다 (각 고객은 이벤트를 1에서 x, x는 1에서 25 사이의 범주로 구분하고, 일반적으로 첫 번째 범주는 다른 범주보다 이벤트 밀도가 더 높습니다).

각 범주와 고객에 대해 시간당 월의 이벤트를 집계하는 시계열을 만들었습니다 (이 이벤트가 수행되는시기의 패턴 가져 오기). 또한 남자가 적어도 하나의 이벤트를 수행하는 한 달 동안의 일 수 (30 일)와 하나 이상의 이벤트가있는 총 일수에 대해 하나 이상의 이벤트가있는 일 수를 기반으로 두 개의 정규화 변수를 사용하고 있습니다. 이벤트 (모든 클러스터 집계) 첫 번째는 고객이 한 달 동안 얼마나 활동적인지에 대한 비율을 제공하고 두 번째는 다른 고객과 카테고리를 비교합니다.

마지막 테이블은 다음과 같습니다

|*Identifier*|  *firstCat* | *feature1* | *feature2*  |   {      *(TIME SERIES)*   }

CustomerID  |  ClusterID |  DaysOver30 | DaysOverTotal | Events9AM Events10AM ... 

 xx | 1 | 0,69 |  0,72 |  0,2   0,13   ...

 xx | 2 | 0,11 |  0,28 |  0,1   0,45   ...

 xy | 1 | 0,23 |  0,88 |  0,00  0,60   ...

 xy | 2 | 0,11 |  0,08 |  1,00  0,00   ...

 xy | 3 | 0,10 |  0,04 |  0,40  0,60   ...

시계열 변수는 각 특정 범주의 일일 총 이벤트에 대한 백분율입니다 (이는 모든 변수를 더하는 각 행당 1이어야 함을 의미합니다). 예를 들어 시간 이벤트와 직렬 때문에 그런 식으로 그것을하는 이유는 0 0 0 1 0과는 1 1 1 2 1완전히 다른, 그리고 정상으로 표준화하여 유사한 결과를 줄 것이다. 그리고 서로 다른 범주 사이의 차이가 높기 때문에 시계열의 값을 다른 범주와 독립적으로 확인합니다.

내가 지금해야 할 일은 이러한 카테고리를 식별하는 것입니다 (1에서 x까지의 숫자는 1에서 25까지의 숫자 일 수 있음)는 태그 A, 태그 B 및 없음을 3 개의 태그로 식별합니다. 이러한 변수를 살펴보면 태그가 속한 태그를 수동으로 식별 할 수 있으며 아이디어는 가능한 한 수동으로 식별하고 분류 알고리즘을 사용하여 그로부터 배우고 모든 것을 식별하는 것입니다.

내 생각은 테이블에 여러 로지스틱 회귀를 사용하는 것이었지만 시계열의 모든 변수는 서로 연관되어 있으므로 서로 선형 관계이기 때문에 유클리드를 사용하는 시계열에서만 클러스터링 알고리즘을 사용하는 것이 좋습니다. 로지스틱 회귀 분석에서 서로 다른 패턴을 분류하고 결과와 다른 두 정규화 변수를 사용하는 거리입니다.

내가 가지고있는 다른 관심사는이 접근법이 다른 행과 독립적으로 각 행을 취한다는 것입니다. 이론적으로 각 고객에 대해 0 또는 1 태그 A, 0 또는 1 태그 B 만 있어야하며 나머지는 없음이어야합니다 (다른 팁은 정규화 기능에 크게 의존하기 때문에 일반적으로 태그 A와 B가 첫 번째 범주 사이에 있다는 것입니다 (총 일수가 높을 경우 시계열 패턴에 따라 행이 A 또는 B 일 가능성이 높음). .

편집 : 이것은 더 이상 문제가되지 않습니다. 태그 A 또는 기타와 태그 B 또는 다른 하나에 대해 두 가지 다른 로지스틱 회귀를 수행 할 것입니다. 결과 확률과 함께 각각 가장 좋은 것을 선택할 수 있습니다.

데이터 세트는 엄청 나며 최종 알고리즘은 SQL (Teradata)을 사용하여 적용해야하지만 로지스틱 회귀 계수 또는 클러스터링 중심을 얻으려면 샘플을 얻고 R을 사용하십시오.


그냥 제안 :) ... 질문이 그렇게 길다면 적절한 답변을 얻을 수 있는지 확실하지 않습니다. 예를 들어 태그는 정확히 연구 방향이지만 모든 것을 읽을 시간과 에너지는 없습니다! 더 짧은 버전을 업데이트 할 수 있다면 과학적보고에서 간단히 말을해야하는 것처럼 Q와 나 자신에게 더 좋습니다.
Kasra Manshaei

나는 질문을 줄이기 위해 노력할 것이다. 사람들이 내가 의도 한 것을 혼동한다고 스스로 설명하지 않으면 보통 그런 것입니다. 어쨌든, 내가 직업에 시간을
갖 자마자

당신의 정확한 질문은 무엇입니까? 간단히 시계열의 기능을 계산 한 다음 이러한 기능을 고객 기능에 추가합니다. 그런 다음 기본 클러스터링 만하면됩니다. 시계열의 기능을 선택하려면 도메인 지식이 필요합니다.
Nikolas Rieble

답변:


2

나는 질문이 게시 된 이후 오랜 시간이 걸렸다는 것을 알고 있지만 미래 독자들을 위해 비례 데이터의 시계열, 즉 비례 벡터를 분류하는 문제에 대한 또 다른 해결책을 제안합니다.

HMM (Hidden Markov Models)은 시계열 분류에 널리 사용됩니다. 원래 구현은 불연속 및 가우시안 데이터를 위해 개발되었지만 이후 더 많은 확률 분포로 확장되었습니다.

그중에서도 비례 데이터로 작업하기에 적합한 Dirichlet, 일반화 된 Dirichlet 및 Beta-Liouville 분포가 있습니다.

일반적으로 모델은 범주가 알려진 시계열에서 각 범주 (이 질문의 "태그")에 대해 학습됩니다. 새로운 시계열을 분류해야 할 때 각 모델에 대한 가능성을 계산합니다. 새로운 시계열은 일반적으로 가능성이 가장 높은 범주에 할당됩니다.

다음은 이러한 모델에 대한 참조 문서로서보다 깊이 소개하고 구현에 필요한 모든 방정식을 제공합니다.

  • 다이내믹 디 리클 렛 혼합물 모델, IDIAP, L. Chen, D. Barber, J.-M. 2007 년 4 월 오도 베즈
  • 공공 장소에서 이상 탐지에 적용되는 일반화 된 Dirichlet 및 Beta-Liouville 혼합물을 기반으로하는 숨겨진 Markov 모델을 사용한 비례 데이터 모델링, E. Epaillard, N. Bouguila, Pattern Recognition 55, pp 125-136, 2016

이 질문에 언급 된 두 가지 추가 기능을 위해 혼합 데이터 용 HMM도 다음 연구 논문에서 개발되었습니다 : 혼합 연속 / 연속 및 이산 / 연속 데이터 모델링을위한 하이브리드 히든 마르코프 모델, pp. 1-6, 2015.

이 모델은 회귀 모델보다 배치가 무겁지만 차별적이고 생성 가능한 모델이라는 이점이 있으며 처리 된 데이터에 약간의 변동성이있을 때 잘 일반화 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.