Mam zbiór danych użytkowników kupujących produkty ze strony internetowej.
Atrybuty, które mam, to identyfikator użytkownika, region (stan) użytkownika, identyfikator kategorii produktu, identyfikator słowa kluczowego produktu, identyfikator słowa kluczowego witryny internetowej i kwota sprzedaży produktu.
Celem jest wykorzystanie informacji o produkcie i stronie internetowej w celu ustalenia tożsamości użytkowników, takich jak „młody młody gracz” lub „mama w domu”.
Załączam przykładowe zdjęcie jak poniżej:
Istnieje razem 1940 unikalnych kategorii i 13845 niepowtarzalnych słów kluczowych dla produktów. Witryna zawiera 13063 unikalnych słów kluczowych. Cały zestaw danych jest ogromny, ponieważ są to dzienne dane logowania.
Mam na myśli tworzenie klastrów, ponieważ nie są one nadzorowane, ale te id są uporządkowane w liczbie nieposiadającej znaczenia numerycznego. Więc nie wiem, jak zastosować algorytm. Myślę również o klasyfikacji. Jeśli dodam kolumnę klasy na podstawie wielkości sprzedaży zakupionego produktu. Myślę, że klastrowanie jest bardziej preferowane. Nie wiem, jakiego algorytmu powinienem użyć w tym przypadku, ponieważ wymiary identyfikatora słowa kluczowego mogą być większe niż 10000 (każdy produkt może mieć wiele słów kluczowych, podobnie jak strona internetowa). Muszę użyć Spark do tego projektu.
Czy ktoś może mi pomóc z niektórymi pomysłami lub sugestiami?
Dziękuję bardzo!
Odpowiedzi:
W tej chwili mam czas na bardzo krótką odpowiedź, ale postaram się ją rozwinąć później.
To, co chcesz zrobić, to grupowanie , ponieważ chcesz odkryć etykiety dla swoich danych. (W przeciwieństwie do klasyfikacji, w której miałbyś etykiety co najmniej niektórych danych, a resztę chciałbyś oznaczyć).
Aby przeprowadzić grupowanie użytkowników, musisz mieć je jako pewnego rodzaju punkty w abstrakcyjnej przestrzeni. Następnie zmierzysz odległości między punktami i powiesz, że punkty „bliskie” są „podobne” i oznaczysz je zgodnie z ich miejscem w tej przestrzeni.
Musisz przekształcić swoje dane w coś, co wygląda jak profil użytkownika, np .: identyfikator użytkownika, a po nim wektor liczb reprezentujących cechy tego użytkownika. W twoim przypadku każda funkcja może być „kategorią witryny” lub „kategorią produktu”, a liczba może być kwotą wydaną na tę funkcję. Lub funkcja może być oczywiście kombinacją sieci i produktu.
Jako przykład wyobraźmy sobie profil użytkownika z trzema funkcjami:
Aby zbudować te profile, musisz zamapować „zbyt duże” kategorie i słowa kluczowe na funkcje, które uważasz za istotne. Sprawdź modelowanie tematu lub podobieństwo semantyczne, aby to zrobić. Po zbudowaniu tej mapy będzie ona zawierać stwierdzenie, że wszystkie dolary wydane na strony internetowe ze słowami kluczowymi „gadżet”, „elektronika”, „programowanie” i inne X powinny zostać zebrane w naszą pierwszą funkcję; i tak dalej.
Nie bój się „narzucania” funkcji! Będziesz musiał je udoskonalić i być może całkowicie je zmienić, po zgrupowaniu użytkowników.
Gdy masz już profile użytkowników, przejdź do ich klastra za pomocą k-średnich lub cokolwiek innego, co uważasz za interesujące. Niezależnie od zastosowanej techniki, będziesz zainteresowany uzyskaniem punktu „reprezentatywnego” dla każdego klastra. Zwykle jest to geometryczne „centrum” punktów w tej grupie.
Wykreśl te „reprezentatywne” punkty, a także porównaj je z innymi klastrami. Bardzo przydatne jest tutaj użycie mapy radarowej . Wszędzie tam, gdzie pojawia się istotna cecha (coś w przedstawicielu, które jest bardzo wyraźne, a także jest bardzo widoczne w porównaniu do innych klastrów), jest dobrym kandydatem, aby pomóc ci nazwać klaster chwytliwą frazą („kujony”, „fashionistki” , „agresywne mamy” ...).
Pamiętaj, że problem klastrowania jest problemem otwartym, więc nie ma „właściwego” rozwiązania! I myślę, że moja odpowiedź jest już dość długa; sprawdź także normalizację profili i filtrowanie wartości odstających.
źródło
Do orientacji i eksploracji mogę polecić WeKa , który jest bardzo fajnym zestawem narzędzi do uczenia maszynowego. Przyjmuje pewien format wejściowy (.ARFF), więc być może będziesz musiał go również przeanalizować.
Jeśli chodzi o dylemat słów kluczowych, zalecam dokonanie wyboru niektórych funkcji w celu wyeliminowania zbędnych lub niedotyczących słów kluczowych.
źródło