이벤트 간의 상관 관계를 찾기 위해 어떤 알고리즘을 사용할 수 있습니까?


12

기계 학습에 익숙하지 않아서 몇 가지 문헌을 찾으려고 노력하고 있지만 Google에 어떤 내용이 있는지 잘 모르겠습니다. 내 데이터는 다음과 같은 형식입니다.

User A performs Action P
User B performs Action Q
User C performs Action R
...
User C performs Action X
User A performs Action Y
User B performs Action Z
...

각 활동에 특정 특성 (날짜, 시간, 고객 등)이있는 경우 약 300 명의 사용자가 있으며 약 20,000 개의 작업이 있습니다.

질문 :

사용자 작업 사이에 인과 관계가 있는지 확인하고 싶습니다. 예를 들어 "사용자 E가 작업 T를 수행 할 때마다 2 일 후에 사용자 G가 작업 V를 수행합니다". 그러나 그 사이에는 다른 많은 작업을 수행하는 다른 사용자가 많을 수 있으며 상관 관계가 없을 수도 있습니다. 일부 사용자는 서로 관련되어 있지만 다른 사용자는 완전히 독립적 일 수도 있습니다. 이것이 머신 러닝에서 찾을 수있는 것입니까? 나를 도울 수있는 특정 알고리즘이나 알고리즘 세트가 있습니까?

Association Analysis 및 Apriori 알고리즘에 대해 읽었지만 잘 알려진 구분 된 데이터 세트를 입력으로 필요로하는 것처럼 필요한 것이 아니라고 생각합니다. 행위. 무엇을 볼지에 대한 제안은 가장 감사하겠습니다!


1
유향 그래프 에 이벤트를 넣으려고 했습니까? 정점은 동작 유형을 나타냅니다 (예 :) . 일부 사용자가 전에 작업 을 수행 한 경우 가장자리 가 있습니다 . 이러한 순서를 수행 한 사용자 수로 쉽게 가중치를 적용 할 수 있습니다. 사용자별로 그래프를 작성할 수도 있습니다. ( I , J ) I JG=(V,E)P(i,j)ij
0x90

답변:


1

알고리즘을 사용하여 빈번한 항목 세트 및 연관 규칙을 찾기 전에 데이터 준비를 수행해야한다고 생각합니다.

이 기사의 거래 테이블을 참조하십시오 : 시장 바구니 분석

귀하의 경우 상호 연관 될 것으로 예상되는 상호 작용 사이의 최대 시간 범위를 설정하고 미세 조정해야하며 빈번한 사용자를 선택할 수 있으며 그가 만든 각 거래 (또는 샘플)에 대해 단일 사용자 기록 2 일. 속성은 다음과 같이 부울이어야합니다.

UserA,transactionP |UserB,transaction Z| UserB, transaction F | [...]

정말 도움이됩니다. 감사합니다! 따라서 다른 사용자가 해당 사용자와 상관 관계가 있는지 묻거나 알고리즘을 한 번만 실행하고 "상관 된 사용자 집합 표시"를 요청하여 각 사용자에 대해 알고리즘을 한 번 실행합니까?
Matt

내 접근 방식을 따르면 몇 가지 사용자 + 트랜지션으로 시작한 "패턴"만 테스트 할 수 있습니다. 어떤 사용자와 조치를 선택해야하는지 상관 관계에 대한 지식에 따라 다릅니다.
cesko80

세 가지 제안. 1. 문의 범위를 좁 힙니다. 무례하지는 않지만, 데이터에 내재되어있는 많은, 가능한 많은 것들 중에서 의미있는 연관성을 모두 알려줄 수있는 포괄적이고 단일 한 통계적 절차는 없습니다. 2. 시계열 분석을 읽습니다. 3. 인과 ​​관계를 단순한 상관 관계와 구별하는 방법을 읽으십시오. 불행히도, 나는 제공 할 빠른 수정이 없습니다!
rolando2

1

데이터를 탐색하는 한 가지 방법은 이전 조치 x 다음 조치 표를 작성하는 것입니다. 따라서 각 이벤트에 대해 동일한 사용자의 다음 조치를 찾으십시오. 유사하게 이전 조치 X 지연을 다음 조치까지 지연시킬 수 있습니다.

그런 다음 이전 조치가 다음 조치에 영향을 주는지 여부를 탐색 할 수 있습니다. 그렇지 않은 경우 사용자는 "상태 비 저장"입니다.

또 다른 가능한 단순화는 사용자 ID를 무시하고 각 조치의 빈도가 시간이 지남에 따라 동일한 지 또는 변화 하는지를 묻는 것입니다. 주기적인지 또는 추세를 나타내는 지 여부가 다릅니다.

이 질문에 대한 답은 데이터의 구조가 거의 없음을 보여줍니다. 또는 테스트 할 몇 가지 새로운 가설을 제기 할 수 있습니다.


1

이것은 흥미로운 질문입니다. 가장 좋은 방법은 전체 데이터 세트를 조사하고 빈도 표를 만드는 것입니다. 예를 들면 다음과 같습니다. 사용자 A가 작업 P를 수행하고 Y 사용자 B가 작업 Q와 Z를 수행하고, 사용자 C가 작업 R과 X를 수행합니다. 마찬가지로, 더 많은 사용자가 더 많은 작업을 수행합니다. 따라서이 데이터 세트를 처리하는 몇 가지 방법이 있습니다. 1) 서로 다른 버킷에 유사한 항목을 그룹화하는 클러스터 알고리즘 2) 사용자 대 작업 매핑 및 빈도를 식별하는 시장 바구니 분석

전체 데이터 세트를 거치지 않고 이러한 종류의 질문에 특정 알고리즘을 처방하는 것은 권장되지 않습니다.

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