Modelowanie wzorców zachowań klientów Delikatesów Alma przy wykorzystaniu reguł asocjacyjnych

Wielkość: px
Rozpocząć pokaz od strony:

Download "Modelowanie wzorców zachowań klientów Delikatesów Alma przy wykorzystaniu reguł asocjacyjnych"

Transkrypt

1 UNIWERSYTET EKONOMICZNY WE WROCŁAWIU WYDZIAŁ ZARZĄDZANIA, INFORMATYKI I FINANSÓW Piotr Skrzypczak Modelowanie wzorców zachowań klientów Delikatesów Alma przy wykorzystaniu reguł asocjacyjnych Praca magisterska Promotor: prof. zw. dr hab. Jerzy Korczak Katedra Technologii Informacyjnych Wrocław 2010

2 2 WROCLAW UNIVERSITY OF ECONOMICS FACULTY OF MANAGEMENT, INFORMATICS AND FINANCE Piotr Skrzypczak Modeling customer behavior patterns Alma Delicatessen using association rules Master s thesis Supervisor: prof. zw. dr hab. Jerzy Korczak Department of Information Technology Wrocław

3 3 OŚWIADCZENIE Oświadczam, że pracę niniejszą przygotowałem samodzielnie. Wszystkie dane, istotne myśli i sformułowania pochodzące z literatury (przytoczone dosłownie lub niedosłownie) są opatrzone odpowiednimi odsyłaczami. Praca ta nie była w całości ani w części, która zawierałaby znaczne fragmenty przedstawione w pracy jako oryginalne (wyniki badań empirycznych, obliczenia, spostrzeżenia, oceny, wnioski, propozycje itp.), przez nikogo przedłożona do żadnej oceny i nie była publikowana...., dnia (miejscowość) (podpis) OŚWIADCZENIE Wyrażam zgodę / nie wyrażam zgody* na udostępnienie osobom zainteresowanym mojej pracy magisterskiej. Zgoda na udostępnienie pracy magisterskiej nie oznacza wyrażenia zgody na kopiowanie pracy w całości lub w części. Brak zgody na kopiowanie nie wyklucza użycia pracy w systemie antyplagiatowym. * niepotrzebne skreślić..., dnia (miejscowość) (podpis) 3

4 4 Dziękuję mojemu promotorowi Panu Profesorowi Jerzemu Korczakowi za cierpliwość, życzliwą pomoc oraz cenne uwagi przy pisaniu niniejszej pracy. Podziękowania należą się również Zarządowi spółki Delikatesy Alma za dostęp i możliwość wykorzystania danych firmowych na potrzeby tej pracy magisterskiej. Jednocześnie składam podziękowania mojej narzeczonej, Annie, za wyrozumiałość i wsparcie w trudnych chwilach. 4

5 5 Spis treści SPIS TREŚCI... 5 WSTĘP KLASYFIKACJA I CHARAKTERYSTYKA TOWARÓW CHARAKTERYSTYKA DELIKATESÓW ALMA PODZIAŁ STRUKTURALNY TOWARÓW POJĘCIE, CECHY I ZNACZENIE KODU KRESKOWEGO REGUŁY ASOCJACYJNE WPROWADZENIE DO EKSPLORACJI DANYCH ODKRYWANIE ASOCJACJI WPROWADZENIE ALGORYTMY POSZUKIWANIA REGUŁ ASOCJACYJNYCH WYBÓR ORAZ PRZYGOTOWANIE OPROGRAMOWANIA DO BADAŃ WYBÓR NARZĘDZI DO PRZEPROWADZENIA EKSPLORACJI DANYCH NA TRANSAKCJACH DELIKATESÓW ALMA ETAP IMPLEMENTACJI BAZY DANYCH ETAP PRZYGOTOWANIA I OBSŁUGI PROGRAMU DM CAFE ETAP PRZYGOTOWANIA OPROGRAMOWANIA RAPID MINER DO EKSPLORACJI DANYCH EKSPLORACJA DANYCH NA ZBIORZE TRANSAKCJI DELIKATESÓW ALMA INFORMACJE OGÓLNE NA TEMAT PRZEPROWADZONYCH BADAŃ ANALIZA OTRZYMANYCH REGUŁ ASOCJACYJNYCH PODSUMOWANIE WYNIKÓW BADAŃ ZAKOŃCZENIE BIBLIOGRAFIA SPIS TABEL SPIS ILUSTRACJI A. DODATEK TABELE Z WYNIKAMI BADANIA B. DODATEK KODY ŹRÓDŁOWE NAJWAŻNIEJSZYCH FUNKCJI PROGRAMU DM CAFE

6 6 Contents CONTENTS... 5 INTRODUCTION CLASSIFICATION AND CHARACTERISTICS OF GOODS DESCRIPTION OF THE ALMA DELICATESSEN STRUCTURAL BREAKDOWN OF GOODS CONCEPT, FEATURES AND IMPORTANCE OF BAR CODE ASSOCIATION RULES INTRODUCTION TO DATA MINING DISCOVERING ASSOCIATION - INTRODUCTION EXPLORATION ALGORITHMS ASSOCIATION RULES SOFTWARE SELECTION AND PREPARATION FOR TESTING SELECTIONS TOOLS TO CARRY OUT DATA MINING FOR TRANSACTIONS THE ALMA DELICATESSEN STAGE IMPLEMENTATION OF DATABASE STAGE OF PREPARATIONS AND USES THE DM CAFE STAGE OF SOFTWARE PREPARATION RAPID MINER FOR DATA MINING DATA MINING ON SETS OF TRANSACTIONS DESCRIPTION OF EXPERIMENTS ANALYSIS OF ASSOCIATION RULES SUMMARY OF TEST RESULTS CONCLUSION BIBLIOGRAPHY LIST OF TABLES LIST OF ILLUSTRATIONS A. APPENDIX TABLES OF TESTS RESULTS B. APPENDIX SOURCE CODES OF MAIN FUNCTIONS OF THE PROGRAM DM CAFE

7 7 Wstęp W dobie wszem ogarniającego wykorzystania coraz szybszych komputerów, sieci komputerowych, zaawansowanych systemów bazodanowych oraz systemów klasy ERP ilość gromadzonych informacji jest tak duża, że aż prosi się o zastosowanie na nich eksploracji danych. Użycie różnych technik eksploracji, może wydobyć z baz danych bardzo zaskakujące informacje, nie znane dotychczas przez kierownictwo danego przedsiębiorstwa. Jedną z technik data miningu są reguły asocjacyjne, które polegają na wyszukiwaniu w dużych zbiorach danych wzorców zachowań np. klientów w przypadku transakcji supermarketu, czy wyglądu kwiatów na podstawie ich cech szczególnych. Często wynikiem poszukiwania reguł są wzorce znane przez ekspertów związanych z badanym zbiorem. Ważne jest, aby szukać takich wzorców zachowań, żeby były unikatowe i można je było użyć do przygotowywania bardziej trafionych gazetek promocyjnych, odpowiedniego ułożenia towarów na półkach sklepowych, organizowania różnego rodzaju indywidualnych promocji, a w rezultacie doprowadzić do sytuacji, w której klienci będą pozostawać na terenie sklepu jak najdłużej. Celem pracy jest przeprowadzenie i przedstawienie badań zachowań klientów jednego z wrocławskich sklepów sieci Delikatesów Alma, na podstawie danych sprzedaży od sierpnia 2009 do stycznia W badaniach wykorzystane zostaną algorytmy eksploracji danych, których zadaniem będzie odnalezienie interesujących, nie trywialnych reguł asocjacyjnych. Aby możliwe było przeprowadzenie analiz, należy stworzyć bazę danych, do której zaimportowane zostaną dane z systemu magazynowego i kasowego Delikatesów Alma. Jeśli te informacje znajdą się już w bazie danych, można będzie przystąpić do zaprojektowania procesu poszukiwania reguł asocjacyjnych w programie Rapid Miner. Mając przygotowane oprogramowanie będzie możliwe przeprowadzenie właściwej eksploracji danych w Delikatesach Alma. Reguły asocjacyjne nie są nowymi technikami eksploracji danych, jednak w Delikatesach Alma, w których przeprowadzane jest badanie, nie są wykorzystywane. Ich użycie mogłoby mieć znaczący wpływ na zwiększenie sprzedaży oraz spersonalizowanie potrzeb nabywców i zachęcenie klientów do zakupów właśnie w tej ekskluzywnej sieci. Praca została podzielona na cztery rozdziały. W rozdziale 1. opisane zostały podstawowe informacje na temat Delikatesów Alma, ich historia, plan sklepu, sprzedaż w badanym 7

8 8 okresie. Następnie opisany został podział hierarchiczny towarów ze względu na stoisko, dział towaru oraz grupę towarową. Rozdział kończy się informacjami na temat standardów kodów towarowych wykorzystywanych w badanej sieci handlowej. Drugi rozdział miał na celu przedstawienie najważniejszych informacji teoretycznych potrzebnych do przeprowadzenia badań. Na wstępie opisana została eksploracja danych w kontekście reguł asocjacyjnych. Następnie opiszemy rodzaje reguł oraz ich interpretacje. Na zakończenie przybliżone zostały algorytmy do wyszukiwania reguł asocjacyjnych od bardzo prostego algorytmu Apriori, który stał się prekursorem algorytmów eksploracyjnych, po jego rozwinięcia, kończąc na bardziej zaawansowanym FP-Growth. Ten rozdział kończy część teoretyczną pracy. Rozdział trzeci poświęcony został przygotowaniu oprogramowania do przeprowadzenia badania, tzn. stworzenia odpowiedniej bazy danych, analizy struktury plików do importu danych z systemu magazynowego i kasowego do bazy, pokazanie w jaki sposób odczytać transakcje z bazy danych, wykorzystywane do poszukiwania reguł asocjacyjnych, i ich zapis do plików CSV dla programu Rapid Miner. Następnie opisany został program firmy Rapid I, jego podstawowe funkcje, a także pokazane zostało w jaki sposób stworzyć proces, który przeanalizuje otrzymane dane z plików CSV i odnajdzie reguły asocjacyjne. W czwartym rozdziale przedstawione zostaną wyniki badań przeprowadzone w Delikatesach Alma. Reguły asocjacyjne zostały podzielone na kilka grup, dla których zostały przedstawione moje spostrzeżenia. Rozdział kończy się podsumowaniem wyników badań oraz propozycjami jak można by było wykorzystać odnalezione reguły. Zaproponowane zostały również kolejne grupy, na których zastosowanie eksploracji danych dałoby prawdopodobnie bardziej zadawalające efekty. 8

9 9 1. Klasyfikacja i charakterystyka towarów W rozdziale 1. przybliżymy działalność Delikatesów Alma oraz dynamikę i strukturę sprzedaży w 2009 r. Przedstawimy taksonomię towarów w badanym przedsiębiorstwie, tzn. hierarchiczny podział towarów według stoisk, działów, grup i kodu kreskowego. Przypomnimy strukturę kodu kreskowego, sposób jego użycia oraz standardy wykorzystywane w Delikatesach Alma Charakterystyka Delikatesów Alma Historia Delikatesów Alma rozpoczęła się w Krakowie w 1995 roku, tu bowiem powstał pierwszy sklep. Dalszy dynamiczny rozwój i rosnące wymagania klientów zaowocowały kolejnymi delikatesami. Obecnie jest to sieć nowoczesnych sklepów zlokalizowanych w największych miastach Polski m.in. w Krakowie, Łodzi, Sopocie, Poznaniu, Warszawie, Wrocławiu. Strategia sieci delikatesów Alma koncentruje się na sprzedaży produktów spożywczych najwyższej jakości, pochodzących od sprawdzonych dostawców lokalnych i zagranicznych. Asortyment obejmuje ponad 60 tysięcy produktów, w tym ponad 3 tysiące pochodzących z importu własnego, dostępnych w Polsce wyłącznie w sieci delikatesów Alma. W marcu 2007 Spółka Alma Market wprowadziła na rynek markę własną pozycjonowaną w segmencie Premium produktów spożywczych pod nazwą Krakowski Kredens. W skład marki wchodzi kilkanaście linii produktowych takich jak: wędliny, smalce, zupy, przetwory warzywne, grzyby, musztardy, soki, konfitury, słodycze, herbaty, nalewki. Wszystkie produkty przygotowywane są specjalnie na potrzeby marki Krakowski Kredens przez lokalne, niewielkie firmy, według historycznych przepisów z terenu dawnej Galicji. W początkowej fazie rozwoju marki produkty Krakowskiego Kredensu były dystrybuowane poprzez sieć stoisk w delikatesach Alma. Równocześnie do końca 2008 roku uruchomionych zostało 18 samodzielnych punktów sprzedaży w prestiżowych lokalizacjach w większych miastach. Badanie przeprowadzono w jednym z wrocławskich sklepów sieci Delikatesów Alma. Sklep, w którym przeprowadzane jest badanie podzielony jest na dwie jednostki: sklep stacjonarny o powierzchni około 1600 m 2 oraz internetowy Alma24.pl. Produkty do sprzedaży internetowej pobierane są z magazynu wspólnego, jednak aby można było zbadać wzorce zachowań klientów, należy sprawdzić dane osobno dla stacjonarnego sklepu, a oddzielnie dla delikatesów internetowych. Wynik przedstawi, jakie produkty nabywane są 9

10 Modelowanie wzorców zachowań ń klientów Delikatesów Alma przy wykorzystaniu reguł asocjacyjnych 10 wspólnie przez klientów robiących zakupy w sposób tradycyjny oraz osób kupujących towar za pomocą sklepu internetowego. Tabela 1.1. przedstawia statystykę sprzedaży w badanym okresie w rozbiciu na sklep stacjonarny, Almę 24 oraz wartość łączną. Tabela 1.1. Średnia sprzedaż dzienna oraz miesięczna w zł w badanych Delikatesach Alma od sierpnia 2009 do stycznia 2010 Okres czasu Sklep stacjonarny Alma 24 Wartość razem Wartość sprzedaży dziennie miesięcznie Ilość klientów dziennie miesięcznie Średni koszyk dziennie miesięcznie 63,34 62,93 181,82 215,27 67,21 67, Podział strukturalny towarów Delikatesy Alma, jak już zostało opisane to w punkcie 1.1., posiadają w swoim asortymencie ponad 60 tysięcy produktów, przy czym liczba ta jest uzależniona od konkretnej lokalizacji sklepu. Sklep, w którym przeprowadzane jest badanie, posiada w prawdzie taką ą ilość kodów, jednak dostępnych w sprzedaży jest około 20 tysięcy artykułów. Towary są ą podzielone wg schematu przestawionego na rysunku 1.1. SKLEP DELIKATESY STOISKA Nabiałpieczywo 1 Mięsowędliny 2 Owocewarzywa 3 St. Ogólnospożywcze 4 Art. Przemysłowe 5 Alkohole AL Kasypapierosy PP DZIAŁY Działy st. nabiałpieczywo Działy st. mięsowędliny Działy st. owocewarzywa Działy st. ogólnospożywczego Działy st. przemysłowego Działy st. alkoholowego Działy st. kasypapierosy GRUPY Grupy st. nabiałpieczywo Grupy st. mięsowędliny Grupy st. owocewarzywa Grupy st. ogólnospożywczego Grupy st. przemysłowego Grupy st. alkoholowego Grupy st. kasypapierosy Rysunek Schemat podziału strukturalnego towarów Każdy towar znajdujący się w asortymencie jest przypisany do stoiska, działu i grupy. Między grupą ą a działami występuje relacja jeden-do-wielu, tzn. jedna grupa występuje wyłącznie w jednym dziale, natomiast jeden dział przypisany jest do wielu grup. Powiązanie działów ze stoiskami opiera się na relacji wiele-do wielu. Wynika to z przyporządkowania części ci grup z jednego działu do kilku stoisk, np. grupy działu Artykuły świeże należą do stoisk 1, 2 oraz 3. Dokładniej zostanie to poruszone w rozdziałach opisujących działy i grupy. Przyglądając ą ąc się schematowi można zauważyć, że część ze stoisk oznakowane jest cyframi, część dwuznakowymi skrótami. Oznakowanie takie wynika z podziału stoisk dla celów księgowych. Więcej informacji na temat oznaczenia stoisk zostanie przedstawione w dalszej części tego rozdziału. Najniżej w hierarchii znajduje się kod towaru, zakodowany w standardzie EAN-13, EAN-8 oraz GTIN-13 (dla towarów o zmiennej ilości). Dokładniej 10

11 11 te standardy, jak i poszczególne elementy struktury towarowej sklepu zostaną przedstawione w kolejnych akapitach tego rozdziału. Cały asortyment został podzielony na siedem głównych stoisk. Do każdego stoiska zostały przypisane odpowiednie działy lub grupy. Stoisko posiada swój unikatowy identyfikator. Dla stoisk nabiał-pieczywo, mięso-wędliny, owoce-warzywa, ogólnospożywcze oraz artykuły przemysłowe są to liczby arabskie od 1 do 5, natomiast stoisko alkoholowe i kasy-papierosy oznaczone zostały przez identyfikator AL oraz PP. Podział na takie, a nie inne stoiska wynika ze względów księgowych przedsiębiorstwa, ponieważ pewne dokumenty, jak na przykład protokoły likwidacyjne, są rozliczane z podziałem na stoiska, które zostały zatwierdzone przez Zarząd Spółki i funkcjonują w takiej formie od samego początku firmy. Oczywiście nic nie stoi na przeszkodzie, żeby dla celów badawczych zamiast identyfikatorów AL oraz PP używać kolejnych cyfr, czyli 6 dla alkoholi oraz 7 dla stoiska papierosy-kasy. Odzwierciedleniem tego podziału jest rozmieszczenie poszczególnych towarów w sklepie. Na rysunku 1.2. przedstawiona została hala sprzedaży wraz z zaznaczonymi odpowiednim kolorem stoiskami. Rysunek 1.2. Plan sklepu z podziałem na stoiska Rysunek 1.2. przedstawia halę sprzedaży Delikatesów Alma z zaznaczonymi kolorystycznie stoiskami. Kolorem żółtym oznaczone zostało stoisko nabiał-pieczywo. Są to 11

12 12 między innymi chłodnie z nabiałem, stoisko z pieczywem i serami, półki z produktami rybnymi, stoisko rybne oraz mrożonki rybne. Kolor czerwony identyfikuje stoisko mięsowędliny. Na rysunku kolorem tym oznaczone są lady mięsne i wędlin, stoisko z produktami marki własnej Krakowski Kredens, mrożonki (głównie mięso mrożone) oraz chłodnia z wędlinami pakowanymi w plastrach lub w całości. Owoce-warzywa zaznaczone są kolorem zielonym. Są to m.in. stoisko owocowo-warzywne, bakaliowiec, a także lody, mrożonki owocowo-warzywne i karma dla zwierząt. Stoisko ogólnospożywcze identyfikuje kolor łososiowy (pomarańczowy). Są to wszelkie inne produkty spożywcze, które nie znajdują się na wcześniejszych stoiskach oraz piwo. Na niebiesko zaznaczono stoisko AGDchemia, czyli wszelkiego rodzaju artykuły chemiczne gospodarcze, kosmetyki, ale także prasa, art. elektryczne i papiernicze. Kolorem brązowym zaznaczone zostało stoisko alkoholowe, tzn. wszelkiego rodzaju napoje alkoholowe (oprócz piwa) oraz cygara. Produkty tytoniowe (bez cygar) oraz karty magnetyczne, czyli stoisko kasy-papierosy, zaznaczone są na rysunku na różowo. Działy towarowe są częściowym uszczegółowieniem podziału według stoisk, tzn. towary dzięki temu są podzielone jednoznacznie oraz posiadają pewne cechy wspólne, np. jogurty, herbaty, czekolady, itd. Każdy z działów identyfikowany jest przez trzycyfrowy kod, który jest wykorzystywany jako część identyfikatora grup. Na rysunkach 1.3. oraz 1.4. przedstawione zostały działy odpowiednio przypisane do poszczególnych stoisk. 12

13 Modelowanie wzorców zachowań ń klientów Delikatesów Alma przy wykorzystaniu reguł asocjacyjnych 13 Nabiał-pieczywo 1 Mięso-wędliny 2 Owoce-warzywa 3 St. ogólnospożywcze Tłuszcze Konserwy 140 -Wyroby chłodnicze 110 -Przetw. warzywne Produkty mleczne Wędliny Warzywa 111 -Przetw. owocowe i miód 122 -Sery 116 -Mięso 143 -Owoce Przyprawy 123 -Jaja 117 -Drób 148 -Wyr. garm. świeże Koncentrat. zup i sosy Pieczywo świeże Krakowski Kredens 160 -Karma dla zwierząt Produkty sypkie Pieczywo trwałe 148 -Wyr. garm. świeże 295 -Ogród 119 -Desery, przyp.,bakalie 126 -Wyroby ciastkarskie Pieczywo trwałe 139 -Ryby 127 -Odżywki dziecięce 148 -Wyr. garm. świeże 128 -Wyroby tytoniowe Herbata 130 -Kawa Czekolady Słodycze 134 -Chipsy, orzeszki Rysunek Działy towarowe przyporządkowane do odpowiednich stoisk 13

14 Modelowanie wzorców zachowań ń klientów Delikatesów Alma przy wykorzystaniu reguł asocjacyjnych 14 St. ogólnospożywcze 4 Art. przemysłowe 5 Alkohole AL Kasy-papierosy 135 -Napoje gazowane 201 -Agd 128 -Wyroby tytoniowe 128 -Wyroby tytoniowe 136 -Soki, syropy, nektary 210 -Marka własna Alkohole 137 -Wody mineralne Kosmetyki 138 -Piwo Perfumeria Oliwa, oliwki 245 -Chemia gosp Opak. zwrotne Płyty, kasety 147 -Oleje 247 -Art. elektryczne 148 -Wyr. garm. świeże 255 -Obuwie 149 -Zdrowa żywność 265 -Art. papiernicze 150 -Słodycze na wagę, przeceny Książki 267 -Torby reklamowe 295 -Ogród 299 -usługi Rysunek Działy towarowe przyporządkowane do odpowiednich stoisk 14

15 15 Podział wg działów nie jest rozłączny i zawiera w kilku miejscach te same działy, np. dział 148 Wyroby garmażeryjne świeże, czy 128 Wyroby tytoniowe; wynika to z przyporządkowania grup towarowych do stoisk sklepu. Oprócz podstawowych grup towarowych, działy zawierają również grupy importowe, w skład których wchodzą towary pochodzące z innych krajów świata. Dodatkowo dla marki własnej został stworzony osobny dział 133 Krakowski Kredens. Grupy towarowe dzielą szczegółowo wszystkie towary asortymentu sklepu. Dzięki temu produkty podobne do siebie zostały zebrane w jeden zbiór, który w sposób jednoznaczny identyfikują towary znajdujące się w nim. Każda grupa posiada swój unikatowy identyfikator składający się z 6 cyfr trzy cyfry określają dział, do którego jest przypisana, natomiast kolejne 3 opisują ją w sposób szczegółowy, np Mleko świeże (121 dział Produkty mleczne). Wśród grup możemy wyróżnić: grupy podstawowe, np Sery żółte, Herbata ekspresowa; grupy importowe, np Sery pleśniowe import, Kawa mielona import; grupy podzielone indywidualnie wg stoisk, np.: Wyroby garm. nabiał luz, Wyroby garm. nabiał import luz, Wyroby garm. nabiał szt. oraz Wyroby garm. nabiał import szt. stoisko nabiał-pieczywo; Kwiaty doniczkowe oraz Cebulki kwiatowe, nasiona kwiat. stoisko owoce-warzywa; Płatki śniadaniowe oraz Płatki śniadaniowe import stoisko ogólnospożywcze; Papierosy oraz Karty magnetyczne stoisko kasy Pojęcie, cechy i znaczenie kodu kreskowego Kody kreskowe wykorzystywane są od wielu lat do automatycznej identyfikacji towarów. Jej podstawową funkcją jest rozpoznanie towarów jednoznacznie i bezbłędnie, a najważniejsze, zdecydowanie szybciej, niż mógłby to zrobić człowiek. Czym jest automatyczna identyfikacja? Jest to rozwiązanie, w którego skład wchodzi oprogramowanie, urządzenia do odczytu specjalnie oznakowanych towarów (czytniki kodów kreskowych, kolektory danych) oraz znakowania towarów np. etykietą z kodem kreskowym, kodem dwuwymiarowym lub tagiem radiowym (RFID). Ponieważ każdy towar posiada unikatowy kod kreskowy, potrzebne jest jeszcze odpowiednio skonfigurowane oprogramowanie, które 15

16 16 po odczytaniu przez czytnik kodów kreskowych wyszuka informacje o produkcie w swojej bazie danych. Kod kreskowy, kod paskowy (ang. bar code) jest graficzną reprezentacją informacji poprzez kombinację ciemnych i jasnych elementów, ustaloną według przyjętych reguł budowy danego kodu. 1 W przypadku Delikatesów kodem identyfikującym towary jest kod kreskowy EAN-13, EAN-8 lub GTIN-13. Rysunek 1.5. przedstawia przykładowe kody towarów wykorzystywane w Delikatesach Alma. Rysunek 1.5. Przykładowe etykiety wykorzystywane w Delikatesach Alma Wszystko zaczęło się w 1973 roku, kiedy to w USA firma Uniform Code Council, Inc. opracowało kod UPC. Posiadał on dwunastocyfrowy numer, a pierwsze kody kreskowe na otwartym rynku zaczęto skanować w 1974 roku. Po sukcesie w Stanach Zjednoczonych w 1977 roku utworzono nowy standard, European Article Number z zadaniem opracowania kompatybilnego systemu, który mógłby być stosowany również poza Ameryką Północną. System EAN został stworzony jako odmiana systemu UPC, jednak wykorzystuje trzynastocyfrowy, a nie dwunastocyfrowy numer, jak miało to miejsce w przypadku wcześniejszego rozwiązania. Kod EAN-13 został utworzony przez International Article Numbering Association (IANA) na podstawie standardu UPC-A, przez rozszerzenie z jednej do dwóch cyfr systemu numerowego. Ten system numerowania stał się docelowo kodem kraju. Jak się okazało ze względu na liczbę państw na świecie zaistniała potrzeba wydłużenia kodu kraju do trzech cyfr, np. Polska ma kod 590. Wprowadzono też kody nie oznaczające kraju, np. kod 290 oznacza towary ważone w sklepach. 1 Definicja kodu kreskowego. (http://pl.wikipedia.org/wiki/kod_kreskowy, kwiecień 2010). 16

17 17 Wizualną różnicą między kodem kreskowym EAN-13 i kodem UPC-A można zauważyć na pierwszy rzut oka, jest to ostatnia cyfra, cyfra kontrolna. W standardzie EAN-13 umieszczona jest pod kodem kreskowym zamiast na prawo od niego, ale nie powoduje to różnic w samym kodowaniu. Porównanie dwóch kodów zostało przedstawione na rysunku 1.6. Rysunek 1.6. Ten sam kod w standardzie UPC-A i EAN-13 Źródło: Kod UPC-A zawiera cyfry po prawej i po lewej stronie kodu kreskowego (cyfra 0 kodu kraju i cyfra kontrolna 5), a pod paskami są dwie grupy po 5 cyfr (kod wytwórcy i kod produktu). W symbolu EAN-13, nie występuje cyfra kontrolna na prawo od kodu kreskowego, a liczby pod kodem kreskowym składają się z dwóch grup po 6 cyfr każda. Natomiast jeśli chodzi o sam kod kreskowy, paski i przerwy w obu przypadkach są takie same. Typowy kod kreskowy EAN-13 składa się z czterech części: systemu numerowego, kodu wytwórcy, kodu produktu oraz cyfry kontrolnej. Pierwsza cyfra systemu numerowego jest drukowana na lewo od kodu kreskowego, a druga cyfra systemu jest drukowana jako pierwsza cyfra 6-cio cyfrowej grupy poniżej lewej części kodu kreskowego, kod wytwórcy daje następne cyfry tej grupy. Kod produktu stanowi pierwsze 5 cyfr prawej grupy poniżej kodu kreskowego, a cyfra kontrolna stanowi 6-tą cyfrę tej grupy. Na rysunku 1.7. przedstawiony został typowy kod kreskowy EAN-13 oraz zaznaczone zostały obszary kodu kreskowego. Uwaga: ze względu na zmienną długość systemu numerowego, zmienną długość kodu wytwórcy i zmienną długość kodu produktu, podział ten należy traktować umownie. 17

18 18 Rysunek 1.7. Typowy kod EAN-13. Źródło: oraz opracowanie własne. System numerowy składa się z dwóch cyfr (czasami trzech) identyfikujących władze kraju lub regionu gospodarczego nadające kod wytwórcy. W przypadku kodów rozpoczynających się od cyfry 0 oznaczają one kod liczbowy UPC-A. Zatwierdzone systemy numerowe podane zostały w tabeli Tabela 1.2. Zatwierdzone systemy numerowe kodu EAN-13 Kod Państwo lub region Kod Państwo lub region Kod Państwo lub region USA i Kanada Towary ważone Francja w supermarketach 380 Bułgaria 383 Słowenia 385 Chorwacja 387 Bośnia-Hercegowina Niemcy 45 Japonia (również 49) 46 Federacja Rosyjska 470 Kirgistan 471 Taiwan 474 Łotwa 476 Azerbejdżan 477 Litwa 478 Uzbekistan 479 Sri Lanka 480 Filipiny 481 Białoruś 482 Ukraina 484 Mołdawia 485 Armenia 486 Gruzja 487 Kazachstan 489 Hong Kong 49 Japonia (JAN-13) 50 Wielka Brytania 520 Grecja 528 Liban 529 Cypr 531 Macedonia 535 Malta 539 Irlandia 54 Belgia i Luksemburg 560 Portugalia 569 Islandia 57 Dania 590 Polska 594 Rumunia 599 Węgry 600 i 601 Południowa Afryka 608 Bahrajn 609 Mauritius 611 Maroko 613 Algeria 619 Tunezja 621 Syria 622 Egipt 624 Libia 625 Jordania 626 Iran 627 Kuwejt 628 Arabia Saudyjska 64 Finlandia Chiny 70 Norwegia 729 Izrael 73 Szwecja 740 Gwatemala 741 Salwador 742 Honduras 743 Nikaragua 744 Kostaryka 745 Panama 746 Dominikana 750 Meksyk 759 Wenezuela 76 Szwajcaria 770 Kolumbia 773 Urugwaj 775 Peru 777 Boliwia 779 Argentyna 780 Chile 784 Paragwaj 786 Ekwador Brazylia Włochy 84 Hiszpania 850 Kuba 858 Słowacja 859 Czechy 860 Jugosławia 867 Korea Północna 869 Turcja 87 Holandia 880 Korea Południowa 885 Tajlandia 888 Singapur 890 Indie 893 Wietnam 899 Indonezja 90 i 91 Austria 93 Australia 94 Nowa Zelandia 950 EAN IDA 955 Malezja 958 Makao 977 ISSN (periodyki) ISBN (książki) 980 Rachunki zwrotne kupony obszaru wspólnej waluty kupony Źródło: Opracowanie własne na podstawie oraz 2 BarCodeIsland.com. EAN-13 Background information. (http://www.barcodeisland.com/ean13.phtml, maj 2010). 18

19 19 Kod wytwórcy jest unikalnym kodem przydzielonym każdemu wytwórcy przez właściwy organ dla systemu numerowego. Wszystkie produkty produkowane przez daną firmę będą używały tego samego kodu wytwórcy oraz różnych kodów produktu. EAN wykorzystuje kody wytwórców zmiennej długości. Wynika to z następującego faktu: przydzielając pięciocyfrowy kod wytwórcy, oznacza że każdy wytwórca może mieć do kodów produktu. Wielu producentów nie posiada aż tylu artykułów w swojej gamie, co oznacza setki a nawet tysiące potencjalnych kodów się marnuje w przypadku wytwórców, którzy produkują tylko kilka produktów. Dlatego jeśli producent wie, że nie będzie mu potrzebna tak duża rezerwa kodów, EAN może mu przydzielić dłuższy kod producenta zostawiając mniej miejsca na kody produktów. Dzięki takiemu zabiegowi kody producentów i produktów są efektywniej użyte. Przedstawia to tabela Tabela 1.3. Rozkład numeracji kodu wytwórcy System Numer wytwórcy Numer produktu Maks. ilość Cyfra kontrolna numerowy produktów ZZZ ZZZZ ZZZZZ K ZZZ ZZZZZ ZZZZ 9999 K ZZZ ZZZZZZ ZZZ 999 K ZZZ ZZZZZZZ ZZ 99 K Kod produktu jest unikalnym kodem przydzielonym przez producenta. W przeciwieństwie do kodu wytwórcy, producent może dowolnie przydzielać kod produktu do swoich wyrobów, bez konsultacji z innymi wytwórcami. Ponieważ EAN gwarantuje, że pierwsza część kodu jest unikalna, tzn. kod wytwórcy, producent musi sprawdzić tylko, że do nowych produktów nie używa kodów produktów wcześniej użytych. Cyfra kontrolna jest dodatkową cyfrą w numerze używaną do sprawdzenia, że kod kreskowy został prawidłowo zeskanowany. Skanowanie kodu może dać błędne dane z powodu np. zmiennej prędkości skanowania, błędów w druku kodu, czy wielu innych przyczyn, dlatego ważna jest weryfikacja pozostałych cyfr odczytywanego kodu kreskowego. Cyfra kontrolna jest obliczana na podstawie pozostałych cyfr kodu kreskowego. W przypadku, gdy cyfra kontrolna obliczona w oparciu pozostałych cyfr kodu kreskowego ma taką samą wartość jak zeskanowana cyfra kontrolna, przyjmuje się, że kod kreskowy został poprawnie zeskanowany. Kroki obliczenia cyfry kontrolnej są następujące: 3 BarCodeIsland.com. EAN-13 Background information. (http://www.barcodeisland.com/ean13.phtml, maj 2010). 19

20 20 przyjmujemy, że cyfra najbardziej z prawej jest na pozycji nieparzystej, poruszając się w lewo przypisujemy kolejnym cyfrom nieparzysty/parzysty; sumujemy cyfry na pozycjach nieparzystych i mnożymy wynik przez 3; sumujemy cyfry na pozycjach parzystych; sumujemy wyniki z punktu 2 i 3; cyfra kontrolna jest liczbą, która jeśli się ją doda do sumy obliczonej w punkcie 4, da liczbę równo podzielną przez 10; jeśli suma obliczona w punkcie 4 jest równo podzielna przez 10, to cyfrą kontrolną jest "0" (a nie 10). 4 Innym sposobem jest przypisanie wag dla pozycji nieparzystych i parzystych w następujący sposób: dla wszystkich pozycji nieparzystych nadajemy wagę 3, dla parzystych wagę 1. Następnie poszczególne cyfry mnożymy przez wagi, a następnie całość sumujemy. Cyfra kontrolna jest liczbą, która jeśli się ją doda do sumy obliczonej w punkcie 4, da liczbę równo podzielną przez 10. Ilustruje to przykład dla kodu Oczywiście cyfra kontrolna w tym przypadku jest znana i równa się 2. Dlatego aby przedstawić sposób obliczania cyfry kontrolnej do wyliczeń należy przyjąć kod bez ostatniej cyfry, tzn Kod dla którego obliczana jest cyfra kontrolna posiada system numerowy 590, kod producenta 9990 i kod produktu Tabela 1.4. przedstawia rozpisany kod wraz z częściowymi obliczeniami. Tabela 1.4. Kod, przydzielone parzystości dla poszczególnych cyfr kodu oraz częściowe obliczenia Cyfra kodu Parzystość P N P N P N P N P N P N Wagi Iloczyny 5 * 1 9 * 3 0 * 1 9 * 3 9 * 1 9 * 3 0 * 1 2 * 3 2 * 1 0 * 3 6 * 1 3 * 3 Wart iloczynów Sumując wartości iloczynów otrzymujemy wynik równy 118. Ponieważ otrzymany wynik jest liczbą trzycyfrową, natomiast można użyć tylko jednej cyfry. Aby dowiedzieć się jaka jest cyfra kontrolna, należy do liczby 118 dodać taką liczbę, aby suma tych liczb była podzielna bez reszty przez 10. Oczywiście jest to cyfra 2, gdyż = 120, a 120 / 10 = 12 reszta 0. Dlatego cyfra 2 jest cyfrą kontrolną. 4 BarCodeIsland.com. EAN-13 Background information. (http://www.barcodeisland.com/ean13.phtml, maj 2010). 20

21 21 Do oznaczania towarów o zmiennej ilości stosuje się kody kreskowe EAN-13 zaczynające się od cyfry 2. Cyfra następująca bezpośrednio po 2 określa rodzaj struktury kodu. Numery GTIN-13 z prefiksem 20 przeznaczone są do oznaczania wewnętrznego przez dystrybutorów towarów standardowych, które nie zostały oznaczone przez ich producentów lub dostawców albo do innych celów, wynikających z potrzeb danej firmy. Krajowy system znakowania towarów o zmiennej ilości wykorzystuje numery GTIN-13 z prefiksami od 21 do 29. Przeznaczone są one do znakowania towarów niestandardowych, czyli towarów o zmiennej ilości, masie lub cenie, przedstawionej w kodzie. Numery te zawierają obok identyfikatora towaru, również: konkretną ilość, wagę lub cenę. Do zastosowań wewnętrznych, gdy identyfikatorem towaru jest numer wewnętrzny stosowany w danej placówce lub sieci handlowej, używane są numery GTIN-13 z prefiksami 24 (kod z ceną) i 29 (kod z ilością lub masą). Do zastosowań ogólnokrajowych, gdy identyfikatorem towaru jest numer krajowy, używane są numery GTIN-13 z prefiksami 23 (kod z ceną) i 27 (kod z ilością lub masą). Pozostałe prefiksy: 21, 22, 25, 26 i 28 zarezerwowane są do przyszłych potrzeb, np. dodania kolejnego prefiksu dla numerów krajowych, po wyczerpaniu dotychczasowych możliwości. Identyfikatorem towaru może być: numer wewnętrzny (nadany przez handlowca i stosowany wyłącznie w obiegu wewnętrznym); numer krajowy (nadawany centralnie przez organizację krajową GS1 Polska i stosowany w obrocie ogólnokrajowym). Towary niestandardowe, o zmiennej ilości w opakowaniu, handlowiec może oznaczyć (do wyboru), albo wewnętrznymi - własnymi numerami (identyfikatorami), albo numerami krajowymi. Oznaczenia towarów niestandardowych zawierają: identyfikator towaru (wewnętrzny lub krajowy) oraz konkretną ilość, masę lub cenę towaru w opakowaniu. Numer towaru - dla identyfikacji towarów niestandardowych przeznacza się pole 4- cyfrowe. Cena - dla określenia ceny towaru w każdym opakowaniu przeznacza się 5-cyfrowe pole, pozwalające na określenie ceny do 999,99 zł, z dokładnością do 1 grosza. Miejsce dziesiętne nie jest zaznaczone w symbolu, ale należy je zaprogramować, w celu m. in. właściwego przedstawienia ceny na paragonie. Masa - dla określenia masy towaru w każdym opakowaniu przeznacza się 5-cyfrowe pole, które pozwala na określenie masy do 99,999 kg, z dokładnością do 1 grama. 21

22 22 Miejsce dziesiętne nie jest zaznaczone w symbolu, ale wymaga zaprogramowania, aby cena każdego opakowania mogła być automatycznie wyliczona, po przemnożeniu odczytanej masy przez cenę jednostkową za 1 kilogram, wprowadzoną wcześniej do pamięci wagi, kasy lub komputera. Ilość - dla określenia ilości sztuk towaru w każdym opakowaniu (w szczególnych wypadkach może to być objętość lub długość, w celu oznaczenia niestandardowych towarów przemysłowych, typu: wykładziny w mb, dywany w m 2, koronki w m itp.,), przeznacza się 5-cyfrowe pole, z zaprogramowanym miejscem dziesiętnym po drugiej cyfrze, pozwalające na określenie ilości z dokładnością do 99,999 wyrażonej w danej jednostce miary. W celu podania pełnej liczby sztuk (do 99), należy pamiętać, by po liczbie sztuk wpisać 000. Do przedstawienia struktur kodów przyjęto następujące oznaczenia: Tw...Tw numer wewnętrzny towaru niestandardowego, nadany przez handlowca; I...I ilość; W...W waga; C...C cena; V - dodatkowa cyfra kontrolna dla ilości, masy lub ceny; K - cyfra kontrolna GTIN-13. W tablicach 1.5., 1.6. oraz 1.7. zostały przedstawione struktury kodów przy znakowaniu towarów niestandardowych numerami wewnętrznymi. Tabela 1.5. Znakowanie numerem wewnętrznym wg ceny Prefiks Numer wewnętrzny towaru Dodatkowa cyfra kontrolna Cena towaru Cyfra kontrolna 24 Tw Tw Tw Tw V C C C, C C K Tabela 1.6. Znakowanie numerem wewnętrznym wg masy Prefiks Numer wewnętrzny towaru Dodatkowa cyfra kontrolna Cena towaru Cyfra kontrolna 29 Tw Tw Tw Tw V W W, W W W K Tabela 1.7. Znakowanie numerem wewnętrznym wg ilości Prefiks Numer wewnętrzny towaru Dodatkowa cyfra kontrolna Cena towaru Cyfra kontrolna 29 Tw Tw Tw Tw V I I, K Źródło: Źródło: Źródło: 22

23 23 Sposób obliczania cyfry kontrolnej w przypadku kodów GTIN-13 jest identyczny jak w przypadku kodów EAN-13. Kod EAN-8 został stworzony z myślą o znakowaniu towarów niewielkich rozmiarów, na których kod kreskowy EAN-13 by się nie mieścił. Kod EAN-8 zawiera 2- lub 3-cyfrowy kod systemu numerowego, po którym następuje 4- lub 5-cyfrowy kod produktu. Ponieważ standard EAN-8 posiada mniejszą pojemność numeryczną, dla każdego produktu odpowiednie władze przydzielają unikatowy kod. Producent może zażądać kodu EAN-8 niezależnie od posiadania kodu producenta i puli numerów EAN- 13 dla swoich produktów. W Polsce kod systemu numerowego jest trzycyfrowy i wynosi 590, a 4-cyfrowy numer indywidualny towaru nadawany jest firmie przez ILiM - GS1 Polska. Globalny Numer Jednostki Handlowej w kodzie EAN-8 może być przyznany, jeżeli powierzchnia opakowania lub etykieta przeznaczona do zadrukowania jest nie większa od 40 cm 2 albo jeżeli opakowanie okrągłe ma średnicę nie większą od 3 cm. EAN-8 jest kodowany przy użyciu dwóch zestawów znaków EAN-13. Kod EAN-8 ma także cyfrę kontrolną, która jest obliczana w ten sam sposób jak dla kodu EAN-13. Tabela 1.8. Kod, przydzielone parzystości dla cyfr kodu oraz częściowe obliczenia. EAN-8 Cyfra kodu Parzystość N P N P N P N Wagi Iloczyny 5 * 3 9 * 1 0 * 3 2 * 1 3 * 3 4 * 1 5 * 3 Wart iloczynów Po z sumowaniu iloczynów otrzymujemy: = 54. Cyfrą kontrolną jest liczba 6, ponieważ tyle brakuje do liczby podzielnej bez reszty przez 10 (60 = ). Rozdział 1. miał na celu opisanie hierarchicznego podziału towarów w Delikatesach Alma, ponieważ w rozdziale 4. dotyczącym poszukiwania reguł asocjacyjnych badania będą prowadzone na poszczególnych poziomach taksonomii elementów. Wiedza na temat jakie są stoiska oraz w jaki sposób identyfikowane są działy i grupy, pozwoli stworzyć odpowiednie tabele w bazie danych, z których następnie za pomocą autorskiego oprogramowania i konkretnych zapytań pobierane będą zbiorcze dane wykorzystywane w eksploracji danych. Charakterystyka kodu kreskowego oraz poszczególnych standardów przedstawia jakie informacje zawarte są w kodzie kreskowym, natomiast pozostałe dane znajdują się w bazach danych i są odczytywane podczas procesu automatycznej identyfikacji towarów. Na potrzeby dalszych rozdziałów kod towaru posłuży jako identyfikator produktu i dzięki 23

24 24 niemu pobierane będą takie informacje jak nazwa towaru, grupa towarowa, dział, czy stoisko. Oczywiście nic nie stoi na przeszkodzie, aby wykonać zapytanie do bazy, które pozwoli na wybór tylko tych transakcji, w których występowały kody z określonego kraju identyfikowane według systemu numerowego ze standardu EAN

25 25 2. Reguły asocjacyjne Rozdział ten ma na celu wprowadzenie do eksploracji danych, a konkretniej przedstawienie jednej z jej technik, czyli reguł asocjacyjnych. Kolejne podrozdziały opisują zbiory danych i ich zawartość. Wyjaśnimy pojęcie wzorca i klasy wzorców, oraz omówimy reguły asocjacyjne i dlaczego mogą one być interesujące z punktu widzenia przedsiębiorstwa. W końcowej części rozdziału przedstawione zostaną wybrane algorytmy poszukujące reguł w zbiorach danych Wprowadzenie do eksploracji danych Eksploracja danych jest analizą (często ogromnych) zbiorów danych obserwacyjnych w celu znalezienia nieoczekiwanych i użytecznych związków i relacji. Modelami lub wzorcami są zależności i podsumowania, które są wynikiem eksploracji danych. Przykładami są równania, reguły, skupienia, grafy, struktury drzewiaste i wzorce w szeregach czasowych. Eksploracja danych najczęściej odnosi się do danych zgromadzonych w innym celu, niż analiza prowadząca do odkrywania w nich wiedzy, np. zapis wszystkich transakcji sprzedaży w supermarkecie. Oznacza to, że cele wykonania eksploracji danych nie odgrywają żadnej roli w strategii gromadzenia danych. Jest to jedna z własności eksploracji danych, która odróżnia ją od statystyki, w której dane są zbierane często w jakimś konkretnym celu. Eksploracja danych jest często osadzana w szerszym kontekście odkrywania wiedzy w bazach danych (ang. knowledge discovery in databases, KDD). Termin ten zrodził się w obszarze badań dotyczących sztucznej inteligencji. Proces KDD wymaga kilku etapów: wybrania docelowych danych, wstępnego przetworzenia danych, przekształcenia ich, jeśli to konieczne, wykonania eksploracji danych w celu uzyskania wzorców i zależności, a następnie zinterpretowania i ocenienia odkrytych struktur. 5 Eksploracja dotyczy poszukiwania też pewnych nietypowych, wyjątkowych związków z zbiorach danych. Ale tak naprawdę czym są te zbiory danych? W przypadku Delikatesów Alma zbiorami danych są dane transakcyjne (koszyki) zebrane w procesie sprzedaży towarów. W tabelach bazy danych wiersze są nazywane jednostkami, instancjami, encjami, przypadkami, obiektami lub rekordami. Natomiast kolumny nazywane są zmiennymi, 5 Hand D., Mannila H., Smyth P Eksploracja danych. Wydawnictwo Naukowo-Techniczne WNT. 25

26 26 cechami, atrybutami lub polami. Rysunek 2.1. przedstawia przykładowe dane o kodach kreskowych towarów z Delikatesów Alma. Rysunek 2.1. Przykładowe dane z Delikatesów Alma Dane są dostępne w różnych formach, jednak to, na co należy zwrócić szczególną uwagę, to kilka podstawowych różnic. Pierwszą z nich jest różnica pomiędzy pomiarami ilościowymi a kategorycznymi. Zmienne ilościowe to takie, które jesteśmy w stanie odmierzyć na skali numerycznej i mogą teoretycznie przyjąć każdą wartość, np. CenaDetal opisująca cenę detaliczną towaru. Zmienne kategoryczne, jak np. Kod czy Import, przyjmują jedynie określone, dyskretne wartości, np. Import może przyjąć tylko dwie wartości T (tak) lub N (nie). Kolejnym zagadnieniem są rodzaje struktur, tzn. modele i wzorce. Strukturę modelu można zdefiniować jako całościowe podsumowanie zbioru danych, opisuje ona każdy punkt w całej przestrzeni pomiarowej. Natomiast struktury wzorców prezentują wyłącznie pewną część przestrzeni ograniczonej przez zmienne. Można wywnioskować, że wzorce obrazują strukturę tylko niewielkiej części danych lub przestrzeni z całego zbioru. Może się również tak zdarzyć, że tylko wybrane rekordy zachowują się w określony sposób i wzorzec przedstawia, które to są. Dla przykładu wyszukiwanie wzorców w bazie danych Delikatesów Alma może odkryć, że klienci posiadający kartę lojalnościową kupują zupełnie inne kombinacje produktów niż osoby bez tej karty. Podstawowa zasada budowania wzorców polega na rozpoczęciu od wzorców pierwotnych, a następnie ich łączeniu za pomocą spójników logicznych. Na ogół wzorce identyfikują podzbiór wszystkich możliwych obserwacji nad danymi zmiennymi. Wzorce pierwotne są to warunki na wartościach zmiennych, np. x k < c, czy x k = c. W przypadku, gdy zostały utworzone wzorce pierwotne, można przejść do etapu budowania wzorców bardziej złożonych, wykorzystując spójniki logiczne, tj. AND ( ) i OR ( ). Używając 26

27 27 wzorców pierwotnych i spójników można stworzyć na przykład taki wzorzec (Grupa = ) (Import = T ), który opisuje wszystkie rekordy z tabeli bazy danych zawierające informacje o kodach towarów, które należą do grupy towarowej oraz są towarami z importu. Wzorce łączą się w klasy wzorców, tzn. zbiory wzorców dozwolonych. Klasę wzorców można zdefiniować jako wyznaczenie zbioru wzorców pierwotnych wraz z ich sposobami łączenia. Jeśli klasa wzorców występuje często w danym zbiorze (np. klasa koszyki klientów w transakcjach sprzedaży supermarketu delikatesów Alma), to wszystkie jej wzorce nazywane są zbiorami częstymi (zmiennych). Istotną własnością wzorców, przy zadanej klasie wzorców i danym zbiorze danych, jest jego częstość w zbiorze danych. Częstość fr(p) wzorca p można określić jako procent obserwacji w zbiorze danych, dla których p jest prawdą. 6 Z punktu widzenia eksploracji danych nie jest jasno określone jak często występujące wzorce są interesujące, wszystko zależy od zbioru i przeprowadzanych badań. Dokładny poziom częstości występowania danego wzorca w badanych zbiorach Delikatesów Alma zostaną określone w rozdziale 4. Klasy wzorców są wykorzystywane do zdefiniowania reguł. Reguła jest typowym wyrażeniem p => q, gdzie p i q są wzorcami pewnej klasy wzorców. Wyrażenie to należy czytać następująco: jeśli p jest prawdziwe dla jakiegoś obiektu (zmiennej), to q również należy uznać za prawdziwe. Oczywiście zależność taka nie musi występować zawsze, można opisać ją z pewną dozą prawdopodobieństwa zajścia, tzn. q jest prawdziwe z danym prawdopodobieństwem, w przypadku gdy p jest prawdziwe. W takim wypadku należy jeszcze sprawdzić wiarygodność (dokładność, ufność) takiej reguły, która jest opisana jako p(q p). Prawdopodobieństwo takie jest bardzo łatwe do obliczenia, wystarczy zliczyć odpowiednie częstości i podzielić przez siebie: (2.1) Wsparcie fr(p => q) reguły p => q można opisać albo jako fr(p), czyli pewien podzbiór wszystkich obiektów, do których stosuje się regułę, lub jako fr(p ), tzn. obiekty, których obie strony reguły są prawdziwe. Takie reguły są nazywane regułami asocjacyjnymi. Przykładem takiej reguły jest np. ziemniak młody kg => marchew kg. 6 Hand D., Mannila H., Smyth P Eksploracja danych. Wydawnictwo Naukowo-Techniczne WNT. 27

28 Odkrywanie asocjacji wprowadzenie Odkrywanie asocjacji jest jedna z najciekawszych i najbardziej popularnych technik eksploracji danych. Celem procesu odkrywania asocjacji jest znalezienie interesujących zależności lub korelacji, nazwanych ogólnie asocjacjami, pomiędzy danymi w dużych zbiorach danych. Wynikiem procesu odkrywania asocjacji jest zbiór reguł asocjacyjnych opisujących znalezione zależności lub korelacje pomiędzy danymi. Początkowo problem odkrywania asocjacji był rozważany w kontekście tak zwanej analizy koszyka zakupów (ang. market basket analysis). Klasyczny problem analizy koszyka zakupów polega na analizie danych pochodzących z kas fiskalnych i opisujących zakupy realizowane przez klientów w supermarkecie. Celem takiej analizy jest znalezienie naturalnych wzorców zachowań konsumenckich klientów przez analizę produktów, które są przez klientów supermarketu kupowane najczęściej wspólnie (tj. określenie grup produktów, które klienci najczęściej umieszczają w swoich koszykach stąd nazwa problemu). Znalezione wzorce zachowań klientów mogą być następnie wykorzystane do opracowania akcji promocyjnych, organizacji półek w supermarkecie, opracowania koncepcji katalogu oferowanych produktów itp. 7 Model koszyka zakupów jest modelem relacji wiele do wielu pomiędzy dwoma encjami: Produkty oraz Koszyki ( Transakcje ). Dość często model koszyka zakupów występuje jako tzw. tablica obserwacji. W odniesieniu do Delikatesów Alma tabelą Produkty jest tabela kartotekatowarowa, natomiast Koszyki transakcjekasowe. Tabela 2.1. przedstawia przykładową tablicę obserwacji. Tabela 2.1. Przykładowa tablica obserwacji id koszyka Produkt A 1 Produkt A 2 Produkt A 3 Produkt A 4 Produkt A 5 T T T T T T T T Tablica ta posłuży wyłącznie do celów poglądowych w celu wyjaśnienia kilku kwestii. Tablica zawiera 8 obserwacji T={T 1,, T 8 } i 5 atrybutów A={A 1,, A 5 }. Pierwsza kolumna (id koszyka) identyfikuje kolejne transakcje, pozostałe zaś przedstawiają różne produkty sklepu. Wartość 1 oznacza, że klient i kupił dany produkt j, 0 sytuację odwrotną. Jako 7 Morzy T. Eksploracja danych.(http://wazniak.mimuw.edu.pl/images/7/74/ed-4.2-m kolor.pdf, kwiecień 2010). 28

29 29 wystąpienie (zakup) danego produktu oznaczymy T i [A j ] = 1. Zadaniem eksploracyjnym jest odnalezienie przydatnych reguł dla danych z tabeli Przy takim zbiorze obserwacji o wartościach [0, 1] zmiennych A 1,, A p, reguła asocjacyjna ma postać:, (2.2) gdzie dla każdego j,. Można ją również zapisać znacznie krócej mianowicie ( ) ( ). Zbiorem elementów jest wzorzec postaci: ( ) ( ). Reguły takiej postaci można interpretować w następujący sposób: Jeżeli klient kupił produkty,,,, to prawdopodobnie kupił również produkty,,,. Reguły asocjacyjne najogólniej można zapisać w postaci, gdzie p reprezentuje wzorzec zbioru elementów, natomiast q jest wzorcem zbioru pojedynczych wyrażeń. Z regułami asocjacyjnymi powiązane są dwie podstawowe miary określające ważność i siłę reguły: wsparcie (ang. support) oraz ufność (ang. confidence). Wsparcie reguły asocjacyjnej jest to stosunek ilości obserwacji spełniającej warunek, do liczby wszystkich obserwacji. Pamiętać należy, że wsparcie tak naprawdę jest równe prawdopodobieństwu zajścia zdarzenia. Ufnością reguły asocjacyjnej nazywamy stosunek liczby obserwacji spełniających warunek, do liczby obserwacji spełniających warunek (ufność reguły = warunkowemu prawdopodobieństwu p( )). Reguły można podzielić według kilku kryteriów: typu przetwarzanych danych wyróżnia się binarne i ilościowe reguły asocjacyjne; wymiarowości przetwarzanych danych jedno- i wielowymiarowe reguły asocjacyjne; stopnia abstrakcji przetwarzanych danych jedno- i wielopoziomowe reguły asocjacyjne. Binarne reguły asocjacyjne (ang. binary lub boolean association rules) są to takie reguły, w których dane występujące w niej są danymi (zmiennymi) binarnymi, tzn. mogą przyjmować tylko dwie wartości: 1 (prawdę) lub 0 (fałsz). Ilościową regułą asocjacyjną (ang. quantitative association rules) nazywamy regułę, w której występujące dane są ciągłe i/lub kategoryczne. Przykładem binarnej reguły asocjacyjnej może być reguła:. Reguła ta jest przykładem reguł odkrytych w trakcie analizy koszyka zakupów klientów Delikatesów Alma, przedstawia klientów, którzy oprócz chleba baltonowskiego 500g kubiak w swoim koszyku posiadali również chleb na wagę. Przykładem ilościowej reguły asocjacyjnej jest reguła: 29

30 30. Reguła ta jest wynikiem analiz danych transakcyjnych i stwierdza, że jeżeli jeśli to jest styczeń (data z przedziału ) i produkty są z importu, to najczęściej wybieranym produktem jest szynka parmeńska. Atrybut data jest atrybutem ciągłym, natomiast import oraz produkt są atrybutami kategorycznymi. Podczas procesu poszukiwania ilościowych reguł asocjacyjnych, ciągłe atrybuty ulegają dyskretyzacji, tzn. przedstawiają pewien przedział wartości. Jednowymiarowe reguły asocjacyjne (ang. single-dimensional association rules) są to takie reguły, w których występujące dane reprezentują tę samą dziedzinę wartości. Natomiast wielowymiarowe reguły asocjacyjne (ang. multidimensional association rules) przedstawiają dane reprezentujące różne dziedziny wartości. Pojęcie wymiaru pochodzi z terminologii magazynów danych, gdzie występuje w kontekście pojęcia analizy wielowymiarowej danych. Przykładem jednowymiarowej reguły jest reguła z chlebami ( ), natomiast regułą wielowymiarową:, ponieważ możemy wyróżnić trzy wymiary: datę, import oraz produkt. Jednopoziomowe reguły asocjacyjne (ang. single-level association rules) są to takie reguły, w których występujące dane przedstawiają ten sam poziom abstrakcji. Przykładem takich danych są: konkretne produkty zakupione w supermarkecie, słowa kluczowe występujące w dokumentach tekstowych, itd. W przeciwieństwie do jednopoziomowych reguł, wielopoziomowe opisują asocjacje występujące między danymi reprezentującymi różne poziomy abstrakcji. Przykładową jednopoziomową regułą asocjacyjną jest reguła:. Przykładowa wielopoziomowa reguła asocjacyjna jest następująca: ). Określenie problemu poszukiwania silnych jednopoziomowych jednowymiarowych binarnych reguł asocjacyjnych przedstawiane kilkukrotnie w przykładach tego rozdziału abstrahuje od rzeczywistych sposobów przechowywania danych. Założenie, że źródłem danych do eksploracji jest zerojedynkowa tablica obserwacji jest mało realistyczne w praktyce. Częściej można się spotkać z poniższą definicją odkrywania binarnych reguł asocjacyjnych: Binarną regułą asocjacyjną (krótko, regułą asocjacyjną) nazywamy relacje postaci:, gdzie,, i. 30

31 31 Reguła posiada wsparcie sup w bazie danych D,, jeżeli sup% transakcji w D wspiera zbiór. Reguła posiada ufność conf w bazie danych D,, jeżeli conf% transakcji w D, które wspierają zbiór p, wspierają również zbiór q. 8 Wsparcie jest podstawową miarą reguł asocjacyjnych, określającą liczbę wystąpień w danym zbiorze danych, np. w przypadku Delikatesów Alma wsparcie reguły będzie pokazywało procent klientów zachowujących się zgodnie z daną regułą. Miara wsparcia jest symetryczna względem zbiorów tworzących poprzednika i następnika reguły. Ufność reguły opisuje z jakim prawdopodobieństwem znaleziona reguła asocjacyjna występuje. Gdy reguły posiadają niewielki poziom ufności, są mało wiarygodne, natomiast te z wysokim poziomem ufności pozwalają przypuszczać, że wystąpią ponownie. W odróżnieniu od wsparcia, ufność jest miarą asymetryczną względem zbiorów stanowiących poprzednik i następnik reguły. Analizując duże zbiory danych, odnalezionych reguł jest oczywiście bardzo dużo i zdecydowanie nie wszystkie z nich muszą być dla badacza równie ciekawe. Dlatego do określenia, które z reguł są interesujące, zostały wprowadzone dwie wartości progowe: minimalne wsparcie i minimalna ufność. Wyznaczane są one przez badacza, eksperta w danej dziedzinie, i są parametrami wejściowymi w procesie odkrywania reguł asocjacyjnych dla danego zbioru danych. Uważa się, że silna reguła asocjacyjna to taka, której wartość wsparcia jest większa lub równa minimalnemu progowi wsparcia oraz wartość współczynnika ufności jest większa lub równa minimalnemu progowi ufności. W przypadku poszukiwań reguł rzadkich wybór reguł jest odwrotny, tzn. jeśli współczynnik wsparcia jest mniejszy lub równy minimalnemu progowi wsparcia oraz ufność jest mniejsza lub równa minimalnemu progowi ufności Algorytmy poszukiwania reguł asocjacyjnych W 1993 r. przedstawiony został pierwszy algorytm wyszukujący silne reguły asocjacyjne. Wykorzystywał on w procesie odkrywania reguł operatorów relacyjnych. Rok później R. Agrawal i R. Srikant przedstawili dwa zupełnie nowe algorytmy: algorytm Apriori oraz jego rozszerzenie AprioriTID. Stały się one filarem wielu nowych algorytmów wykrywania binarnych reguł asocjacyjnych. Wszystkie algorytmu poszukiwania silnych binarnych reguł asocjacyjnych posiadają pewną cechę wspólną taki sam ogólny schemat działania. 8 Morzy T. Eksploracja danych.(http://wazniak.mimuw.edu.pl/images/7/74/ed-4.2-m kolor.pdf, kwiecień 2010). 31

32 Modelowanie wzorców zachowań ń klientów Delikatesów Alma przy wykorzystaniu reguł asocjacyjnych 32 Schemat 2.1. przedstawia ogólny algorytm odkrywania silnych binarnych reguł asocjacyjnych. Znaleźć wszystkie zbiory elementów L i ={i i1, i i2,..., i im }, L i I,, których wsparcie (L i ) minsup. Zbiory L i nazywać się będą zbiorami częstymi.. Wykorzystując algorytm z następnego kroku oraz odnalezione zbiory częste, wygenerować wszystkie reguły asocjacyjne. for each zbioru częstego L i do for each podzbioru subl i zbioru L i do if wsparcie(l i )/ wsparcie(subl i ) minconf then outputreguła subl i (L i subl i ) conf(subl i (L i subl i )) = support(l i )/ support(subl i ) sup(subl i (L i subl i )) = support(l i ) Schemat 2.1. Ogólny schemat odkrywania silnych binarnych reguł asocjacyjnych Źródło: Opracowanie własne na podstawie Krok pierwszy polega na odnalezieniu wszystkich zbiorów częstych, które są reprezentantami zbioru elementów występujących wspólnie w transakcjach, a ich wartość wsparcia jest nie mniejsza niż minimalny zadany próg wsparcia. Następnie wykorzystując zbiory częste tworzone są wszystkie możliwe silne binarne reguły asocjacyjnej, których ufność jest większa lub równa zadanej wartości progowej ufności. Z punktu widzenia efektywności największe znaczenie ma etap odnajdywania zbiorów częstych. Algorytm Apriori jest algorytmem iteracyjnym, tzn. znajduje on zbiory częste o rozmiarach {1, 2,, k} w kolejnych krokach działania. Zbiór danych powinien być uporządkowany leksykograficznie, jeśli nie jest to w pierwszym kroku algorytm powinien posortować dany zbiór. Na początku algorytm wybiera z bazy danych, czy jakiegoś innego zbioru danych, wszystkie zbiory jednoelementowe i sprawdza który z nich jest zbiorem częstym. W kolejnym kroku na podstawie zbiorów częstych tworzy się zbiory kandydujące (ang. candidate itemsets) oraz oblicza się dla każdego z nich jego wsparcie w całej bazie danych lub zbiorze danych. W przypadku, gdy wsparcie kandydata jest większe lub równe minimalnej wartości wsparcia, dołączany on jest do listy zbiorów częstych i w następnym kroku zostanie wzięty pod uwagę przy generacji zbiorów kandydujących. W każdym kolejnym kroku algorytm, na podstawie zbiorów częstych odszukanych w poprzednim 32

33 33 kroku, tworzy zbiory kandydujące o rozmiarze większym o 1. Algorytm przestaje działać w momencie, gdy nie można utworzyć kolejnych zbiorów kandydujących. Schemat 2.2. przedstawia algorytm Apriori. Schemat 2.2. Algorytm Apriori L 1 = {zbiory częste 1-elementowe}; for (k = 2; L k 1 Ø; k++) do begin C k = apriori_gen(l k-1 ); For each transakcji t T do begin C t = subset(c k,t); For each zbioru kandydujacego c C t do c.count++; end; L k = {c C k c.count minsup} end; Wynik = kl k ; Źródło: W opisie algorytmu zastosowano następującą notację: C k oznacza rodzinę zbiorów kandydujących k-elementowych, L k oznacza rodzinę zbiorów częstych k-elementowych, c.count oznacza licznik zliczający liczbę transakcji wspierających zbiór elementów c, apriori_gen ( ) oznacza funkcję, która generuje zbiory kandydujące, natomiast subset ( ) oznacza funkcję, która dla danej transakcji t zwraca wszystkie zbiory kandydujące wspierane przez t. W pierwszym kroku algorytm zlicza wystąpienia wszystkich elementów w bazie danych D w celu wyodrębnienia zbiorów częstych 1-elementowych (L 1 ). Każdy kolejny k-ty krok algorytmu składa sie z dwóch faz. W pierwszej, funkcja apriori_gen ( ), w oparciu o zbiory częste należące do L {k-1}, generuje zbiory kandydujące k-elementowe (C k ). W drugiej fazie k-tego kroku jest realizowany odczyt bazy danych D i dla każdego zbioru kandydującego c ze zbioru C k jest obliczane wsparcie zbioru c w bazie danych D, {wsparcie}(c). W celu zapewnienia odpowiedniej efektywności procedury obliczania wsparcia zbiorów kandydujących, algorytm Apriori wykorzystuje strukturę danych postaci drzewa haszowego, która służy do przechowywania zbiorów kandydujących. Procedura subset ( ) zwraca te zbiory kandydujące należące do C k, które są wspierane przez transakcję t. Jeżeli zbiór kandydujący c spełnia warunek minimalnego wsparcia, to jest, {wsparcie}(c) minsup, to zbiór ten jest dodawany do listy zbiorów częstych, w przeciwnym razie zbiór ten jest usuwany z listy zbiorów kandydujących. Podstawowym problemem efektywności działania algorytmu Apriori są dwie rzeczy: jak zapewnić efektywność procedury generowania zbiorów kandydujących, oraz, jak zapewnić efektywność procedury obliczania wsparcia dla tych zbiorów. Pierwszy z wymienionych 33

34 34 problemów dotyczy efektywności funkcji apriori_gen ( ). 9 Funkcja apriori_gen ( ) została przedstawiona na schemacie 2.3. Schemat 2.3. Funkcja apriori_gen ( ) function apriori_gen(c k ) insert into C k select p.item 1, p.item 2,..., p.item k-1, q.item k-1 from L k-1 p, L k-1 q where p.item 1 = q.item 1,...,p.item k-2 = q.item k-2,p.item k-1 < q.item k-1 ; forall itemsets c C k do forall (k-1) - subsets s of c do if ( s L k-1 ) then delete c from C k ; endfunction; Źródło: Funkcja apriori_gen ( ) jest realizowana w dwóch krokach: (1) kroku generacji zbiorów kandydujących (ang. join step) oraz (2) kroku usuwania zbiorów kandydujących (ang. prune step). W kroku pierwszym, zbiory kandydujące k-elementowe (C k ) są generowane poprzez łączenie zbiorów częstych (k-1)-elementowych (L k-1 ). W kroku drugim, ze zbioru C k są usuwane te zbiory kandydujące, których jakikolwiek podzbiór nie jest zbiorem częstym. Złożoność pierwszego kroku funkcji apriori_gen ( ), dla i-tej iteracji, w najgorszym przypadku, jest rzędu O( L i 2 ). Wynika ona z konieczności znalezienia wszystkich par zbiorów (c i, c j ) należących do L k-1, takich, że ich suma daje zbiór o rozmiarze i. Krok drugi funkcji apriori_gen ( ) wymaga sprawdzenia, czy utworzony zbiór jest rzeczywiście zbiorem kandydującym, to znaczy, wymaga sprawdzenia, czy każdy podzbiór tego zbioru jest zbiorem częstym. Ta procedura wymaga sprawdzenia L i zbiorów. Stąd, złożoność obliczeniowa funkcji apriori_gen ( ) jest rzędu O(Σ i L i 3 ). W praktyce, rzadko mamy do czynienia z najgorszym przypadkiem, gdyż, najczęściej, niewiele zbiorów częstych posiada k-1 wspólnych elementów, co pozwala na ich łączenie. Zauważmy również, że przedstawiona złożoność obliczeniowa funkcji apriori_gen ( ) jest niezależna od liczby transakcji n. Wynika to z faktu, że generowanie zbiorów kandydujących nie wymaga dostępu do bazy danych, lecz wykorzystuje do tego celu odkryte wcześniej zbiory częste. Drugi ze wspomnianych problemów dotyczy efektywności procedury obliczania wsparcia dla wygenerowanych przez funkcje apriori_gen ( ) zbiorów kandydujących. Załóżmy, że dany jest zbiór C i, którego elementami są zbiory kandydujące o rozmiarze i. Obliczenie wsparcia zbiorów kandydujących ze zbioru C i wymaga tylko jednokrotnego odczytu bazy danych D. Wystarczy bowiem dla każdego zbioru kandydującego c utworzyć licznik, 9 Morzy T. Eksploracja danych. (http://wazniak.mimuw.edu.pl/images/3/3f/ed-4.2-m kolor.pdf, kwiecień 2010). 34

35 35 c.count, który będzie zliczał liczbę transakcji wspierających zbiór c. Złożoność obliczeniowa przedstawionej procedury obliczania wsparcia dla zbioru Ci jest rzędu O( C i nq), gdzie n oznacza liczbą transakcji w bazie danych D, natomiast q oznacza maksymalny rozmiar transakcji należącej do D. Algorytm Apriori wymaga k lub k+1 odczytów bazy danych D, gdzie k oznacza maksymalny rozmiar zbioru częstego. 10 Algorytm Apriori wykorzystuje własność monotoniczności w odniesieniu do wsparcia zbioru elementów. Oznacza to, że jeśli jakiś zbiór jest zbiorem częstym, to wszystkie jego podzbiory są także zbiorami częstymi. Wynika z tego również to, że każdy nadzbiór tego zbioru nie jest zbiorem częstym. Z własności monotoniczności wynika również, że nie trzeba obliczać wsparcia zbioru, którego podzbiór nie jest zbiorem częstym. Monotoniczność miary wsparcia pozwala na redukcję ilości zbiorów częstych. Sposób działania algorytmu zostanie przedstawiony na przykładnie kilku transakcji supermarketu. W tabeli 2.2. znajdują się przykładowe dane transakcyjne. Tabela 2.2. Przykładowe dane transakcyjne Id koszyka Produkty 1 bułka, jogurt, ser żółty 2 herbata, jogurt 3 bułka 4 bułka, jogurt, herbata 5 herbata, ser żółty, bułka Dla przykładu progowa wartość wsparcia wynosi minsup = 20%, a progowa wartość ufności minconf = 70%. W tabelach 2.3., 2.4., 2.5. przedstawione zostały zbiory kandydujące z kolejnych przebiegów algorytmu Apriori. Natomiast w tabelach 2.6., 2.7., 2.8. przedstawione zostały zbiory częste. Tabela 2.3. C 1 zbiory kandydujące Zbiór kandydujący Id Wsparcie (w %) bułka 1 80 jogurt 2 60 herbata 3 60 ser zółty 4 40 Tabela 2.4. L 1 zbiory częste Zbiór częsty Id Wsparcie (w %) bułka 1 80 jogurt 2 60 herbata 3 60 ser zółty Morzy T. Eksploracja danych. (http://wazniak.mimuw.edu.pl/images/3/3f/ed-4.2-m kolor.pdf, kwiecień 2010). 35

36 36 Tabela 2.5. C 2 zbiory kandydujące Zbiór kandydujący Wsparcie (w %) Tabela 2.6. L 2 zbiory częste Zbiór częsty Wsparcie (w %) Tabela 2.7. C 3 zbiory kandydujące Zbiór kandydujący Wsparcie (w %) Tabela 2.8. L 3 zbiory częste Zbiór częsty Wsparcie (w %) Tabela 2.9. przedstawia wszystkie możliwe reguły utworzone ze zbiorów częstych wraz z wartością ufności. Ostatecznie trzy reguły spełniają założenie minconf = 70%: reguła jogurt, ser żółty => bułka, herbata, ser żółty => bułka oraz ser żółty => bułka. Reguły czytamy w następujący sposób: W danym zbiorze danych 20% klientów z prawdopodobieństwem większym lub równym 70% jeśli kupiło jogurt i ser żółty, kupiło również bułkę. 11 Tabela 2.9. Ufność dla utworzonych reguł asocjacyjnych Reguła Ufność (w %) ser zółty --> bułka 100,00 jogurt, ser zółty --> bułka 100,00 herbata, ser zółty --> bułka 100,00 jogurt --> bułka 66,70 herbata --> bułka 66,70 jogurt --> herbata 66,70 herbata --> jogurt 66,70 bułka --> jogurt 50,00 bułka --> herbata 50,00 bułka --> ser zółty 50,00 ser zółty --> jogurt 50,00 ser zółty --> herbata 50,00 bułka, jogurt --> herbata 50,00 bułka, herbata --> jogurt 50,00 jogurt, herbata --> bułka 50,00 bułka, jogurt --> ser zółty 50,00 ser zółty --> bułka, jogurt 50,00 bułka, ser zółty --> jogurt 50,00 11 Morzy T. Eksploracja danych. (http://wazniak.mimuw.edu.pl/images/3/3f/ed-4.2-m kolor.pdf, kwiecień 2010). 36

37 37 bułka, herbata --> ser zółty 50,00 ser zółty --> bułka, herbata 50,00 bułka, ser zółty --> herbata 50,00 jogurt --> ser zółty 33,30 herbata --> ser zółty 33,30 jogurt --> bułka, herbata 33,30 herbata --> bułka, jogurt 33,30 jogurt --> bułka, ser zółty 33,30 herbata --> bułka, ser zółty 33,30 bułka --> jogurt, herbata 25,00 bułka --> jogurt, ser zółty 25,00 bułka --> herbata, ser zółty 25,00 Główną wadą algorytmów eksploracji danych jest bardzo długi czas oczekiwania na odpowiedź zapytania eksploracyjnego. Algorytm Apriori potrzebuje k+1 pełnych odczytów bazy danych do wyznaczenia wszystkich k-elementowych zbiorów częstych. Ponieważ czas ten dla dużych zbiorów danych jest nie do zaakceptowania, poszukiwano sposobów optymalizacji algorytmu i owocami tych prac są kolejne algorytmy eksploracyjne. Algorytm AprioriTID jest rozszerzeniem algorytmu Apriori o tablice zliczająjące tzw. counting_base. Tablica ta jest nową strukturą danych, która zmienia się z każdym krokiem algorytmu. Wsparcie dla zbiorów kandydujących obliczane jest na podstawie tej tablicy, a nie jak to miało miejsce w podstawowym algorytmie Apriori całego zbioru. Różnicę w efektywności widać dopiero dla bardzo dużych zbiorów danych. Własność tego algorytmu, jak i jego poprzednika, wykorzystano przy budowie nowego algorytmu AprioriHybrid, przedstawionego w 1994 przez Agrawala i Srikanta. AprioriHybrid na początku swojego działania wykonuje algorytm Apriori do momentu, aż tablicę counting_base można zmieścić w pamięci, w tym momencie przełącza się na algorytm AprioriTID. Minusem takiego działania jest wydłużony czas w początkowych fazach działania algorytmu. Na schemacie 2.4. przedstawiony został algorytm AprioriTID. Widoczna różnica w porównaniu do algorytmu z schematu 2.2. jest generowanie tablicy counting_base i obliczanie wsparcia dla elementów tej tablicy, zamiast dla pojedynczych zbiorów kandydujących. Tablica w algorytmie została oznaczona przez CB k. Schemat 2.4. Algorytm AprioriTID L 1 = {zbiory częste 1-elementowe}; for (k = 2; L k 1 Ø; k++) do C k = apriori_gen(l k-1 ); //generowanie nowych kandydatów CB k = Counting_base_generate (C k,cb k 1 ); Support_count(C k,cb k ); L k := {c C k : support(c) min_sup} end for Źródło: 37

38 Modelowanie wzorców zachowań ń klientów Delikatesów Alma przy wykorzystaniu reguł asocjacyjnych 38 Tablica CB łączy każdą transakcję z listą kandydatów tej transakcji. Counting_base ma następującą strukturę CB k = {(id, S k )}, gdzie id jest identyfikatorem transakcji, natomiast S k zawiera wszystkich kandydatów ze zbioru C k, występujące w transakcji o identyfikatorze id. Tablica CB jest wyznaczana w sposób iteracyjny, tzn. w k-tej fazie CB tworzona jest z tablicy CB k-1 zbudowanej w fazie (k-1)-tej. Algorytm tworzący tablicę Counting_base został przedstawiony na schemacie 2.5. Dla i=1 Dla i=k Tablica Counting Base 1 = {(id, S k )}, id-identyfikator identyfikator transakcji, S 1 -zbiory jednoelementowe występujące w C k oraz transakcjach o identyfikatorze id. Tablica Counting Base k powstaje przez łączenie Counting Base k-1 z nim samym, tzn. Counting Base k = {(id, S k )} = {(id, S k-1 ) (id, S k-1 )} Schemat 2.5. Schemat postępowania powania w procesie tworzenia tablicy Counting Base Przykładowe działanie algorytmu AprioriTID przedstawia rysunek 2.2. Zbiór danych transakcyjnych oznaczony jest przez D,, minimalne wsparcie przyjęte zostało na poziomie 50%, F 1,, F 3 oznaczają zbiory częste, C 2 i C 3 zbiory kandydujące. Strzałki pokazują jak przebiega proces tworzenia tablicy Counting_base oraz generacji zbiorów częstych i kandydatów. Rysunek Działanie algorytmu AprioriTID Źródło: Algorytm AprioriTID w początkowej fazie poszukiwania reguł potrzebuje znacznie więcej czasu. Związane jest to z tworzeniem tablicy counting_base, natomiast w końcowym etapie tablica ta ulega znacznemu zmniejszeniu. Minimalizacja tablicy counting_base wynika z usunięcia z niej pozycji częstych nie spełniających założeń minimalnego wsparcia i ufności. 38

39 Modelowanie wzorców zachowań ń klientów Delikatesów Alma przy wykorzystaniu reguł asocjacyjnych 39 Algorytm FP-Growth wykorzystuje zupełnie inne podejście do sposobu odkrywania zbiorów częstych. Zawiera ona dwa podstawowe kroki, które zostały przedstawione na schemacie 2.6. Kompresja bazy danych do FP-Drzewa Krok 1: znajdowanie wszystkich 1-elementowych zbiorów czestych w bazie danych. Krok 2: transformacja każdej transakcji T i należącej do bazy danych do postaci transakcji skompresowanej Tr i, polegajaca na usunięciu z T i wszystkich elementów, które nie są częste. Krok 3: posortowanie transakcji -dla każdej transakcji Tr i, elementy transakcji są sortowane według malejących wartości ich wsparcia tworząc listę elementów. Krok 4: utworzenie FP-Drzewa z posortowanych transakcji Tr 1, Tr 2,..., Tr n. Eksploracja FP-Drzewa Dla każdego 1-elementowego zbioru częstego αznajdujemy wszystkie scieżki w FP-drzewie, których końcowym wierzchołkiem jest wierzchołek reprezentujacy zbiór α(pojedyncza ścieżka, której końcowy wierzchołek jest α, nazywa się ścieżką prefiksową wzorca α). Z każdą prefiksową scieżką wzorca αjest związany licznik częstości scieżki, którego wartość odpowiada wartości licznika transakcji wierzchołka końcowego scieżki reprezentującego zbiór α(zbiór wszystkich scieżek prefiksowych wzorca tworzy warunkową bazę wzorca). Warunkowa baza wzorca służy do konstrukcji tzw. warunkowego FP-drzewa wzorca α, oznaczanego Tree-α. Warunkowe FP-drzewo jest następnie rekursywnie eksplorowane w celu znalezienia wszystkich zbiorów częstych zawierających zbiór α. Schemat 2.6. Etapy algorytmu FP-Growth Źródło: Opracowanie własne na podstawie kolor.pdf. W pierwszym kroku algorytm przeszukuje bazę danych w celu znalezienia wszystkich jednoelementowych zbiorów częstych. Kolejnym krokiem jest usunięcie nie częstych elementów z transakcji T i, co w efekcie daje zmodyfikowany zbiór transakcji T = T 1,, T n, składający się ę wyłącznie z jednoelementowych zbiorów częstych. Następnie zbiór transakcji jest sortowany malejąco wg wsparcia każdej transakcji. Po tym kroku transakcje są transformowane do postaci FP-Drzewa. Rysunek Przykładowe FP-drzewo wraz z tablicą nagłówkową Źródło: 39

40 40 Czym jest FP-Drzewo? FP- drzewo jest ukorzenionym, etykietowanym w wierzchołkach, grafem acyklicznym. Korzeń grafu posiada etykietę 'null', pozostałe wierzchołki grafu, zarówno wierzchołki wewnętrzne jak i liście, reprezentują 1-elementowe zbiory częste. Z każdym wierzchołkiem grafu, za wyjątkiem korzenia, związana jest etykieta reprezentująca 1-elementowy zbiór częsty oraz licznik transakcji, reprezentujący liczbę transakcji wspierających dany zbiór. 12 Transformacja do FP-drzewa została przedstawiona na schemacie 2.7. Przykładowe FP-drzewo wraz z tablicą nagłówkową przedstawia rysunek 2.3. Utwórz korzeń FP-drzewa oraz przypisz mu etykietę 'null' Odczytaj bazę danych (po kompresji) i dla pierwszej transakcji Tr 1 należącej do bazy danych utwórz scieżkę w FP-drzewie, której początkiem jest korzeń drzewa Dla kolejnej transakcji Tr 2 należącej do bazy danych utwórz scieżkę rozpoczynającą się od korzenia. Jeżeli lista elementów transakcji Tr 2 posiada wspólny prefiks z listą elementów transakcji Tr 1, wówczas, scieżka reprezentująca Tr 2 jest konstruowana w następujący sposób => Załóżmy, że wspólny prefiks transakcji Tr 1 i Tr 2 składa się z elementów: I 1, I 2,..., I k, gdzie I i należy do T 1, I i należy do T 2, i = 1,..., k. Transformacja elementów transakcji Tr 2 należących do wspólnego prefiksu I 1, I 2,..., I k nie tworzy nowych wierzchołków drzewa, lecz współdzieli istniejącą w FP-drzewie ścieżkę I 1, I 2,..., I k utworzoną przy transformacji transakcji Tr 1. Pozostałe elementy transakcji Tr 2, nie należące do wspólnego prefiksu, tworzą nowe wierzchołki połączone łukami -początkiem tej ścieżki jest wierzchołek I k. Ogólnie, w przypadku transformacji transakcji T j, która posiada wspólny prefiks z przetransformowaną wcześniej transakcją T i, transakcja T j, po transformacji, współdzieli podscieżkę reprezentującą wspólny prefiks z transakcją T i. Innymi słowy, pojedyncza scieżka w FP-drzewie, rozpoczynająca się w korzeniu drzewa, reprezentuje zbiór transakcji zawierających identyczne elementy. Licznik ostatniego wierzchołka danej scieżki zawiera informacje o liczbie transakcji wspierających zbiór elementów reprezentowanych przez wierzchołki grafu należące do tej scieżki. Dla każdego elementu FP-drzewa utwórz wskaźnik w tablicy nagłówkowej. Jeżeli dany element występuje wielokrotnie w FP-drzewie, to wskaźniki do wierzchołków reprezentujących dany element tworzą listę wskaźników. Schemat 2.7. Transformacja do FP-drzewa Źródło: Opracowanie własne na podstawie kolor.pdf. 12 Morzy T. Eksploracja danych. (http://wazniak.mimuw.edu.pl/images/3/3f/ed-4.2-m kolor.pdf, kwiecień 2010). 40

41 41 Algorytm FP-Growth posiada dwa początkowe parametry: Tree = FP-drzewo oraz α = null. W przypadku, gdy FP-drzewo posiada tylko pojedynczą ścieżkę p, wtedy dla każdej kombinacji β wierzchołków ścieżki p tworzony jest zbiór o wsparciu równym minimalnemu wsparciu elementów należących do zbioru β. Jeśli FP-drzewo zawiera więcej niż jedną ścieżkę, to każdy element α i należący do tablicy nagłówków Tree tworzony jest zbiór o wsparciu odpowiadającym wsparciu elementów α i. Następnie generowana jest warunkowa baza wzorca β i warunkowe FP-drzewo wzorca β, oznaczone Tree-β. Po tym kroku sprawdzane jest, czy Tree-β jest niepuste, jeśli jest puste, przerywany jest algorytm, w przeciwnym wypadku ponownie uruchamiana jest procedura FP-Growth z parametrami Tree = Tree-β i α = β. Formalny opis procedury przedstawia schemat 2.8. Schemat 2.8. Procedura FP-Growth procedure FP-Growth (Tree, α) if Tree zawiera pojedynczą ścieżkę P then for each kombinacji β wierzchołków ścieżki P do generuj zbiór β α o wsparciu równym minimalnemu wsparciu elementów należących do β end do else for each α-i należącego do tablicy nagłówków elementów Tree do generuj zbiór β = α-i α o wsparciu = wsparcie(α-i); utwórz warunkową bazę wzorca β; utwórz warunkowe FP-drzewo wzorca β - Tree-β; if Tree-β Ø then FP-Growth(Tree-β, β); end procedure; Źródło: Rozdział ten miał na celu przedstawienie w niewielkim skrócie czym jest eksploracja danych, a konkretniej czym są reguły asocjacyjne, w jaki sposób są wyszukiwane w zbiorach danych oraz jak je interpretować. Opisane zostały rodzaje reguł asocjacyjnych, podstawowy algorytm wyszukiwania reguł asocjacyjnych Apriori oraz jego późniejsze modyfikacje, a także podstawowe parametry wykorzystywane przez większość tych algorytmów i określane przez badacza, tzn. minimalny poziom wsparcia i ufności. Następnie przedstawiony został algorytm FP-Growth, w którym niektóre elementy bazują na pierwotnym algorytmie Apriori, jednak zastosowanie struktury drzewiastej do przechowywania zbiorów częstych w znacznym stopniu przyspieszyło etap selekcji zbiorów kandydujących do kolejnych interakcji algorytmu. W dalszej pracy zostanie wykorzystana wiedza na temat jak powinny wyglądać dane transakcyjne, w jaki sposób są one przetwarzane przez algorytm do wyszukiwania reguł asocjacyjnych, w jaki sposób minimalny poziom wsparcia i ufności wpływa na ilość odnajdywanych reguł, i co najważniejsze, jak interpretować otrzymane w wyniku eksploracji reguły asocjacyjne. 41

42 Modelowanie wzorców zachowań ń klientów Delikatesów Alma przy wykorzystaniu reguł asocjacyjnych Wybór oraz przygotowanie oprogramowania do badań W tym rozdziale przedstawimy oprogramowanie wykorzystane w eksploracji danych przeprowadzonej na zbiorach Delikatesów Alma. Zaprojektujemy odpowiednią bazę danych, w której zgromadzone zostaną dane z dwóch systemów Delikatesów Alma: systemu magazynowego oraz systemu kasowego, zawierającego transakcje klientów. Następnie pokażemy krok po kroku jak zaimportować informacje z systemów Delikatesów Alma do przygotowanej bazy danych oraz w jaki sposób pobierać ć z tej bazy odpowiednie dane wykorzystane następnie w procesie poszukiwania reguł asocjacyjnych. Rozdział zakończymy opisem programu Rapid Miner, a dokładniej przygotowaniem go do danych otrzymanych w plikach CSV i dalszej analizy, mającej na celu odnalezienie reguł asocjacyjnych w badanym zbiorze danych Wybór narzędzi do przeprowadzenia eksploracji danych na transakcjach Delikatesów Alma Proces odkrywania wiedzy składa się z siedmiu etapów. W każdym z nich dane są w pewien sposób przekształcane tak aby można było je wykorzystać w kolejnych etapach. Dzięki takim zabiegom po przejściu całego procesu ekspert (osoba mająca odpowiednią wiedzę jak interpretować wyniki) może wykorzystać pozyskaną ą wiedzę. Proces odkrywania wiedzy przedstawia schemat 3.1. Czyszczenie, konsolidacja i transformacja danych Wybór metody (metod) i algorytmów eksploracji danych Eksploracja danych Interpretacja, analiza i ocena wyników wizualizacja, transformacja, usuwanie redundantnych wzorców, etc. Wykorzystanie pozyskanej wiedzy Schemat 3.1. Proces odkrywania wiedzy Źródło: Opracowanie własne na podstawie kolor.pdf. 42

43 43 W etapie czyszczenia, konsolidacji i transformacji danych wykorzystane zostanie autorskie oprogramowanie napisane w języku AutoIt. Zadaniem skryptów będzie pobieranie danych z serwera magazynowego (dane o produktach, grupach, działach i stoiskach) i serwera kasowego (dane transakcyjne koszyki), odpowiednie przekształcenie i zapisanie do wspólnej bazy danych. Oprócz tego dane z bazy za pomocą odpowiedniego skryptu będą pobierane i zapisywane do pliku CSV, który następnie zostanie wykorzystany w etapie poszukiwania reguł. Dane wynikowe z programu Rapid Miner także zostaną przetworzone przez skrypt, aby łatwiej można było je interpretować. Baza danych wykorzystywana do przechowywania zbiorczych danych zarządzana jest przez MySQL, który jest jednym z najszybszych systemów bazodanowych. Przy wyborze RDBMS kierowaliśmy się szybkością serwera, gdyż sama struktura zaprojektowanej bazy będzie dość prosta i nie potrzebne są jakieś bardziej zaawansowane rozwiązania. Aby możliwa była komunikacja autorskiego programu, potrzebne jest zainstalowanie wcześniej odpowiedniego sterownika ODBC zamieszczonego na nośniku dołączonym do tej pracy magisterskiej. Do wyszukiwania reguł asocjacyjnych w transakcjach Delikatesów Alma, wykorzystane zostanie bardzo dobre i elastyczne oprogramowanie firmy Rapid-I o nazwie Rapid Miner. Jest to prawdziwy kombajn do uczenia maszynowego. Posiada ponad 500 operatorów: obsługa wejścia, wyjścia, przetwarzanie danych oraz wizualizację. Jednak najważniejszą jego cechą jest interfejs użytkownika, który jest intuicyjnych i pozwala na szybkie stworzenie interesującego nas procesu przetwarzania wiedzy. O jego marce świadczy również wykorzystanie go przez takich potentatów światowych jak Cisco Systems, Ford, Honda, IBM, HP 13. Proces przygotowania i implementacji oprogramowania został podzielony na kilka etapów: etap implementacji bazy danych; etap przygotowania i obsługi autorskiego programu do wymiany informacji między systemami sklepowymi, wspólną bazą danych, a programem Rapid Miner; etap przygotowania oprogramowania Rapid Miner do eksploracji danych. 13 Źródło: 43

44 Etap implementacji bazy danych Baza danych zarządzana jest przez serwer MySQL. Serwer MySQL dostępny jest dla wszystkich popularnych platform systemowych i różnorakich architektur procesorów. Baza danych składa się z tabel: KartotekaTowarowa, Grupy, Dzialy, Stoiska, TransakcjeKasowe oraz TransInfoDodatkowe. W tabelach 3.1., 3.2., 3.3., 3.4. oraz 3.5. przedstawione zostały odpowiednio struktury tabel bazy Alma. Tabela 3.1. Specyfikacja tabeli KartotekaTowarowa Nazwa kolumny Typ danych PK (klucz podstawowy) IdKartoteki Kod CenaDetal Nazwa Import Grupa int(11) varchar(13) float(10,2) varchar(40) varchar(1) int(6) FK (klucz obcy) Tabela 3.2. Specyfikacja tabeli Grupy Nazwa kolumny Typ danych PK (klucz podstawowy) IdGrupy Grupa Dzial Stoisko NazwaGrupy int(11) int(6) int(3) varchar(2) varchar(30) PK FK (klucz obcy) Tabela 3.3. Specyfikacja tabeli Dzialy Nazwa kolumny Typ danych PK (klucz podstawowy) IdDzialu Dzial NazwaDzialu int(11) int(3) varchar(30) PK FK (klucz obcy) Tabela 3.4. Specyfikacja tabeli Stoiska Nazwa kolumny Typ danych PK (klucz podstawowy) IdStoiska Stoisko NazwaStoiska int(2) varchar(2) varchar(30) PK FK (klucz obcy) Tabela 3.5. Specyfikacja tabeli TransakcjeKasowe Nazwa kolumny Typ danych PK (klucz podstawowy) IdTransakcji IdParagonu Data Godzina NrKasy WartPar Przedzial IloscTow KartaLojal int(11) int(10) date time int(2) float(8,2) int(4) int(4) varchar(13) PK FK (klucz obcy) PK NULL NIE NIE NIE NIE NIE NIE NULL NIE NIE NIE NIE NIE NULL NIE NIE NIE NULL NIE NIE NIE NULL NIE NIE NIE NIE NIE NIE NIE NIE NIE Opis, komentarz Id towaru Kod towaru Cena detaliczna towaru Nazwa towaru Import (T/N) Grupa towarowa Opis, komentarz Id grupy Grupa towarowa Dział towaru Stoisko Nazwa grupy towarowej Opis, komentarz Id działu Dział towaru Nazwa działu Opis, komentarz Id stoiska Stoisko Nazwa stoiska Opis, komentarz Id transakcji Id paragonu Data (dd-mm-rrrr) Godzina (gg:mm:ss) Numer kasy Wartość paragonu Przedział koszyka Ilość towarów na paragonie Karta lojalnościowa 44

45 45 Tabela 3.6. Specyfikacja tabeli TransInfoDodatkowe Nazwa kolumny Typ danych PK (klucz podstawowy) NULL IdTransakcji int(11) Kod varchar(13) FK (klucz obcy) FK NIE NIE Opis, komentarz Id transakcji Kod towaru Schemat 3.2. przedstawia kod SQL bazy Alma wraz z tabelami. Schemat 3.2. Kod SQL bazy Alma -- Baza danych: `alma` Struktura tabeli dla `dzialy` -- CREATE TABLE IF NOT EXISTS `dzialy` ( `IdDzialu` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Id działu', `Dzial` int(3) NOT NULL COMMENT 'Identyfikator numeryczny działu', `NazwaDzialu` varchar(30) NOT NULL COMMENT 'Nazwa działu', PRIMARY KEY (`IdDzialu`), KEY `Dzial` (`Dzial`), KEY `NazwaDzialu` (`NazwaDzialu`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; Struktura tabeli dla `grupy` -- CREATE TABLE IF NOT EXISTS `grupy` ( `IdGrupy` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Id grupy', `Grupa` int(6) NOT NULL COMMENT 'Identyfikator numeryczny grupy', `Dzial` int(3) NOT NULL COMMENT 'Identyfikator numeryczny dzialu', `Stoisko` varchar(2) NOT NULL COMMENT 'Identyfikator stoiska', `NazwaGrupy` varchar(30) NOT NULL COMMENT 'Nazwa grupy', PRIMARY KEY (`IdGrupy`), KEY `Grupa` (`Grupa`), KEY `Dzial` (`Dzial`), KEY `Stoisko` (`Stoisko`), KEY `NazwaGrupy` (`NazwaGrupy`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; Struktura tabeli dla `kartotekatowarowa` -- CREATE TABLE IF NOT EXISTS `kartotekatowarowa` ( `IdKartoteki` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Id towaru', `Kod` varchar(13) NOT NULL COMMENT 'Kod towaru', `CenaDetal` float(10,2) NOT NULL COMMENT 'Cena detaliczna towaru', `Nazwa` varchar(40) NOT NULL COMMENT 'Nazwa towaru', `Import` varchar(1) NOT NULL COMMENT 'Towar z importu', `Grupa` int(6) NOT NULL COMMENT 'Grupa towarowa', PRIMARY KEY (`IdKartoteki`), KEY `Kod` (`Kod`), KEY `Grupa` (`Grupa`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; Struktura tabeli dla `stoiska` -- CREATE TABLE IF NOT EXISTS `stoiska` ( `IdStoiska` int(2) NOT NULL AUTO_INCREMENT COMMENT 'Id stoiska', `Stoisko` varchar(2) NOT NULL COMMENT 'Identyfikator stoiska', `NazwaStoiska` varchar(30) NOT NULL COMMENT 'Nazwa stoiska', PRIMARY KEY (`IdStoiska`), KEY `Stoisko` (`Stoisko`), KEY `NazwaStoiska` (`NazwaStoiska`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

46 Struktura tabeli dla `transakcjeinfododatkowe` -- CREATE TABLE IF NOT EXISTS `transakcjeinfododatkowe` ( `IdTransakcji` int(11) NOT NULL COMMENT 'Identyfikator transakcji', `Kod` varchar(13) NOT NULL COMMENT 'Kod towaru', KEY `Kod` (`Kod`), KEY `IdTransakcji` (`IdTransakcji`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; Struktura tabeli dla `transakcjekasowe` -- CREATE TABLE IF NOT EXISTS `transakcjekasowe` ( `IdTransakcji` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Identyfikator transakcji', `IdParagonu` int(10) NOT NULL COMMENT 'Id transakcji', `Data` date NOT NULL, `Godzina` time NOT NULL, `NrKasy` int(2) NOT NULL COMMENT 'Numer kasy', `WartPar` float(8,2) NOT NULL COMMENT 'Wart. paragonu', `Przedzial` int(4) NOT NULL COMMENT 'Przedział paragonu', `IloscTow` int(4) NOT NULL COMMENT 'Ilość towarów na paragonie', `KartaLojal` varchar(13) NOT NULL COMMENT 'Numer karta lokal.', PRIMARY KEY (`IdTransakcji`), KEY `KartaLojal` (`KartaLojal`), KEY `WartPar` (`WartPar`), KEY `Przedzial` (`Przedzial`), KEY `IloscTow` (`IloscTow`), KEY `IdParagonu` (`IdParagonu`), KEY `NrKasy` (`NrKasy`), KEY `Data` (`Data`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; Schemat 3.3. przedstawia tabele bazy Alma wraz z relacjami oraz kluczami podstawowymi i obcymi. Schemat 3.3. Schemat bazy Alma 46

47 Etap przygotowania i obsługi programu DM Cafe Etap implementacji skryptów należy rozpocząć od przeanalizowania struktury plików z danymi eksportowanymi do bazy danych. Plik z kartoteką towarową jest plikiem tekstowym o budowie kolumnowej i kodowaniu DOS-852. Każdy kod towaru jest opisany w czterech wierszach. Na rysunku 3.1. przedstawiony został wycinek z pliku tekstowego z kartoteką towarową sklepu. Rysunek 3.1. Plik tekstowy z kartoteką towarową sklepu Źródło: opracowanie własne. W pierwszym wierszu znajdują się następujące informacje o kodzie: kod towaru (etykieta Kod towaru) znaki od 1 do 13 zakodowany w standardzie EAN-13, EAN-8 lub GTIN-13; cena detaliczna (etykieta Cena det.) znaki od 15 do 23 - znak dziesiętny to `.`, znak tysięcy `,`; cena jednostkowa (etykieta Cena j.) znaki od 24 do 33 - znak dziesiętny to `.`, znak tysięcy `,`; przelicznik (etykieta Przelicznik) znaki od 34 do 43 - część całości jednostki z kolumny 5; jednostka (etykieta Jm) znaki od 46 do 49 - jednostka miary; stawka podatku VAT (etykieta VAT) znaki od 50 do 55; koszt gospodarowania odpadami (etykieta KGO) znaki od 56 do 64; 47

48 48 numer PKWiU (etykieta PKWiU) znaki od 65 do 79 identyfikator Polskiej Klasyfikacji Wyrobów i Usług; stoisko (etykieta Stoisko) znaki od 80 do 82 numer stoiska; grupa towarowa (etykieta Grupa) znaki od 89 do 95 numer grupy towarowej. Drugi wiersz rozpoczyna się od nazwy towaru, następnie numer działu oddzielony od nazwy towaru `/` oraz nazwa działu rozdzielona `/` od działu towaru. W trzecim wierszu znajdują się atrybuty kodu, tj.: IMPORTOWANY oznakowane towary z importu; POZA ASORTYMENTEM towary zablokowane do przyjęcia; ZABLOKOWANY W KASIE oznakowane towary zablokowane w kasie; CENTRALNY kod pobierany z Centralnej Kartoteki Towarowej; LOKALNY kod utworzony dla celów sklepu. Drugim rodzajem plików są pliki z danymi transakcyjnymi (paragonami) z serwera kasowego. Pliki nazywane są wg następującego formatu: PAR_data.txt, gdzie data zapisana jest jako rrrr-mm-dd (dd dzień, mm miesiąc, rrrr rok). Na rysunku 3.2. przedstawiony został wycinek jednego z plików. Rysunek 3.2. Przykładowy plik tekstowy z transakcjami Źródło: opracowanie własne. 48

49 49 Każdy paragon opisany w pliku posiada następującą strukturę: początek paragonu identyfikowany przez znacznik [PARAGON]; informacje o transakcji opisany przez znacznik TRN; pozycje paragonu identyfikowane przez znaczniki POZ; zakończenie paragonu identyfikowane przez znacznik PLT. W wierszach ze znacznikami TRN, POZ oraz PLT poszczególne dane rozdzielane są znakiem ` `. Schemat 3.4. przedstawia informacje o transakcji wg kolejności występującej w linii. 2. Nr kasy 3. Identyfikator transakcji 4. Numer karty lojalnościowej 1. Nr kasjera PARAGON 5. Data i godzina Schemat 3.4. Informacje o transakcji Schemat 3.5. przedstawia informacje o pozycjach paragonu wg kolejności występującej w linii. 1. Kod towaru 2. Ilośc pomnożona przez Cena towaru pomnożona przez 100 PARAGON Schemat 3.5. Informacje o pozycji paragonu 49

50 50 Paragon kończy się znacznikiem PLT i następującymi informacjami: formą oraz wartością płatności. Oprócz kartoteki towarowej oraz transakcjami kasowymi, do badań potrzebne są jeszcze informacje o grupach towarowych, działach i stoiskach. Dane te pobierane zostaną z plików tekstowych, które zostały przedstawione na rysunkach 3.3., 3.4. oraz 3.5. Rysunek 3.3. Plik tekstowy z grupami towarowymi Źródło: opracowanie własne. Plik tekstowy z grupami towarowymi posiada budowę kolumnową, którego odpowiednia ilość znaków w danej linii odpowiada za daną komórkę w kolumnie. Pierwszą kolumną jest grupa towarowa, która rozpoczyna się od 1 znaku i zawiera 6 znaków. Następnie znajduje się dział towaru (znaki od 9 do 12) oraz stoisko (znaki od 14 do 16). Kolejną kolumną jest numer magazynu, ilość towarów w grupie (znaki od 22 do 29) i nazwa grupy towarowej (znaki od 31 do końca linii). Plik z działami towarowymi zawiera jedynie dwie informacje, tzn. identyfikator działu oraz nazwę działu. Identyfikator w pliku znajduje się w pierwszych 3 znakach każdej linii, natomiast nazwa rozpoczyna się od 5 znaku w linii. W pliku ze stoiskami znajdują się również tylko dwa rodzaje informacji: identyfikator stoiska oraz jego nazwa. Identyfikator stoiska są to dwa pierwsze znaki każdej linii, natomiast nazwa rozpoczyna się od 4 znaku w linii. 50

51 51 Rysunek 3.4. Plik tekstowy z działami Źródło: opracowanie własne. Rysunek 3.5. Plik tekstowy z stoiskami Źródło: opracowanie własne. Analiza struktury plików potrzebna była, aby możliwe było przygotowanie odpowiednich algorytmów do importu informacji do bazy danych Alma. Najważniejsze funkcje autorskiego programu do importu/eksportu danych zostaną przedstawione w Dodatku B do niniejszej pracy, natomiast jego obsługa opisana będzie w kolejnych akapitach tego podrozdziału. DM Cafe jest niewielkim programem przygotowanych na potrzeby eksploracji danych w Delikatesach Alma. Jego zadaniem jest zapis danych z plików systemu magazynowego i kasowego sklepu, którego dane są wykorzystywane w badaniu, odczyt z bazy danych na podstawie odpowiedniego zapytania SQL i zapis do plików CSV, które następnie są przetwarzane w programie Rapid Miner., oraz przetwarzanie wyników z plików tekstowych programu firmy Rapid I. Przed przystąpieniem do badań, należy najpierw utworzyć bazę danych, której struktura oraz kod SQL został przedstawiony w podrozdziale 3.2. Następnie w programie DM Cafe otwieramy ustawienia programu i wypełniamy informacje dotyczące połączenia z serwerem MySQL tj. nazwa użytkownika, hasło, nazwa bazy danych oraz adres IP 51

52 52 serwera (domyślnie ustawionym adresem jest adres lokalny komputera). Rysunek 3.6. przedstawia okno z ustawieniami programu. Rysunek 3.6. Okno ustawienia programu DM Cafe Źródło: opracowanie własne. Po zapisaniu danych można przystąpić do importu danych z plików tekstowych. W tym celu należy wybrać zakładkę IMPORT DANYCH i po kolei zaimportować poszczególne dane do bazy. W przypadku danych transakcyjnych można zaznaczyć większą ilość plików, które w odpowiedniej kolejności zostaną zaimportowane do bazy danych. Rysunek 3.7. przedstawia okno programu z wybraną zakładką IMPORT DANYCH. Rysunek 3.7. Zakładka IMPORT DANYCH Źródło: opracowanie własne. Kolejnym krokiem jest pobranie danych potrzebnych do przeprowadzenia analizy. W tym celu należy ustawić się na zakładce ANALIZA, następnie w polu tekstowym wpisać zapytanie w języku SQL, wybrać poziom hierarchii towaru i wcisnąć przycisk 52

53 53 POBIERZ DANE. Rysunek 3.8. przedstawia zakładkę ANALIZA wraz z zapytaniem i wybranym poziomem hierarchii towaru. Rysunek 3.8. Zakładka IMPORT DANYCH Źródło: opracowanie własne. Po naciśnięciu przycisku POBIERZ DANE wyświetli się okno, w którym należy wybrać miejsce zapisu pliku oraz podać jego nazwę. Rysunek 3.9. przedstawia okno zapisu do pliku CSV z bazy danych. Rysunek 3.9. Okno zapisu do pliku Źródło: opracowanie własne. 53

54 Modelowanie wzorców zachowań ń klientów Delikatesów Alma przy wykorzystaniu reguł asocjacyjnych 54 Po zatwierdzenie program pobierze dane z bazy danych i zapisze w formacie wymaganym przez projekt programu Rapid Miner. Następnie plik CSV należy przeanalizować ć pod kątem reguł asocjacyjnych. Zapisany plik tekstowy z programu Rapid Miner w celu łatwiejszej dalszej analizy można przerobić w DM Cafe. W tym celu należy wybrać ć zakładkę ANALIZA i kliknąć w przycisk PRZETWORZ. Otworzy się okno z wyborem plików do przetworzenia. Możliwa jest również ż analiza bezpośrednio w oprogramowaniu ogramowaniu firmy Rapid I Etap przygotowania oprogramowania Rapid Miner do eksploracji danych W programie Rapid Miner jakakolwiek analiza rozpoczyna się od utworzenia lub wczytania przygotowanego wcześniej odpowiedniego procesu. Proces składa się z operatorów (tzw. klocków), które są dostępne w oknie Operators. Buduje się go po przez przeciągnięcie ą danego operatora na obszar procesu i połączenie z innymi modułami za pomocą ą odpowiednich gniazd. Większość operatorów posiada indywidualne parametry, dzięki którym można kontrolować ich zachowanie w procesie. Po uruchomieniu programu użytkownik ujrzy okno jak na rysunku Na samej górze znajduje się ę menu rozwijalne, w którym znajdziemy opcje dotyczące plików, edycji, procesów, narzędzia, widok oraz pomoc do programu. Poniżej tego menu ulokowany został interfejs z ikonami szybkiego dostępu do najczęściej wykonywanych czynności. Można tutaj znaleźć następujące ikony: nowy plik ( ) tworzy nowy projekt; otwórz plik ( ) otwiera zapisane projekty w prywatny repozytorium lub przykłady dołączone do programu; zapisz plik ( ) zapisuje aktualnie otwarty projekt; zapisz jako nowy plik ( nową ą nazwą; ) pozwala na zapis aktualnie otwartego projektu pod drukuj ( ) drukuje projekt na dowolnie wybranej drukarce; cofnij ( ); powtórz ( ); uruchom proces ( ) rozpoczyna działanie procesu; pauza ( ) wstrzymuje chwilowo aktualnie działający proces; stop ( ) zatrzymuje całkowicie działający proces; widok okna projektu ( ) przełącza na widok projektu; 54

55 Modelowanie wzorców zachowań ń klientów Delikatesów Alma przy wykorzystaniu reguł asocjacyjnych 55 widok okna wyników ( widok okna startowego ( ) przełącza na widok rezultatów procesu; ) przełącza na okno startowe. Rysunek Okno programu Rapid Miner W centralnej części okna startowego ulokowane zostały ikony zarządzania projektem, tzn. nowy projekt ( ), otwórz ostatni projekt ( ), otwórz projekt ( ), otwórz szablon ( ) oraz dostęp do szkoleń online ( ). Po wybraniu nowego projektu otworzy się ę okno jak na rysunku 3.11., w którym wybieramy repozytorium, gdzie chcemy zapisać ć projekt oraz nazwę projektu. Rysunek Okno nowego projektu wybór repozytorium i nazwa pliku 55

56 Modelowanie wzorców zachowań ń klientów Delikatesów Alma przy wykorzystaniu reguł asocjacyjnych 56 Po uzupełnieniu odpowiednich danych, zatwierdzamy wybór, po czym zostanie utworzony czysty projekt. Okno projektu podzielone jest najczęściej na kilka części: proces, repozytoria, operatory i parametry. Każdą z tych części można przesuwać i ustawiać wg upodobania, dodatkowe okienka można aktywować poprzez menu View (Widok) -> Show view (Pokaż). Okno nowego projektu pokazuje rysunek 3.6. Gdy mamy utworzony nowy projekt, z prawej strony w okienku parametrów dobrze jest ustawić kilka opcji, m.in. poziom informacji rejestru zdarzeń (logverbosity) na wszystkie (all), plik rejestru zdarzeń oraz kodowanie znaków odczytywanych i zapisywanych danych z/do plików (encoding). Okno parametrów pokazane zostało na rysunku Rysunek Parametry projektu Rysunek Okno nowego projektu 56

57 Modelowanie wzorców zachowań ń klientów Delikatesów Alma przy wykorzystaniu reguł asocjacyjnych 57 Po ustawieniu parametrów projektu można przystąpić to tworzenia procesu poszukiwania reguł. Proces rozpocznie się wstawienia modułu odczytu danych z pliku CSV. Moduły bardzo łatwo się wyszukuje, wystarczy wpisać ć w okienku filtra operatorów początkową ą (lub całą) nazwę danego klocka, aby wyświetliły wietliły się tylko te operatory, które odpowiadają ą treści podanej przez użytkownika. Widok okienka operatorów z wyszukanym modułem do odczytu pliku CSV przedstawia rysunek Rysunek Okienko operatorów wyszukiwanie operatora Read CSV Aby dodać ć dany operator do procesu, należy przeciągnąć ą ąć go na okno procesu. Po tej czynności ci okno procesu wygląda tak jak na rysunku Rysunek Okno procesu po dodaniu operatora Read CSV 57

58 Modelowanie wzorców zachowań ń klientów Delikatesów Alma przy wykorzystaniu reguł asocjacyjnych 58 Następnie potrzebne jest ustawienie kilku parametrów operatora: nazwę pliku (file name), kodowanie znaków (encoding), znaki komentarza (characters comment), znak cytatów (quotes charakter), separator oddzielający kolumny od siebie (kolumn separators), znak dziesiętny (decimal charakter) ) i format daty (date format) oraz zaznaczenie opcji: użycia pierwszego wiersza z nazwami atrybutów (use first row as attribute names), użycia cytatów (use quotes) i analiza liczb (parse number). Parametry operatora Read CSV należy ustawić tak samo, jak na rysunku oraz Rysunek Parametry operatora Read CSV Rysunek Parametry operatora Read CSV c.d Kolejnym operatorem jest Set Role, który należy użyć ż ć dwukrotnie. Dzięki niemu można przypisać ć daną kolumnę do zdefiniowanych ról w programie. W procesie tworzonym do wyszukiwania reguł asocjacyjnych przypisywane będą kolumny id i label do identycznie nazwanych ról. Oczywiście cie nazwy kolumn nie muszą być identyczne, jednak z pewnością taka identyfikacja jest łatwiejsza w przedstawieniu. Rysunek

59 Modelowanie wzorców zachowań ń klientów Delikatesów Alma przy wykorzystaniu reguł asocjacyjnych 59 i 3.19 przedstawiają widok procesu po dodaniu kolejnych dwóch operatorów Set Role wraz z odpowiednio ustawionymi parametrami. Rysunek Widok procesu i parametrów operatora Set Role Rysunek Widok procesu i parametrów operatora Set Role(2) Następnym operatorem jest Split,, którego zadaniem jest rozdzielenie kolumn wg znaku podanego w parametrach. Możliwe jest wybranie, które z kolumn mają zostać rozdzielone (parametr attribute filter type), wzorzec podziału (split pattern) oraz tryb podziału. Oprócz tego występują jeszcze dwie opcje: zaznaczenie odwrotne (invert selection) ) oraz dołącz specjalne atrybuty (include special attributes). Rysunek prezentuje proces po dodaniu operatora Split oraz jego parametry. 59

60 Modelowanie wzorców zachowań ń klientów Delikatesów Alma przy wykorzystaniu reguł asocjacyjnych 60 Rysunek Widok procesu i parametrów operatora Split Kolejnym krokiem procesu jest zamiana danych nominalnych na dwumianowe (zero- jedynkowe). Odbywa się to za pomocą operatora Nominal to Binominal. Operator ten posiada następujące ę parametry: utwórz widok (create view), filtrowanie atrybutów wg typu (attribute filter type), zaznaczenie odwrotne, dołącz specjalne atrybuty, transformacja dwumianowa (transform binominal) oraz użyć ż ć podkreślenia w nazwie (use underscore in name). Proces oraz parametry operatora Nominal to Binominal przedstawia rysunek Rysunek Widok procesu i parametrów operatora Nominal to Binominal Po zamianie danych przyszedł czas na wstawienie operatora generującego zbiory częste FP-Growth.. Jak sama nazwa wskazuje, korzysta on z algorytmu FP-Growth. Operator ten posiada następujące parametry: pozytywne wartości (positive value), minimalne wsparcie (min support), maksymalną ilość pozycji (max items), wzorzec, jaki mają zawierać ć pozycje (must contain) oraz opcję znajdującą minimalną ilość wzorców. 60

61 Modelowanie wzorców zachowań ń klientów Delikatesów Alma przy wykorzystaniu reguł asocjacyjnych 61 W procesie poszukiwania reguł asocjacyjnych parametr minimalne wsparcie będzie w ciągłym użyciu, modyfikowany w zależności od badanego zbioru. Rysunek przedstawia proces z dodanym operatorem wraz z jego parametrami. Rysunek Widok procesu i parametrów operatora FP-Growth Następnie trzeba dodać moduł rozdzielający równocześnie te same wyniki na kilka źródeł. Służy do tego operator Multiply. Łączymy wyjście zbiorów częstych FP-Growth z tym operatorem, a Multiply z Create Association Rules i wyjściem procesu (res). Przedstawia to rysunek Rysunek Widok procesu i odpowiednich połączeń po dodaniu Multiply i Create Association Rules Operator Create Association Rules odpowiedzialny jest za utworzenie reguł asocjacyjnych ze zbiorów częstych otrzymanych z modułu FP-Growth. Parametry, które można ustawić ć to: kryterium wyboru reguł (criterion), minimalna ufność (min confidence), moc parametru Theta (gain theta), wartość parametru k w funkcji Laplace. Dwa ostatnie parametry w tym procesie badawczym pozostawiamy domyślne. Kryterium wyboru reguł ustawiamy na ufność (confidence) oraz dopieramy wartość minimalnej ufności w zależności od badanego zbioru. Parametry operatora przedstawione zostały na rysunku

62 Modelowanie wzorców zachowań ń klientów Delikatesów Alma przy wykorzystaniu reguł asocjacyjnych 62 Rysunek Parametry operatora Create Association Rules Na końcu procesu należy dodać jeszcze operator podziału wyjścia Multiply oraz zapis do pliku Write as Text. Do operatora Write as Text podpinamy wyjście z Multiply (wyjście zbiorów częstych) i Multiply(2) (wyjście reguł asocjacyjnych). Parametry, które należy w nim ustawić to plik wynikowy (result file) ) oraz kodowanie znaków (encoding). Dodatkowo moduł Multiply(2) łączymy z wyjściem procesu (res). Na rysunku pokazane zostały parametry operatora Write as Text oraz cały proces odkrywania reguł asocjacyjnych. Rysunek Widok całego procesu i parametry operatora Write as Text Gdy został utworzony cały proces, pozostaje jedynie sprawdzić, czy dobrze działa. Dane przykładowego pliku CSV z transakcjami przedstawione zostały na rysunku

63 Modelowanie wzorców zachowań ń klientów Delikatesów Alma przy wykorzystaniu reguł asocjacyjnych 63 Rysunek Plik CSV z danymi transakcyjnymi Dane z pliku pobierane są automatycznie przez operator Read CSV. Po przetworzeniu i wyszukaniu pozycji częstych, tworzone są reguły asocjacyjne. Po zakończeniu procesu Rapid Miner przełącza się automatycznie na widok rezultatów. Wynikiem są oczywiście reguły asocjacyjne, ale również otrzymujemy wszystkie znalezione pozycje częste. Rysunek przedstawia widok znalezionych reguł asocjacyjnych, natomiast wszystkie możliwe pozycje częste. Rysunek Widok znalezionych reguł asocjacyjnych 63

64 Modelowanie wzorców zachowań ń klientów Delikatesów Alma przy wykorzystaniu reguł asocjacyjnych 64 Rysunek Widok odszukanych pozycji częstych Listę można sortować wg kolumn, klikając na nagłówek danej kolumny. Oprócz tego możliwe jest wyświetlanie w zależności od kryterium (min criterion). Dostępny jest również widok reguł w postaci grafu (opcja Graph View), jak również w postaci tekstu, identycznego jak ten zapisywany do pliku przez operator Write as Text. Rysunki oraz przedstawiają reguły asocjacyjne w postaci tekstowej i grafu. Rysunek Widok znalezionych reguł asocjacyjnych w postaci grafu Rysunek Widok znalezionych reguł asocjacyjnych w postaci tesktu W badaniach przeprowadzonych w Delikatesach Alma te widoki będą w mniejszym stopniu wykorzystywane, ponieważ do interpretacji i importu reguł posłuży skrypt, który będzie odpowiednio przetwarzał dane zapisane przez moduł procesu. Będzie to znacznie szybsze i wygodniejsze rozwiązanie, ponieważ badania przeprowadzane będą na ponad 64

65 65 50 zbiorach danych i przepisywanie poszczególnych reguł asocjacyjnych byłoby bardzo żmudne i bezsensowne. Plik z zapisanymi regułami asocjacyjnymi oraz pozycjami częstymi został przedstawiony na rysunku Rysunek Plik wynikowy z pozycjami częstymi i regułami asocjacyjnymi Plik podzielony jest na dwie części. W pierwszej zapisywane są wszystkie odnalezione reguły asocjacyjne spełniające warunek progowej ufności. Sekcja ta rozpoczyna się o daty i godziny oraz wyrażenia Association Rules (Reguły asocjacyjne). Następnie zapisywane są reguły asocjacyjne. Druga sekcja zaczyna się w drugim wierszu po wszystkich regułach od daty, godziny oraz wyrażenia Frequent Items Sets (zbiory częste) wraz z ilością zbiorów. Rozdział trzeci miał na celu przygotowanie oprogramowania do badań, których rezultatem będą odnalezione reguły asocjacyjne, oraz opisanie poszczególnych opcji programów wykorzystywanych w projekcie. W pierwszej części rozdziału zaprezentowana została baza danych wykorzystywana do wymiany informacji pomiędzy systemami sklepowymi a oprogramowaniem Rapid Miner. Druga część rozdziału przeznaczona została na opis specyfikacji plików zawierających takie dane jak kartotekę towarową sklepu, dane transakcyjne, informacje o grupach towarowych, działach, czy stoiskach. Oprócz tego opisany został autorski program DM Cafe, za pomocą którego informacje są wymieniane z bazą danych oraz przetwarzane są wyniki z oprogramowania firmy Rapid I. W trzeciej części opisany został program Rapid Miner, jego główne opcje oraz w jaki sposób stworzyć proces, który będzie analizował dane transakcyjne i w wyniku zapisywał zbiory kandydujące oraz odnalezione reguły asocjacyjne. Mając tak przygotowane oprogramowanie można przystąpić do właściwej analizy, a jej wyniki zostały zaprezentowane w następnym rozdziale. 65

INDUKOWANE REGUŁY DECYZYJNE ALORYTM APRIORI JAROSŁAW FIBICH

INDUKOWANE REGUŁY DECYZYJNE ALORYTM APRIORI JAROSŁAW FIBICH INDUKOWANE REGUŁY DECYZYJNE ALORYTM APRIORI JAROSŁAW FIBICH 1. Czym jest eksploracja danych Eksploracja danych definiowana jest jako zbiór technik odkrywania nietrywialnych zależności i schematów w dużych

Bardziej szczegółowo

Odkrywanie asocjacji

Odkrywanie asocjacji Odkrywanie asocjacji Wprowadzenie Sformułowanie problemu Typy reguł asocjacyjnych Odkrywanie asocjacji wykład 1 Wykład jest poświęcony wprowadzeniu i zaznajomieniu się z problemem odkrywania reguł asocjacyjnych.

Bardziej szczegółowo

Ewelina Dziura Krzysztof Maryański

Ewelina Dziura Krzysztof Maryański Ewelina Dziura Krzysztof Maryański 1. Wstęp - eksploracja danych 2. Proces Eksploracji danych 3. Reguły asocjacyjne budowa, zastosowanie, pozyskiwanie 4. Algorytm Apriori i jego modyfikacje 5. Przykład

Bardziej szczegółowo

Opodatkowanie dochodów z pracy najemnej wykonywanej za granicą

Opodatkowanie dochodów z pracy najemnej wykonywanej za granicą Opodatkowanie dochodów z pracy najemnej wykonywanej za granicą Uzyskując dochody z tytułu pracy najemnej wykonywanej za granicą, w większości przypadków należy pamiętać o rozliczeniu się z nich także w

Bardziej szczegółowo

Znakowanie produktów o zmiennej ilości przy pomocy standardów GS1. Poznań, 25.06.2015

Znakowanie produktów o zmiennej ilości przy pomocy standardów GS1. Poznań, 25.06.2015 Znakowanie produktów o zmiennej ilości przy pomocy standardów GS1 Poznań, 25.06.2015 Globalny Numer Jednostki Handlowej GTIN identyfikuje każdą jednostkę lub usługę wobec, której zachodzi potrzeba wyceniania,

Bardziej szczegółowo

Opis danych kartograficznych dostępnych w ofercie Emapa sp. z o.o.

Opis danych kartograficznych dostępnych w ofercie Emapa sp. z o.o. Opis danych kartograficznych dostępnych w ofercie Emapa sp. z o.o. - stan na grudzień 2013 1. MapSet Polska:... 3 2. MultiNet Europa:... 5 3. MapSet Europa:... 8 5. MapSet Azja:... 10 2 1. MapSet Polska

Bardziej szczegółowo

ilości przy pomocy standardów GS1

ilości przy pomocy standardów GS1 Instytut Logistyki i Magazynowania Znakowanie produktów o zmiennej ilości przy pomocy standardów GS1 Poznań, 26.10.2015 Agenda Wstęp Zasady znakowania produktów detalicznych o zmiennej ilości Trochę dziś,

Bardziej szczegółowo

Cennik połączeń telefonicznych VOIP

Cennik połączeń telefonicznych VOIP SL-NET s.c. ul. Wiosenna 1c/1 35-303 Rzeszów Tel. 665-706-108 Tel. 017 250 20 11 email: biuro@sl-net.pl strona. www.sl-net.pl Cennik połączeń telefonicznych VOIP Usługi Netto Cena za usługę Brutto Połączenia

Bardziej szczegółowo

Algorytmy odkrywania binarnych reguł asocjacyjnych

Algorytmy odkrywania binarnych reguł asocjacyjnych Algorytmy odkrywania binarnych reguł asocjacyjnych A-priori FP-Growth Odkrywanie asocjacji wykład 2 Celem naszego wykładu jest zapoznanie się z dwoma podstawowymi algorytmami odkrywania binarnych reguł

Bardziej szczegółowo

Diety należą się osobie odbywającej podróż służbową na terenie kraju na pokrycie zwiększonych kosztów wyżywienia oraz zwrot wydatków z tytułu m.in.

Diety należą się osobie odbywającej podróż służbową na terenie kraju na pokrycie zwiększonych kosztów wyżywienia oraz zwrot wydatków z tytułu m.in. DELEGACJE KRAJOWE Diety należą się osobie odbywającej podróż służbową na terenie kraju na pokrycie zwiększonych kosztów wyżywienia oraz zwrot wydatków z tytułu m.in.: noclegów, przejazdu do miejsca delegowania

Bardziej szczegółowo

myavon - cennik skrócony myavon - cennik szczegółowy

myavon - cennik skrócony myavon - cennik szczegółowy myavon - cennik skrócony w sieci myavon poza siecią 1 minuta 0.40 zł 0.69 zł SMS 0.20 zł 0.20 zł MMS 0.45 zł 0.45 zł myavon - cennik szczegółowy myavon myavon 1 minuta w naliczaniu 1-sekunwym myavon innych

Bardziej szczegółowo

CENY UWZGLĘDNIAJĄ PODATEK VAT W WYSOKOŚCI

CENY UWZGLĘDNIAJĄ PODATEK VAT W WYSOKOŚCI 1. Usługi krajowe połączenia standardowe, SMS, MMS, Internet USŁUGI Połączenia krajowe (cena za minutę połączenia) 0,29 zł 0,24 zł SMS 0,12 zł 0,10 zł MMS 0,50 zł 0,41zł Transmisja danych (cena za 100

Bardziej szczegółowo

Opis danych kartograficznych dostępnych w ofercie Emapa sp. z o.o.

Opis danych kartograficznych dostępnych w ofercie Emapa sp. z o.o. Opis danych kartograficznych dostępnych w ofercie Emapa sp. z o.o. - stan na marzec 2012 1. MapSet Polska:... 3 2. MultiNet Europa:... 5 3. MapSet Europa:... 8 5. MapSet Azja:... 10 2 1. MapSet Polska

Bardziej szczegółowo

Instytut Logistyki i Magazynowania Znakowanie produktów o zmiennej ilości przy pomocy standardów GS1. Poznań, 14.01.2016

Instytut Logistyki i Magazynowania Znakowanie produktów o zmiennej ilości przy pomocy standardów GS1. Poznań, 14.01.2016 Instytut Logistyki i Magazynowania Znakowanie produktów o zmiennej ilości przy pomocy standardów GS1 Poznań, 14.01.2016 Agenda Wstęp Zasady znakowania produktów detalicznych o zmiennej ilości Trochę dziś,

Bardziej szczegółowo

OFERTA RAPORTU. Szkolnictwo wyższe analiza porównawcza Polski i wybranych krajów świata. Kraków 2012

OFERTA RAPORTU. Szkolnictwo wyższe analiza porównawcza Polski i wybranych krajów świata. Kraków 2012 Oferta raportu: Szkolnictwo wyższe w Polsce i wybranych krajach analiza porównawcza OFERTA RAPORTU Szkolnictwo wyższe analiza porównawcza Polski i wybranych krajów świata Kraków 2012 1 Oferta raportu:

Bardziej szczegółowo

CDN XL: Wdrożenie ERP

CDN XL: Wdrożenie ERP CDN XL: Wdrożenie ERP Przedmiot: Moduł: 1/2 Opracował: mgr inż. Paweł Wojakowski Instytut Technologii Maszyn i Automatyzacji Produkcji Zakład Projektowania Procesów Wytwarzania Pokój: 3/7 B, bud. 6B Tel.:

Bardziej szczegółowo

internet Wartość przyznanej ulgi brutto [zł]

internet Wartość przyznanej ulgi brutto [zł] Cennik Usług telekomunikacyjnych STAJLNET internet Tabela Internet - opłaty instalacyjne i aktywacyjne (jednorazowe)* Umowa na -cy Umowa na 4 -cy Umowa na 6 cy brutto brutto brutto Instalacja i aktywacja

Bardziej szczegółowo

CENNIK PREPAID. USŁUGI cena z VAT cena bez VAT. SMS 0,12 zł 0,10 zł. MMS 0,50 zł 0,41zł

CENNIK PREPAID. USŁUGI cena z VAT cena bez VAT. SMS 0,12 zł 0,10 zł. MMS 0,50 zł 0,41zł 1. Usługi krajowe połączenia standardowe, SMS, MMS, Internet USŁUGI Połączenia krajowe 0,29 zł 0,24 zł SMS 0,12 zł 0,10 zł MMS 0,50 zł 0,41zł 0,10 zł 0,08 zł Jedna stawka za połączenia do wszystkich sieci

Bardziej szczegółowo

CENNIK USŁUGI TELEFONICZNEJ MULTIMEDIA POLSKA S.A. - WYCIĄG. CZĘŚĆ I - opłaty dla linii analogowych

CENNIK USŁUGI TELEFONICZNEJ MULTIMEDIA POLSKA S.A. - WYCIĄG. CZĘŚĆ I - opłaty dla linii analogowych CENNIK USŁUGI TELEFONICZNEJ MULTIMEDIA POLSKA S.A. - WYCIĄG CZĘŚĆ I - opłaty dla linii analogowych I. Opłata za uzyskanie dostępu do sieci telekomunikacyjnej 4 Aktywacja linii telefonicznej dla posiadaczy

Bardziej szczegółowo

Usługa bezprzewodowego dostępu do Internetu InterNeo mobile

Usługa bezprzewodowego dostępu do Internetu InterNeo mobile Usługa bezprzewodowego dostępu do Internetu InterNeo mobile Opłata aktywacyjna rodzaj usługi InterNeo mobile data 250,00 55,00 305,00 InterNeo mobile 200 250,00 55,00 305,00 InterNeo mobile 500 250,00

Bardziej szczegółowo

Ćwiczenie 5. Metody eksploracji danych

Ćwiczenie 5. Metody eksploracji danych Ćwiczenie 5. Metody eksploracji danych Reguły asocjacyjne (association rules) Badaniem atrybutów lub cech, które są powiązane ze sobą, zajmuje się analiza podobieństw (ang. affinity analysis). Metody analizy

Bardziej szczegółowo

MIEJSCE POLSKIEGO PRZEMYSŁU SPOŻYWCZEGO W UNII EUROPEJSKIEJ

MIEJSCE POLSKIEGO PRZEMYSŁU SPOŻYWCZEGO W UNII EUROPEJSKIEJ MIEJSCE POLSKIEGO PRZEMYSŁU SPOŻYWCZEGO W UNII EUROPEJSKIEJ mgr Małgorzata Bułkowska mgr Mirosława Tereszczuk dr inż. Robert Mroczek Konferencja: Przemysł spożywczy otoczenie rynkowe, inwestycje, ekspansja

Bardziej szczegółowo

W jakim stopniu emerytura zastąpi pensję?

W jakim stopniu emerytura zastąpi pensję? 13.06.2014 Informacja prasowa portalu Pytania i dodatkowe informacje: Artur Szeremeta Specjalista ds. współpracy z mediami tel. 509 509 536 szeremeta@sedlak.pl W jakim stopniu emerytura zastąpi pensję?

Bardziej szczegółowo

cena brutto Opłata za aktywację usługi 250,00 zł 57,50 zł 307,50 zł

cena brutto Opłata za aktywację usługi 250,00 zł 57,50 zł 307,50 zł CENNIK POSTPAID W SIECI LARK MOBILE Obowiązuje od 01.07.2013 r. Informacje o usłudze 1. Usługa Lark Mobile to usługa bezprzewodowego dostępu do sieci Internet. 2. Usługa świadczona jest przez Operatora

Bardziej szczegółowo

Truphone World. Plany taryfowe Truphone World

Truphone World. Plany taryfowe Truphone World Plany taryfowe Nowa definicja telefonii komórkowej Nasza opatentowana globalna sieć zapewnia wyjątkowy komfort korzystania z usług mobilnych na całym świecie. Oznacza to większą prędkość przesyłania danych,

Bardziej szczegółowo

CENNIK STANDARDOWY USŁUGI MOBILNEGO DOSTĘPU DO INTERNETU FreshNet Mobile

CENNIK STANDARDOWY USŁUGI MOBILNEGO DOSTĘPU DO INTERNETU FreshNet Mobile CENNIK STANDARDOWY USŁUGI MOBILNEGO DOSTĘPU DO INTERNETU FreshNet Mobile Obowiązuje od 01.07.2014 r. Informacje o usłudze 1. Usługa FreshNet Mobile to usługa bezprzewodowego dostępu do sieci Internet.

Bardziej szczegółowo

Ubezpieczenie Dziura w drodze

Ubezpieczenie Dziura w drodze Przykład szkoleniowy: Ubezpieczenie Dziura w drodze Cel algorytmu: Spółka ABC zajmuje się sprzedażą ubezpieczeń komunikacyjnych. Właśnie otrzymała nowy produkt o nazwie Dziura w drodze (zwrot kosztów za

Bardziej szczegółowo

KODY WEWNĘTRZNE GS1. Zasady oznaczania towarów kodami kreskowymi GS1 dla użytku wewnętrznego w handlu. www.gs1pl.org The global language of business

KODY WEWNĘTRZNE GS1. Zasady oznaczania towarów kodami kreskowymi GS1 dla użytku wewnętrznego w handlu. www.gs1pl.org The global language of business Polska KODY WEWNĘTRZNE GS1 Zasady oznaczania towarów kodami kreskowymi GS1 dla użytku wewnętrznego w handlu www.gs1pl.org The global language of business Objaśnienia... 3 Wprowadzenie... 4 Zastosowanie

Bardziej szczegółowo

Cennik Pakietu Internet+Telewizja HD+Telefon stacjonarny dla Klientów indywidualnych podłączonych drogą światłowodową obowiązujący od 01.10.2014 r.

Cennik Pakietu Internet+Telewizja HD+Telefon stacjonarny dla Klientów indywidualnych podłączonych drogą światłowodową obowiązujący od 01.10.2014 r. SL-NET s.c. ul. Wiosenna 1c/1 35-303 Rzeszów Tel. 665-706-108 Tel. 017 250-20-11 email: biuro@sl-net.pl Cennik Pakietu Internet+Telewizja HD+Telefon stacjonarny dla Klientów indywidualnych podłączonych

Bardziej szczegółowo

Krzysztof Kawa. empolis arvato. e mail: krzysztof.kawa@empolis.com

Krzysztof Kawa. empolis arvato. e mail: krzysztof.kawa@empolis.com XI Konferencja PLOUG Kościelisko Październik 2005 Zastosowanie reguł asocjacyjnych, pakietu Oracle Data Mining for Java do analizy koszyka zakupów w aplikacjach e-commerce. Integracja ze środowiskiem Oracle

Bardziej szczegółowo

Ameryka Północna i Środkowa

Ameryka Północna i Środkowa Ameryka Północna i Środkowa Bahamy - - Barbados - - Bermudy - - Dominikana - Grenada - - Jamajka - Kanada - błonica, tężec, polio - Kostaryka - tężec, polio; dur Kuba - Meksyk - ; Nikaragua - WZW b; Trynidad

Bardziej szczegółowo

Systemy Wspomagania Decyzji

Systemy Wspomagania Decyzji Reguły Asocjacyjne Szkoła Główna Służby Pożarniczej Zakład Informatyki i Łączności March 18, 2014 1 Wprowadzenie 2 Definicja 3 Szukanie reguł asocjacyjnych 4 Przykłady użycia 5 Podsumowanie Problem Lista

Bardziej szczegółowo

Spotkanie informacyjne - wnioskowanie w konkursie w roku 2015 KA1 Mobilność edukacyjna Szkolnictwo wyższe

Spotkanie informacyjne - wnioskowanie w konkursie w roku 2015 KA1 Mobilność edukacyjna Szkolnictwo wyższe Spotkanie informacyjne - wnioskowanie w konkursie w roku 2015 KA1 Mobilność edukacyjna Szkolnictwo wyższe Warszawa, 6 lutego 2015 r. Program spotkania Sesja I Mobilność z krajami programu Przerwa na obiad

Bardziej szczegółowo

Podatki podstawowe. Podstawowe akty prawne

Podatki podstawowe. Podstawowe akty prawne Podatki System podatkowy Podatki podstawowe Głównymi podatkami w Polsce są: Podatek dochodowy od osób prawnych Podatek dochodowy od osób fizycznych Podatek od czynności cywilno-prawnych Podatek VAT Opłata

Bardziej szczegółowo

Inżynieria Wiedzy i Systemy Ekspertowe. Reguły asocjacyjne

Inżynieria Wiedzy i Systemy Ekspertowe. Reguły asocjacyjne Inżynieria Wiedzy i Systemy Ekspertowe Reguły asocjacyjne Dr inż. Michał Bereta p. 144 / 10, Instytut Modelowania Komputerowego mbereta@pk.edu.pl beretam@torus.uck.pk.edu.pl www.michalbereta.pl Reguły

Bardziej szczegółowo

ETYKIETA LOGISTYCZNA GS1

ETYKIETA LOGISTYCZNA GS1 ETYKIETA LOGISTYCZNA GS1 Dobre praktyki Dokument stworzony przez wspólną grupę roboczą członków ECR Polska i ekspertów GS1 Polska, by wspomóc i ułatwić jak najszersze wykorzystanie etykiety logistycznej

Bardziej szczegółowo

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni Akademia Morska w Gdyni Gdynia 2004 1. Podstawowe definicje Baza danych to uporządkowany zbiór danych umożliwiający łatwe przeszukiwanie i aktualizację. System zarządzania bazą danych (DBMS) to oprogramowanie

Bardziej szczegółowo

Usługa bezprzewodowego dostępu do Internetu InterNeo mobile

Usługa bezprzewodowego dostępu do Internetu InterNeo mobile Usługa bezprzewodowego dostępu do Internetu InterNeo mobile Opłata aktywacyjna rodzaj usługi cena netto kwota VAT cena brutto InterNeo mobile 250,00 55,00 305,00 Opłata miesięczna rodzaj usługi cena netto

Bardziej szczegółowo

Połączenia krajowe Cena * Połączenia do wszystkich sieci komórkowych (za wyjątkiem PLAY) Połączenia do sieci PLAY

Połączenia krajowe Cena * Połączenia do wszystkich sieci komórkowych (za wyjątkiem PLAY) Połączenia do sieci PLAY Cennik Usług Telekomunikacyjnych w Usłudze tubiedronka (1) Cennik połączeń krajowych: Połączenia krajowe Cena * Połączenia do wszystkich sieci komórkowych (za wyjątkiem PLAY) Połączenia do sieci PLAY Połączenia

Bardziej szczegółowo

POLSKA INDIE FORUM GOSPODARCZE

POLSKA INDIE FORUM GOSPODARCZE POLSKA INDIE FORUM GOSPODARCZE Krajowa Izba Gospodarcza DZIAŁALNOŚĆ KIG W RELACJACH BIZNESOWYCH INDYJSKO - POLSKICH Warszawa, 27 stycznia 2014 r. ZałoŜona w 1990, następca prawny Polskiej Izby Handlu Zagranicznego

Bardziej szczegółowo

Centrum Promocji i Informacji Turystycznej w Giżycku Analiza narodowościowa oraz rodzaje zapytań turystów w okresie od stycznia do września 212 roku. opracowano: Urszula Ciulewicz na podstawie statystyk

Bardziej szczegółowo

STATYSTYKA PODJйTYCH DECYZJI DLA WIZ C I D W PODZIALE NA CEL WYDANIA WIZY, OBYWATELSTWO APLIKUJ CYCH

STATYSTYKA PODJйTYCH DECYZJI DLA WIZ C I D W PODZIALE NA CEL WYDANIA WIZY, OBYWATELSTWO APLIKUJ CYCH ZaЁ cznik nr 1 do OSR Proj. ustawy o cudzoziemcach STATYSTYKA PODJйTYCH DECYZJI DLA WIZ C I D W PODZIALE NA CEL WYDANIA WIZY, OBYWATELSTWO APLIKUJ CYCH Nazwa placсwki: WSZYSTKIE Cel wydania: WSZYSTKIE

Bardziej szczegółowo

2 Zarówno zanonimizowany zbiór danych ilościowych, jak i opis jego struktury powinny mieć format csv:

2 Zarówno zanonimizowany zbiór danych ilościowych, jak i opis jego struktury powinny mieć format csv: Zbiór danych ilościowych: 1 Na każdą "bazę danych" składa się zanonimizowany zbiór danych ilościowych zebranych w badaniu oraz opis jego struktury (codebook). 2 Zarówno zanonimizowany zbiór danych ilościowych,

Bardziej szczegółowo

Cennik usług mobilnych

Cennik usług mobilnych 1 GB Internet mobilny Pakiety z limitem transmisji danych opłaty abonamentowe 24,99 zł 2 GB 29,00 zł 4 GB 34,00 zł Opłaty jednorazowe Wydanie duplikatu karty SIM Zmiana numeru telefonu w zakresie usług

Bardziej szczegółowo

Rozliczenie kosztów imprezy zagranicznej

Rozliczenie kosztów imprezy zagranicznej Rozliczenie kosztów imprezy zagranicznej 1. Nazwa imprezy 2. Miejsce 3. Numer pozycji kalendarza PZA 4. Termin 5. Czas pobytu za granicą: 5a. Data wyjazdu 5b. Godzina przekroczenia granicy w dniu wyjazdu

Bardziej szczegółowo

Działalność podmiotów posiadających udziały w podmiotach z siedzibą za granicą w 2008 roku a

Działalność podmiotów posiadających udziały w podmiotach z siedzibą za granicą w 2008 roku a Warszawa, 10 czerwca 2010 Działalność podmiotów posiadających udziały w podmiotach z siedzibą za granicą w 2008 roku a Wprowadzenie W 2009 roku Główny Urząd Statystyczny przeprowadził po raz pierwszy roczne

Bardziej szczegółowo

wagi cyfry 7 5 8 2 pozycje 3 2 1 0

wagi cyfry 7 5 8 2 pozycje 3 2 1 0 Wartość liczby pozycyjnej System dziesiętny W rozdziale opiszemy pozycyjne systemy liczbowe. Wiedza ta znakomicie ułatwi nam zrozumienie sposobu przechowywania liczb w pamięci komputerów. Na pierwszy ogień

Bardziej szczegółowo

Zasady ustalania należności przysługujących pracownikom z tytułu podróży służbowych krajowych i zagranicznych.

Zasady ustalania należności przysługujących pracownikom z tytułu podróży służbowych krajowych i zagranicznych. Zasady ustalania należności przysługujących pracownikom z tytułu podróży służbowych krajowych i zagranicznych. Krajowe podróże służbowe. Ogólne zasady ustalania oraz wysokość należności przysługujących

Bardziej szczegółowo

Drogowskazy sukcesu W poszukiwaniu szans na rynkach finansowych 17 marca 2010, Warszawa

Drogowskazy sukcesu W poszukiwaniu szans na rynkach finansowych 17 marca 2010, Warszawa 1 Jak oszacować potencjał rynku? MicroTest w branży finansowej Krzysztof Siekierski MicroTest sm MicroTest sm to narzędzie badawcze opracowane przez Research International do szacowania wielkości sprzedaży

Bardziej szczegółowo

Import zleceń / Integracja klienta K-Ex

Import zleceń / Integracja klienta K-Ex Import zleceń / Integracja klienta K-Ex 1 1 Integracja systemów Klient K-Ex jako sposobem zwiększenia wydajności tworzenia wysyłki 1.1 Import przesyłek na podstawie pliku CSV Wprowadzenie danych na temat

Bardziej szczegółowo

Szczepienia przed wyjazdem za granicę

Szczepienia przed wyjazdem za granicę Szczepienia przed wyjazdem za granicę Nazwa państwa Afganistan Albania Algieria Angola Antigua i Barbuda Arabia Saudyjska Argentyna Armenia Obowiązkowe szczepienia (Międzynarodowe Przepisy Zdrowotne) szczepionka

Bardziej szczegółowo

1.7. Eksploracja danych: pogłębianie, przeszukiwanie i wyławianie

1.7. Eksploracja danych: pogłębianie, przeszukiwanie i wyławianie Wykaz tabel Wykaz rysunków Przedmowa 1. Wprowadzenie 1.1. Wprowadzenie do eksploracji danych 1.2. Natura zbiorów danych 1.3. Rodzaje struktur: modele i wzorce 1.4. Zadania eksploracji danych 1.5. Komponenty

Bardziej szczegółowo

INSTRUKCJA OBSŁUGI MODUŁU SMS

INSTRUKCJA OBSŁUGI MODUŁU SMS INSTRUKCJA OBSŁUGI MODUŁU SMS Warunkiem koniecznym aby skorzystać z oferty SMS e-logis jest wykupienie abonamentu standardowego z dodatkową opcją sms-50 lub pakietu premium z dodatkową opcją sms-100. Cennik

Bardziej szczegółowo

Wymagania dotyczące etykiet logistycznych przy dostawach do NETTO Sp. z o. o.

Wymagania dotyczące etykiet logistycznych przy dostawach do NETTO Sp. z o. o. A: Etykieta logistyczna GS1 (dawniej EAN-128). Informacje podstawowe Etykieta logistyczna jest nośnikiem informacji w łańcuchu dostaw, w którym wszyscy uczestnicy (producent, przewoźnik, dystrybutor, detalista)

Bardziej szczegółowo

Etykieta logistyczna. Etykieta logistyczna LZIP_2_LW. Kodowanie znaków Kodu 128. Korzyści ze stosowania etykiety logistycznej

Etykieta logistyczna. Etykieta logistyczna LZIP_2_LW. Kodowanie znaków Kodu 128. Korzyści ze stosowania etykiety logistycznej LZIP_2_LW służy do unikalnego znakowania jednostek. Informacje umieszczane na samych produktach, muszą być standardowo uporządkowane dla ułatwienia ich interpretacji i przetwarzania. Zapewnia to standardowa

Bardziej szczegółowo

Program Erasmus Mundus

Program Erasmus Mundus Fundacja Rozwoju Systemu Edukacji Narodowa Agencja Programu Uczenie się przez całe Ŝycie Program Erasmus Mundus dotychczasowe doświadczenia Warszawa, 9 lutego 2010 I etap lata 2004-2008 II etap lata 2009-2013

Bardziej szczegółowo

GreenEvo Akcelerator Zielonych Technologii - rezultaty konkursu (2010-2011)

GreenEvo Akcelerator Zielonych Technologii - rezultaty konkursu (2010-2011) GreenEvo Akcelerator Zielonych Technologii - rezultaty konkursu (2010-2011) Agnieszka Kozłowska Korbicz koordynator projektu GreenEvo Forum Energia - Efekt Środowisko 25.05.2012 GreenEvo Akceleratora Zielonych

Bardziej szczegółowo

Etykieta logistyczna GS1

Etykieta logistyczna GS1 Współpracując zaspokajamy potrzeby Klientów lepiej, szybciej, taniej i w zrównoważony sposób Etykieta logistyczna GS1 Dobre praktyki Dokument stworzony przez wspólną grupę roboczą członków ECR Polska,

Bardziej szczegółowo

1. Mechanizm alokacji kwot

1. Mechanizm alokacji kwot 1. Mechanizm alokacji kwot Zgodnie z aneksem do propozycji Komisji Europejskiej w sprawie przejęcia przez kraje UE 120 tys. migrantów znajdujących się obecnie na terenie Włoch, Grecji oraz Węgier, algorytm

Bardziej szczegółowo

Od pomysłu do realizacji na przykładzie aplikacji do inwentaryzacji i obsługi pasa drogowego

Od pomysłu do realizacji na przykładzie aplikacji do inwentaryzacji i obsługi pasa drogowego mgr inż. Jakub Kalisiak 3M Poland Sp. z o.o. Dział Badań i Rozwoju Dział R&D w 3M Kanada Stany Zjednoczone Meksyk Kostaryka Trynidad i Tobago Kolumbia Brazylia Gwatemala Salwador Panama Wenezuela Ekwador

Bardziej szczegółowo

Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym

Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym konceptualnym modelem danych jest tzw. model związków encji (ERM

Bardziej szczegółowo

Relacyjny model baz danych, model związków encji, normalizacje

Relacyjny model baz danych, model związków encji, normalizacje Relacyjny model baz danych, model związków encji, normalizacje Wyklad 3 mgr inż. Maciej Lasota mgr inż. Karol Wieczorek Politechnika Świętokrzyska Katedra Informatyki Kielce, 2009 Definicje Operacje na

Bardziej szczegółowo

WYKAZ MIέDZYNARODOWYCH NUMERΣW KIERUNKOWYCH

WYKAZ MIέDZYNARODOWYCH NUMERΣW KIERUNKOWYCH WYKAZ MIέDZYNARODOWYCH NUMERΣW KIERUNKOWYCH Lista obejmuje kierunki po³ czeρ miύdzynarodowych dostύpne dla Abonenta Mediatel 4B Sp. z o.o. w ramach us³ug g³osowych (Preselekcja, Linia analogowa, Linia

Bardziej szczegółowo

Report Card 13. Równe szanse dla dzieci Nierówności w zakresie warunków i jakości życia dzieci w krajach bogatych. Warszawa, 14 kwietnia 2016 r.

Report Card 13. Równe szanse dla dzieci Nierówności w zakresie warunków i jakości życia dzieci w krajach bogatych. Warszawa, 14 kwietnia 2016 r. Report Card 13 Równe szanse dla dzieci Nierówności w zakresie warunków i jakości życia dzieci w krajach bogatych Warszawa, 14 kwietnia 2016 r. O UNICEF UNICEF jest agendą ONZ zajmującą się pomocą dzieciom

Bardziej szczegółowo

gizycko.turystyka.pl

gizycko.turystyka.pl Centrum Promocji i Informacji Turystycznej w Giżycku Analiza narodowościowa oraz rodzaje zapytań turystów w okresie od stycznia do września 213 roku. opracowano: Urszula Ciulewicz na podstawie statystyk

Bardziej szczegółowo

wzw A, wzw B, żółta gorączka (febra), błonica, wścieklizna, szczepionka p/gruźlicza p/gruźlicza Australia wzw A, błonica, tężec, polio, dur brzuszny

wzw A, wzw B, żółta gorączka (febra), błonica, wścieklizna, szczepionka p/gruźlicza p/gruźlicza Australia wzw A, błonica, tężec, polio, dur brzuszny Obowiązkowe szczepienia Zalecane szczepienia Zalecane szczepienia w zależności od stopnia narażenia, charakteru pobytu, rejonu kraju Afganistan wzw A,, dur brzuszny wzw B,, szczepionka Albania wzw A,,

Bardziej szczegółowo

CYFROWA TELEFONIA STACJONARNA

CYFROWA TELEFONIA STACJONARNA CYFROWA TELEFONIA STACJONARNA CENNIK USŁUG TELEFONICZNYCH netto brutto Instalacja linii telefonicznej dla odbiorcy Internetu blokowe.pl 40,16 zł 49,00 zł Instalacja linii telefonicznej dla pozostałych

Bardziej szczegółowo

Systemy informatyczne handlu detalicznego

Systemy informatyczne handlu detalicznego dr inż. Paweł Morawski Systemy informatyczne handlu detalicznego semestr zimowy 2014/2015 KONTAKT Z PROWADZĄCYM dr inż. Paweł Morawski e-mail: pmorawski@spoleczna.pl www: http://pmorawski.swspiz.pl konsultacje:

Bardziej szczegółowo

Interfejs diagnostyczny LPG CNG GPL wersja USB FTDI - ProjektTECH LPG CNG GPL Diagnostic USB FTDI Interface - ProjektTECH

Interfejs diagnostyczny LPG CNG GPL wersja USB FTDI - ProjektTECH LPG CNG GPL Diagnostic USB FTDI Interface - ProjektTECH Interfejs diagnostyczny LPG CNG GPL wersja USB FTDI - ProjektTECH LPG CNG GPL Diagnostic USB FTDI Interface - ProjektTECH 2015-11-20 21:32:33.643232 2 3 Ta oferta nie stanowi informacji handlowej Adres

Bardziej szczegółowo

AKTYWNOŚĆ POLSKICH SAMORZĄDÓW NA ARENIE MIĘDZYNARODOWEJ: FORMY, MOŻLIWOŚCI, WYZWANIA. - wnioski z badania ankietowego

AKTYWNOŚĆ POLSKICH SAMORZĄDÓW NA ARENIE MIĘDZYNARODOWEJ: FORMY, MOŻLIWOŚCI, WYZWANIA. - wnioski z badania ankietowego AKTYWNOŚĆ POLSKICH SAMORZĄDÓW NA ARENIE MIĘDZYNARODOWEJ: FORMY, MOŻLIWOŚCI, WYZWANIA - wnioski z badania ankietowego Prowadzenie współpracy międzynarodowej (w %) nie tak 28% 72% Posiadanie opracowanego

Bardziej szczegółowo

Wykorzystanie technologii RFID w produkcji i logistyce

Wykorzystanie technologii RFID w produkcji i logistyce technologii w produkcji i logistyce Co to jest technologii (z ang. Radio-frequency identification) to ogólny termin używany, aby opisać technologię która umożliwia automatyczną identyfikację, inaczej rozpoznanie

Bardziej szczegółowo

Dokumentacja Użytkownika Systemu

Dokumentacja Użytkownika Systemu Dokumentacja Użytkownika Systemu Integracja z Ceneo.pl Wersja 2016.2 Spis treści 1 INTEGRACJA... 3 2 REJESTRACJA NA CENEO.PL... 4 3 KONFIGURACJA Z SERWISEM CENEO.PL... 5 4 PRZYGOTOWANIE ASORTYMENTU...

Bardziej szczegółowo

ROZPORZĄDZENIE MINISTRA PRACY I POLITYKI SPOŁECZNEJ 1) z dnia 19 grudnia 2002 r.

ROZPORZĄDZENIE MINISTRA PRACY I POLITYKI SPOŁECZNEJ 1) z dnia 19 grudnia 2002 r. Dz.U.02.236.1991 2003.11.24 sprost. Dz.U.03.199.1951 ogólne 2005.01.01 zm. Dz.U.04.271.2687 1 2006.01.01 zm. Dz.U.05.186.1555 1 ROZPORZĄDZENIE MINISTRA PRACY I POLITYKI SPOŁECZNEJ 1) z dnia 19 grudnia

Bardziej szczegółowo

AKCJA 2 PARTNERSTWA STRATEGICZNE

AKCJA 2 PARTNERSTWA STRATEGICZNE ZASADY MAJĄCE ZASTOSOWANIE DO KATEGORII BUDŻETU NA PODSTAWIE JEDNOSTKOWYCH STAWEK RYCZAŁTOWYCH AKCJA 2 PARTNERSTWA STRATEGICZNE 1. Zarządzanie projektem i jego wdrażanie Dofinansowanie działań organizacji

Bardziej szczegółowo

SCENARIUSZ LEKCJI. TEMAT LEKCJI: Zastosowanie średnich w statystyce i matematyce. Podstawowe pojęcia statystyczne. Streszczenie.

SCENARIUSZ LEKCJI. TEMAT LEKCJI: Zastosowanie średnich w statystyce i matematyce. Podstawowe pojęcia statystyczne. Streszczenie. SCENARIUSZ LEKCJI OPRACOWANY W RAMACH PROJEKTU: INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA. PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH Autorzy scenariusza:

Bardziej szczegółowo

TAG RADIOWY W MAGAZYNIE

TAG RADIOWY W MAGAZYNIE Tomasz Pisarek Jantar sp. z o.o. Elżbieta Hałas Instytut Logistyki i Magazynowania GS1 Polska TAG RADIOWY W MAGAZYNIE Technologia zwana często EPC/RFID wykorzystuje identyfikację za pomocą fal radiowych

Bardziej szczegółowo

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38 Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem zajęcia 1 dr Jakub Boratyński pok. A38 Program zajęć Bazy danych jako podstawowy element systemów informatycznych wykorzystywanych

Bardziej szczegółowo

Informacje i materiały dotyczące wykładu będą publikowane na stronie internetowej wykładowcy, m.in. prezentacje z wykładów

Informacje i materiały dotyczące wykładu będą publikowane na stronie internetowej wykładowcy, m.in. prezentacje z wykładów Eksploracja danych Piotr Lipiński Informacje ogólne Informacje i materiały dotyczące wykładu będą publikowane na stronie internetowej wykładowcy, m.in. prezentacje z wykładów UWAGA: prezentacja to nie

Bardziej szczegółowo

Odkrywanie wzorców sekwencji

Odkrywanie wzorców sekwencji Odkrywanie wzorców sekwencji Sformułowanie problemu Algorytm GSP Eksploracja wzorców sekwencji wykład 1 Na wykładzie zapoznamy się z problemem odkrywania wzorców sekwencji. Rozpoczniemy od wprowadzenia

Bardziej szczegółowo

Program MŁODZIEŻ 2000 2006

Program MŁODZIEŻ 2000 2006 Program MŁODZIEŻ 2000 2006 Łączymy przyjemne z pożytecznym Ośrodek Regionalny Programu MŁODZIEŻ w Katowicach Gliwice, 18 października 2006r. Cele Programu ułatwianie integracji społecznej i rozbudzanie

Bardziej szczegółowo

Szczegółowe zasady finansowania spotkań w ramach programu Mentoring FNP

Szczegółowe zasady finansowania spotkań w ramach programu Mentoring FNP Szczegółowe zasady finansowania spotkań w ramach programu Mentoring FNP Ad 1. 1. Sposób kalkulowania przysługującego limitu wydatków dla podróży zagranicznych 2. Sposób finansowania poszczególnych wydatków

Bardziej szczegółowo

Studenci zagraniczni w Polsce 2013

Studenci zagraniczni w Polsce 2013 Studenci zagraniczni w Polsce 2013 Rola inicjatyw regionalnych w promocji uczelni akademickich Marek Krawczyk Warszawa, 18 stycznia 2013 r. Wzrost liczby studentów zagranicznych na świecie 1975-2010 Studenci

Bardziej szczegółowo

cennik usługi telefonia internetowa tp

cennik usługi telefonia internetowa tp cennik usługi telefonia internetowa tp I. Plan VoIP tp zawsze za darmo Informacje o planie Plan VoIP tp zawsze za darmo jest dostępny wyłącznie dla Abonentów będących konsumentami w rozumieniu ustawy z

Bardziej szczegółowo

Kodowanie produktów - cz. 1

Kodowanie produktów - cz. 1 Kodowanie produktów - cz. 1 25.07.2005 r. Wstęp Do identyfikacji wyrobów od dawna używa się różnego rodzaju kodów i klasyfikacji. Obecnie stosuje się m.in. natowską kodyfikację wyrobów, kodowanie wyrobów

Bardziej szczegółowo

5.5. Wybieranie informacji z bazy

5.5. Wybieranie informacji z bazy 5.5. Wybieranie informacji z bazy Baza danych to ogromny zbiór informacji, szczególnie jeśli jest odpowiedzialna za przechowywanie danych ogromnych firm lub korporacji. Posiadając tysiące rekordów trudno

Bardziej szczegółowo

Sterownik. zasady obsługi. moduł programu Madar 7

Sterownik. zasady obsługi. moduł programu Madar 7 Sterownik zasady obsługi moduł programu Madar 7 MADAR Sp. z o.o. 41-819 Zabrze, ul. Skłodowskiej 12d/3 Biuro Handlowe: 41-800 Zabrze, ul. Pośpiecha 23 http://www.madar.com.pl e-mail: madar@madar.com.pl

Bardziej szczegółowo

Analiza korespondencji

Analiza korespondencji Analiza korespondencji Kiedy stosujemy? 2 W wielu badaniach mamy do czynienia ze zmiennymi jakościowymi (nominalne i porządkowe) typu np.: płeć, wykształcenie, status palenia. Punktem wyjścia do analizy

Bardziej szczegółowo

Polska Centrala Firm Symulacyjnych CENSYM

Polska Centrala Firm Symulacyjnych CENSYM Polska Centrala Firm Symulacyjnych jest członkiem światowej sieci EUROPEN Pen Internationalskupiającej ok.7500 firm symulacyjnych w 42 krajach na całym świecie. Kraje założycielskie EUROPEN: Austria, Dania,

Bardziej szczegółowo

Zarządzanie opakowaniami zwrotnymi w firmie odzieżowej

Zarządzanie opakowaniami zwrotnymi w firmie odzieżowej Instytut Logistyki i Magazynowania GS1 Polska Zarządzanie opakowaniami zwrotnymi w firmie odzieżowej Intersport Polska SA jest firmą handlową, posiada własną sieć sklepów detalicznych, do których towary

Bardziej szczegółowo

Cennik usług Operatora Eoon sp. z o.o. ul. Ruchliwa 17, 02-182 Warszawa

Cennik usług Operatora Eoon sp. z o.o. ul. Ruchliwa 17, 02-182 Warszawa Ogólne warunki Cennik usług Operatora Eoon sp. z o.o. ul. Ruchliwa 17, 02-182 Warszawa Cennik obowiązuje od 1/02/2014 Cennik stanowi integralną częścią umowy. Wszystkie ceny podane w polskich złotych (PLN).

Bardziej szczegółowo

Technologia informacyjna

Technologia informacyjna Technologia informacyjna Pracownia nr 9 (studia stacjonarne) - 05.12.2008 - Rok akademicki 2008/2009 2/16 Bazy danych - Plan zajęć Podstawowe pojęcia: baza danych, system zarządzania bazą danych tabela,

Bardziej szczegółowo

Uniwersalne urządzenie do napełniania i kontroli FPU-1 do hydroakumulatorów pęcherzowych, tłokowych i membranowych

Uniwersalne urządzenie do napełniania i kontroli FPU-1 do hydroakumulatorów pęcherzowych, tłokowych i membranowych Uniwersalne urządzenie do napełniania i kontroli FPU-1 do hydroakumulatorów pęcherzowych, tłokowych i membranowych 1. OPIS 1.1. FuNKCJE urządzenie do napełniania i kontroli Fpu-1 HyDac przeznaczone jest

Bardziej szczegółowo

Techniki multimedialne

Techniki multimedialne Techniki multimedialne Digitalizacja podstawą rozwoju systemów multimedialnych. Digitalizacja czyli obróbka cyfrowa oznacza przetwarzanie wszystkich typów informacji - słów, dźwięków, ilustracji, wideo

Bardziej szczegółowo