W tej rundzie pochylamy się nad problemem wzorców zakupowych występujących w koszykach zakupów. Analizujemy własności algorytmów FP-Growth i GSP i sprawdzamy, jak parametry minimalnego wsparcia (minsup) i minimalnej ufności (minconf) wpływają na uzyskiwane wyniki.
Read CSV
aby załadować plik marketbasket.csv. Jako separator między kolumnami wskaż przecinek. Zaznacz także, że pierwszy wiersz w pliku zawiera nazwy atrybutów. Po załadowaniu pliku uruchom przepływ i obejrzyj metadane.Numerical to Nominal
aby zamienić każdy atrybut na atrybut binarny. Następnie umieść na przepływie operator FP-Growth
i ustal liczbę poszukiwanych zbiorów częstych na 100 (parametr find min number of itemsets). Ustaw też maksymalną liczbę powtórzeń na 100 (paramter max number of retries). Uruchom przepływ i obejrzyj wyniki. Porównaj wyniki z sytuacją w której wyłączysz parametr find min number of itemsets i ustalisz próg minimalnego wsparcia na min support=0.01.Create Association Rules
, wskazując jako kryterium selekcji reguł miarę ufności (ang.confidence) z wartością progową 0.8. Uruchom przepływ. Obejrzyj znalezione reguły asocjacyjne, uruchom wizualizację reguł (zakładka Graph View), porównaj kilka sposobów wyświetlania reguł. Znajdź reguły tłumaczące, dlaczego ludzie kupują jajka i biały chleb.Item Sets do Data
w celu przetransformowania znalezionego zbioru zbiorów częstych do postaci danychGenerate Sales Data
do wygenerowania 10 000 syntetycznych transakcji. Obejrzyj uzyskane zbiory dane.Date to Numerical
zamień sposób przedstawiania czasu na numer dnia w ramach epoki.Generalized Sequential Patterns
znajdź wzorce pokazujące długoterminowe wzorce zakupowe. Przyjmij, że interesują Cię transakcje zawarte w przeciągu roku, wszystkie zakupy dokonane w ramach tygodnia potraktuj jako pojedynczą transakcję, przyjmij też że między poszczególnymi transakcjami danego klienta musiały upłynąć co najmniej dwa tygodnieOptions
wybierz opcję Add-ons
i doinstaluj wtyczkę Associate. Uruchom ponownie narzędzieDatasets
i pobierz zbiór Foodmart 2000. Select Columns
pozbądź się kolumn reprezentujących identyfikator sklepuPython Script
aby zmienić typ atrybutów z numerycznych na dyskretne. Posłuż się poniższym kodemfrom Orange.data import Domain, DiscreteVariable, Table lst = [] for row in in_data: lst.append(['1' if attr > 0 else None for attr in row]) domain = Domain([DiscreteVariable.make(name=attr.name, values=['0','1']) for attr in in_data.domain.attributes]) out_data = Table(domain, lst) print(out_data)
Data Table
Frequent Itemsets
. Porównaj liczbę zbiorów częstych odkrywanych na poziomie minimalnego wsparcia 1%, 0.1%, 0.05%, 0.005%Association Rules
. Poszukaj reguł asocjacyjnych tłumaczących, jakie zakupy w koszyku “powodują” zakup pizzy. Pobierz dane o filmach i ich ocenach. Zbiór zawiera 100000 ocen około 9000 filmów. Dane pochodzą z projektu MovieLens
Przyjmij, że ocena 4 lub więcej jest pozytywna, a ocena 2 lub mniej jest negatywna. Zbuduj dwa modele rekomendacyjne do generowania pozytywnych i negatywnych rekomendacji. Postaraj się odpowiedzieć na następujące pytania:
hint: po wczytaniu danych potrzebny będzie operator Join
do ich połączenia, a także operator Pivot
do zmiany struktury bazy danych z pionowej na poziomą. Pamiętaj także, że operator FP-Growth
potrzebuje danych typu logicznego
Odpowiedź w postaci pliku imie-nazwisko.pdf
(1 strona, zrzut ekranu oraz odpowiedź na oba postawione wyżej pytania) wgraj do folderu na Google Drive do niedzieli, 19 kwietnia, godz. 21:00.