Jestem nowy w uczeniu maszynowym, więc próbuję znaleźć literaturę, ale nie jestem nawet pewien, po co Google. Moje dane mają następującą formę:
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
...
Gdzie każda akcja ma określone cechy (data, godzina, klient itp.). Jest około 300 użytkowników, a my mamy około 20 000 działań.
Pytanie :
Chcę dowiedzieć się, czy istnieje jakaś przyczynowość / korelacja między działaniami użytkownika. Na przykład „za każdym razem, gdy użytkownik E wykonuje akcję T, 2 dni później użytkownik G wykonuje akcję V.”. Ale pomiędzy nimi może być wielu innych użytkowników wykonujących wiele innych działań i możliwe, że nie będzie żadnej korelacji. Możliwe jest również, że niektórzy użytkownicy są skorelowani, ale inni są całkowicie niezależni. Czy jest to coś, co może znaleźć dla mnie uczenie maszynowe? Czy istnieje jakiś algorytm lub zestaw algorytmów, który mógłby mi pomóc?
Czytałem o analizie asocjacji i algorytmie Apriori, ale nie sądzę, że da mi to, czego potrzebuję, ponieważ wydaje się, że wymaga to znanych, dobrze odgraniczonych zestawów danych jako danych wejściowych, podczas gdy mam po prostu długi strumień pozornie losowego użytkownika działania. Wszelkie sugestie dotyczące tego, na co spojrzeć, będą mile widziane!
P
Odpowiedzi:
Myślę, że musisz przygotować dane przed użyciem dowolnego algorytmu w celu znalezienia często ustawianych elementów i reguł asocjacji.
Zobacz tabelę transakcji w tym artykule: analiza koszyka rynkowego
W twoim przypadku musisz ustawić (i dostroić) maksymalny okres czasu między interakcją, która ma być skorelowana, a następnie możesz wybrać częstego użytkownika, a do każdej transakcji, którą wykonał (lub próbkę), załączysz pojedynczy rekord 2 dni innej transakcji użytkownika. Atrybuty powinny być logiczne, takie jak
źródło
Jednym ze sposobów eksploracji danych jest utworzenie tabeli poprzedniej akcji x następnej akcji. Tak więc dla każdego zdarzenia znajdź kolejną akcję tego samego użytkownika. Możesz podobnie tabelarycznie opóźnić poprzednią akcję X do następnej akcji.
Następnie możesz sprawdzić, czy poprzednia akcja wpływa na następną. Jeśli nie, to Twoi użytkownicy są „bezpaństwowcy”.
Innym możliwym uproszczeniem jest zignorowanie identyfikatorów użytkowników i zapytanie, czy częstotliwość każdego działania jest taka sama w czasie czy zmienna; i jeśli zmienia się, czy jest cykliczny czy wykazuje trend.
Odpowiedzi na te pytania mogą wskazywać, że Twoje dane mają niewielką strukturę. Alternatywnie mogą podnieść kilka nowych hipotez do przetestowania.
źródło
To interesujące pytanie. Najlepszym podejściem jest sprawdzenie całego zestawu danych i utworzenie tabeli częstotliwości. Na przykład: Użytkownik A wykonuje akcję P i Y Użytkownik B wykonuje akcję Q i Z, użytkownik C wykonuje akcję R i X Podobnie jest więcej użytkowników wykonujących więcej akcji. Tak więc istnieje kilka podejść do radzenia sobie z tym zestawem danych 1) Algorytm klastra do grupowania podobnych pozycji w różnych segmentach 2) Analiza koszyka rynkowego w celu identyfikacji użytkowników i mapowania działań i częstotliwości
Bez przeglądania całego zestawu danych nie zaleca się przepisywania żadnego konkretnego algorytmu dla tego rodzaju pytań.
źródło