• Geeks' Blog

Analiza koszyka zakupowego algorytmem FPGrowth

Jeśli już jesteś na tej stronie, zapewne wiesz czym jest 'analiza koszyka zakupowego'. Dla wszystkich pozostałych którki wstęp: analiza koszyka zakupowego to technika eksploracji danych, która analizuje wzorce współwystępowania i określa siłę powiązania między produktami kupowanymi razem. Nazywamy ją również eksploracją częstych zestawów przedmiotów lub analizą asocjacji. Wykorzystuje ona te wzorce rozpoznawane w zakupach klientów, aby zrozumieć ich zachowania - zidentyfikowanie relacji między przedmiotami kupowanymi przez klientów.

Źródłem wzorców, jest ogromna ilość danych; transakcji zakupowych. Takie analizy pomagają to w procesach podejmowania decyzji związanych z marketingiem krzyżowym, projektowaniem katalogów, rekomendacjami produktów w sklepach internetowych itd.

Dla przykładu; kiedy klienci kupują piwo, mogą również kupić orzeszki. Ta relacja jest przedstawiona jako warunek, jak poniżej. 

JEŚLI piwo TO orzeszki

To oznacza, że produkty podane po prawej stronie są częściej kupowane razem z produktami po lewej stronie. Analiza koszyka zakupowego w eksploracji danych pomaga nam lepiej zrozumieć te zależności i pokazuje zależność decyzji zakupowych.

Najczęściej stosowane algorytmy w analizie koszyka zakupowego

    Apriori (zobacz opis jego użycia)
    – klasyczny algorytm generowania częstych zestawów i reguł asocjacyjnych.
    – podstawowy w wielu bibliotekach (np. mlxtend, Orange, Weka).

    Eclat
    – oparty na przecięciach zbiorów transakcji (tidsets).
    – szybki przy mniejszych przestrzeniach cech.

    FP-Growth (Frequent Pattern Growth)
    – wydajniejszy niż Apriori, bo unika generowania zbędnych kandydatów.
    – używa struktury drzewa (FP-tree).

Przykłady które znajdziesz w Internecie najczęściej bazują właśnie na Apriori. Ten algorytm jest dobrym wyborem dla demonstracji odnajdywania reguł asocjacyjnych, do testów, ale zupełnie nie nadaje się do zastosowania w realnym świecie gdzie mamy setki tysiecy a nawet miliony transakcji, gdzie transakcje mogą zawierać nawet dziesiątki artykułów. Elcat także jest algorytmem który może być użyty tylko dla analizy niewielkich zbiorów danych.

Uruchomienie algorytmu FP-Growth

Jeśli planujesz analizować prawdziwe zbiory danych, realne transakcje klientów, najlepszym pomysłem będzie użycie środowiska Apache Spark. To oprogramowanie posiada implementację algorytmu FP-Growth. Analizę koszykową w Apache Spark z użyciem FP-Growth warto wykonywać ze względu na możliwość efektywnego przetwarzania bardzo dużych zbiorów danych, optymalne wykorzystanie pamięci dzięki kompresji wzorców oraz przetwarzanie rozproszone, które pozwala na szybkie wykonanie obliczeń na wielu maszynach jednocześnie.

Więcej…

Jak typy danych i indeksy wpływają na prędkość działania i wydajność bazy danych

To w jakim formacie przechowujesz dane w bazie danych ma znaczenie. Ogromne. Mają też znaczenie indeksy. Właściwe połaczenie typów danych z indeksami jest kluczowe dla wydajności całej bazy danych. W testach poniżej mamy dwie proste tabele wypełnione pseudolosowymi danymi. Testy pokazują jak zmienia się prędkość wykonania zapytań w zależności od typów danych i obecności lub braku indeksów.

Testowe tabele

Utworzymy dwie proste tabele do testow; 'demo_table1' i 'demo_table2'. Obie tabele maja na celowo ustawiony typ danych varchar dla kolumny 'random_number' by zademonstrować różnice czasie wykonania zapytania dla różnych typów danych.

CREATE TABLE demo_table1 (
random_number VARCHAR(8),
random_text VARCHAR(100)
);

CREATE TABLE demo_table2 (
random_number VARCHAR(8),
random_text VARCHAR(100)
);

Wypełniamy tabele danymi

Umieszczamy pseudolosowe dane w testowych tabelach. W każdej tableli umieszczamy dwa miliony rekordów.

Tabela demo_table1:

Tabela 'demo_table2':

Więcej…

Instalacja Apache Spark w Windows

By korzystać z Apache Spark, potrzebujemy Hadoop. Hadoop to system do przetwarzania dużych zbiorów danych w sposób rozproszony na wielu komputerach. Składa się z HDFS (system plików) i MapReduce (model obliczeniowy). Apache Spark jest do pobrania w jednym z trzech pakietow:

  • Prebuilt for Apache Hadoop
  • Prebuild for Apache Hadoop (Scala)
  • Prebuild with user-provided Hadoop 

1. Pobranie Apache Spark

Ze strony https://spark.apache.org/downloads.html pobieramy pierwsza wersję; Prebuilt for Apache Hadoop. Pobrany plik *.tgz rozpakowujemy do pliku *tar który nastepnie rozpakujemy np w katalogu D:\spark-3.5.4-bin-hadoop3

Następnie dodajemy zmienną systemową 'SPARK_HOME' która wskazuje na katalog 'D:\spark-3.5.4-bin-hadoop3' oraz dodajemy '%SPARK_HOME%\bin' do zmiennej środowiskowej PATH.

2. Instalacja Hadoop

Spark wymagać będzie Hadoop do działania. Pobieramy odpowiednia wersje. Wersję dla której będziemy mieć Winutils - na stronie https://github.com/cdarlint/winutils, sprawdzisz dla której wersji dostępne jest narzędzie Winutils. Jesli np ostatnia wersją Winutils jest 'hadoop-3.3.6/bin' - pobierz Hadoop w wersji 3.3.6.

Pobrany plik *.gz rozpakowujemy najpierw do postaci *tar a nastepnie do katalogu docelowego programu, np. 'D:\hadoop'

3. Pobranie Winutils

Winutils.exe to narzędzie umożliwiające działanie Hadoop na Windowsie, emulując funkcje systemu plików Linuxa wymagane przez Hadoop. Wchodzimy na stronę https://github.com/cdarlint/winutils i pobieramy cale repozytorium ('Download zip'). Rozpakowujemy zip i wybieramy wersję Hadoop zgodna z naszym Hadoop zainstalowanym w kroku powyżej. Kopiujemy zawartość katalogu 'hadoop-x.x.x/bin' do katalogu 'D:\hadoop\bin' nadpisując kilka plików.

Następnie tworzymy zmienną 'HADOOP_HOME' wskazującą na 'D:\hadoop' oraz dodajemy '%HADOOP_HOME\bin%' do zmiennej środowiskowej PATH.

Więcej…

Decyzje w procesie BPM - tworzenie reguł biznesowych

Reguły biznesowe w BPM to zbiory zasad określających, jak działa proces biznesowy. Definiują warunki, akcje i decyzje, które automatyzują logikę procesów, np. zatwierdzenie wniosku czy obliczenie rabatu. Są one odseparowane od procesu, co ułatwia ich zarządzanie i modyfikację bez zmiany całego modelu.

jBPM oferuje szereg narzędzie do zbudowania reguł biznesowych użytych w procesach - najpopularniejsze z nich to 'Guided Decision Table' oraz 'DMN Decision'.

Data Objects

Data Objects w jBPM to logiczne obiekty danych, które służą do przechowywania i przekazywania danych w procesie. W przeciwieństwie do zmiennych procesowych, Data Objects pozwalają na lepszą organizację danych i ich powiązanie z logiką biznesową na wyższym poziomie abstrakcji. Choć nie są widoczne na diagramie BPMN, ułatwiają modelowanie i analizę przepływu danych w procesie.

Pierwszy ze sposobów na utworzenie decyzji biznesowych wymaga wcześniejszego utworzenia Data Object. Pola (zmienne) które umieścimy w tym obiekcie będą atuomatycznie przeniesione do do formularza procesu. Będąc w oknie procesu kliknij na 'Add Asset' i wybierz 'Data Object (model)'. Nazwij model (uwaga: unikaj zastrzeżonych nazw jak np. 'DataObject'), przypisz Data Object do pakietu projektu i w następnych krokach dodaj pola poprzez wybranie przycisku '+ add field'. Pomiń etykiety dla zmiennych, wprowadź tylko nazwy pol i typy tych zmiennych. Szczegóły Data Object mogą wyglądać jak poniżej:

Formularze

By pola z formularzy trafiały do pol obiektu danych, musisz utworzyć formularz który jest powiązany z Data Object. Wykonaj dwa kroki by utworzyć taki formularz. W pierwszym kroku utwórz zmienną procesu w 'Process Data' => 'Process Variables' wpisując jako name 'ObiektDanychOne' a w Data Type wybierz obiekt ktory utworzyliśmy wyżej (ObiektDanychOne - pakiet projektu). Jeśli klikniesz teraz w oknie diagramu procesu na 'Generate process form' utworzone zostaną automatycznie dwa formularze. Pierwszy formularz bedzie zawierać zestaw pól pobranych z obiektu 'ObiektDanychOne'. To jest formularz źródłowy dla drugiego formularza, formularza który jest formularzem startowym procesu. Formularz startowy procesu będzie wskazywac na 'Nested Form' (formularz z polami powiązanymi z Obiektem Danych). Do takiego typu formularza, Sub Form, możesz oczywiście dodać pola które nie są obecne w Data Object (wystarczy zdefiniować je w zmiennych procesu).

A - Guided Decision Table

Guided Decision Table w jBPM to narzędzie do definiowania reguł biznesowych w formie tabel decyzyjnych. Umożliwia określanie warunków i działań w przyjazny, interaktywny sposób. Reguły mogą być wykonywane przez silnik reguł Drools, a logika opiera się na hit policy. Naszym celem jest stworzenie reguł które pokierują przepływem w procesie akceptacji faktur w zależności od wybranego działu i kwoty faktury.

W oknie projektu kliknij na 'Add asset' i wybierz 'Guided Decision Table'. W pierwszym oknie dialogowym nadaj nazwę obiektowi, przypisz reguły do odpowiedniego pakietu projektu oraz określ 'Hit policy'. 

Hit policy w Guided Decision Table w jBPM określa, jak traktowane są reguły, gdy spełnionych jest więcej niż jeden warunek w tabeli decyzyjnej. Najczęściej spotykane polityki to:

    Unique – tylko jedna reguła może być spełniona (brak konfliktów).
    First Hit – wykonywana jest pierwsza pasująca reguła, pozostałe są ignorowane.
    Any – dowolna z reguł może być spełniona, ale wszystkie muszą dawać ten sam wynik.
    Rule Order – wszystkie pasujące reguły są wykonywane w kolejności ich wystąpienia.
    Collect – wykonuje wszystkie pasujące reguły i zwraca zbiorczy wynik (np. suma, średnia).

Wybór hit policy zależy od logiki decyzyjnej i oczekiwanego wyniku. Wybieramy 'First Hit'. Nie wybieramy opcji 'Wizard' i po kliknięciu na OK pojawi się okno edytora:

Więcej…

Strona 1 z 27

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
© 2025
Powered by DataGeeks & Human Intelligence