Modele eksploracji danych - CROSS-SELLING
Transkrypt
Modele eksploracji danych - CROSS-SELLING
Zakład Zaawansowanych Technik Informacyjnych (Z-6) Modele eksploracji danych CROSS-SELLING, LTV, EVENT Praca statutowa nr 06.30.003.6 Warszawa, grudzień 2006 Modele eksploracji danych - CROSS-SELLING, LTV, EVENT Praca statutowa nr 06.30.003.6 Słowa kluczowe: data-mining, cross-selling, wartość życiowa klienta, zdarzenie, telekomunikacja Kierownik pracy: dr inż. Janusz Granat Wykonawcy pracy: dr inż. Janusz Granat dr inż. Szymon Jaroszewicz mgr inż. Cezary Chudzian mgr inż. Robert Kuśmierek mgr inż. Paweł Białoń c Copyright by Instytut Łączności, Warszawa 2006 Spis treści 1 Wstęp 4 2 Cross-selling 2.1 Pojęcia cross-sellingu i up-sellingu i ich znaczenie w telekomunikacji . . . 2.2 Dostępne rozwiązania cross-sellingowe i przegląd literatury . . . . . . . . 2.2.1 Rozwiązania komercyjne . . . . . . . . . . . . . . . . . . . . . . . 2.2.2 Rozwiązania przedstawione w literaturze . . . . . . . . . . . . . . 2.3 Dane testowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.1 Problem sprzedaży ofert promocyjnych dla użytkowników telefonów komórkowych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.2 Generator danych . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4 Zastosowanie reguł asocjacyjnych interesujących względem sieci bayesowskich . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.1 Metoda z użyciem sieci bayesowskiej jako wiedzy z dziedziny i metody filtrowania reguł asocjacyjnych . . . . . . . . . . . . . . . . . 2.4.2 Budowa sieci Bayesowskiej . . . . . . . . . . . . . . . . . . . . . . 2.4.3 Testowanie rozwiązania . . . . . . . . . . . . . . . . . . . . . . . . 2.5 Cross-selling oparty na klasyfikatorach . . . . . . . . . . . . . . . . . . . 2.5.1 Wyniki testów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6 Wnioski i przyszłe kierunki badań . . . . . . . . . . . . . . . . . . . . . . 6 6 7 7 7 9 3 Wartość Życiowa Klienta (Lifetime Value) 3.1 Przegląd literatury . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Badania na rzeczywistych danych PTK Centertel . . . . . . . . . . . . . 3.2.1 Prognozowana wielkość, przygotowanie danych i ocena dokładności 3.2.2 Proste modele bazowe . . . . . . . . . . . . . . . . . . . . . . . . 3.2.3 Modele statystyczne . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.4 Budowa oddzielnego modelu dla każdego użytkownika . . . . . . . 3.2.5 Wnioski . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3 Badania innych metod predykcji prowadzone na danych testowych . . . . 3.3.1 Standardowe modele regresji (metody statystyczne i uczenia maszynowego) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4 Metody uczenia maszynowego przeznaczone dla szeregów czasowych . . . 3.5 Wnioski . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.6 Przyszłe badania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 9 9 12 13 15 19 19 23 24 25 25 28 28 29 30 32 32 33 33 36 38 38 A Przedziały dyskretyzacji zmiennych w modelu cross-sellingowym 44 B Wyniki przedstawione w formie artykułów 46 3 Rozdział 1 Wstęp Praca niniejsza dotyczy ważnych aspektów analizy danych marketingowych, a w szczególności danych dotyczących rynku usług telekomunikacyjnych. Zagadnienia te są bezpośrednio związane z pracami wykonywanymi przez Zakład Zaawansowanych Technik Informacyjnych Instytutu Łączności dla Przedsiębiorstwa Telefonii Komórkowej Centertel. Rynek usług telekomunikacyjnych w ogólności, a telefonii komórkowej w szczególności, jest rynkiem szczególnym. W dziedzinie tej zachodzi bardzo szybki rozwój technologiczny, co owocuje ciągłym pojawianiem się nowych usług. Zjawisko to ulegnie w najbliższej przyszłości jeszcze większemu nasileniu z uwagi na pojawienie się telefonii komórkowej trzeciej generacji. Następuje też ciągłe obniżanie cen, a co za tym idzie ciągłe zmniejszanie się marży operatorów. Częste akcje promocyjne powodują znaczną migrację użytkowników między operatorami, zwłaszcza w najważniejszym obecnie systemie pre-paid. Te szczególne własności rynku telekomunikacyjnego zwiększają wagę pełnego wykorzystania posiadanych danych o klientach do celów marketingowych, a jednocześnie stawiają przed nim znaczne wyzwania, jak choćby konieczność radzenia sobie z ogromną ilością danych. Pierwszym rozpatrywanym zagadnieniem jest problem cross-sellingu, to znaczy sprzedaży dodatkowych usług dotychczasowym klientom firmy. Jest to problem szczególnie istotny, gdyż z im większej liczby usług dany klient korzysta, tym mniej prawdopodobne jest jego przejście do konkurencji. W pracy przedstawiono dwie metody rozwiązania problemu. Pierwsza jest oparta o analizę koszykową połączoną z metodą selekcji reguł opartą o wiedzę z dziedziny. W wyniku jej zastosowania otrzymuje się model probabilistyczny (sieć bayesowską) pozwalający na przewidywanie prawdopodobieństwa akceptacji konkretnych usług. Drugie podejście opiera się na zastosowaniu metod klasyfikacji. Drugim rozpatrywanym problemem jest prognozowanie wartości życiowej klienta. W większości firm, nie tylko telekomunikacyjnych, większa część zysków wytwarzana jest przez bardzo małą grupę klientów. Ważna jest więc identyfikacja klientów, którzy chociaż obecnie nie są rentowni, mogą w przyszłości przynosić firmie znaczne zyski. Ważne jest też ściśle z tym pozwiązane zagadnienie prognozowania kosztów i przychodów firmy związanych z różnymi segmentami rynku na najbliższe miesiące. W pracy przebadano przydatność szeregu metod predykcji pod kątem przydatności w prognozowaniu zysku firmy telekomunikacyjnej. Modele zostały przetestowane na rzeczywistych danych PTK Centertel a także na innych danych testowych. 4 Kolejnym podjętym w pracy tematem jest data-mining opraty o zdarzenia. Ma to szczególne znaczenie w sektorze telefonii komórkowej z uwagi na nieustannie pojawiające się promocje i akcje marketingowe, które wpływają na zachowanie rynku. Reagowanie na takie zdarzenia jest dla firm telekomunikacyjnych bardzo istotne. W ramach pracy powstał też szereg artykułów powiązanych z tematyką pracy. Trzy z nich zostały już opublikowane, a kolejna została przyjęta do publikacji. W projekcie wzięły również udział studentki-stażystki Izabela Windyga i Nada Atallah. 5 Rozdział 2 Cross-selling 2.1 Pojęcia cross-sellingu i up-sellingu i ich znaczenie w telekomunikacji Definicje pojęć cross-sellingu i up-sellingu przedstawione są poniżej (na podstawie Wikipedii) Cross-selling jest strategią sprzedaży innych produktów klientowi, który wcześniej dokonał już zakupu (lub wyrażał taki zamiar). Produkty te nie są zazwyczaj związane z produktem podstawowym i mają na celu zwiększenie zależności klienta od firmy, a co za tym idzie jego lojalności. Up-selling jest techniką sprzedaży polegającą na próbie skłonienia klienta do zakupu droższego produktu lub dodatkowych akcesoriów w celu zwiększenia wartości transakcji. Up-selling zazwyczaj oznacza próbę skłonienia klienta do zakupu produktów bardziej rentownych (dla sprzedającego), ale może też oznaczać zaproponowanie klientowi opcji, których wcześniej nie był świadomy lub które były dla niego niedostępne. W pracy niniejszej zajmiemy się głównie pojęciem cross-sellingu, z uwagi na większe zainteresowanie PTK Centertel. Rynek usług telekomunikacyjnych charakteryzuje się dużą dynamiką usług i małą lojalnością klientów. Z uwagi na ciągłe powstawanie nowych usług jak i częste i agresywne oferty promocyjne, następuje ciągła migracja klientów między konkurencyjnymi firmami. Dla PTK Centertel cross-selling ma więc duże znaczenie z dwóch powodów. Po pierwsze (efekt bezpośredni) powoduje zwiększenie sprzedaży. Po drugie, klienci korzystający z wielu różnorodnych usług stają się bardziej zależni od firmy i zmniejsza się prawdopodobieństwo ich przejścia do konkurencji. W przypadku firm telekomunikacyjnych kontakt z klientem może odbywać się za pomocą szeregu kanałów 1. propozycje składane klientowi, gdy kontaktuje się on z call-center, 2. kontakt telefoniczny z klientem, 3. kontakt z klientem za pomocą SMS, 6 4. kontakt z klientem za pomocą przesyłki pocztowej (oddzielnej lub przesyłanej łącznie z rachunkiem). Może się wydawać, że koszt niektórych z tych kanałów (zwłaszcza kontaktu z klientem za pomocą SMSa) jest znikomy, możliwe jest więc wysyłanie dużej liczby ofert crosssellingowych. Przekonanie to jest jednak błędne. Jest tak dlatego, że reakcja klienta na nadmierną ilość ofert jest w przeważającej mierze negatywna [4]. Potwierdziły to wcześniejsze badania prowadzone przez Zakład Zaawansowanych Technik Informacyjnych, w których stwierdzono, że w niektórych przypadkach wysyłanie SMSów z ofertą doprowadziło do obniżenia akceptacji usługi. Wynika stąd, iż liczba ofert cross-sellingowych jest ograniczona, a co za tym idzie, konieczny jest bardzo staranny wybór produktu oferowanego danemu użytkownikowi, aby zmaksymalizować prawdopodobieństwo ‘trafienia’. 2.2 Dostępne rozwiązania cross-sellingowe i przegląd literatury W tej części zostaną przedstawione dostępne na rynku, jak i opisane w literaturze rozwiązania cross-sellingowe. 2.2.1 Rozwiązania komercyjne Kilka firm oferuje gotowe produkty służące do cross-sellingu. Niestety rzadko dostępne są szczegółowe opisy metody działania systemów, niedostępne są też wersje testowe. Poniższy opis dwóch wybranych produktów będzie więc z konieczności skrótowy. SAS Up-sell, Cross-sell for telecommunications SAS oferuje gotowy produkt do Cross-sellingu w telekomunikacji [31]. Brak jest szczegółowych informacji na temat jego działania. Firma podaje jednak, że jest on oparty o analizę koszykową. Analiza ta jest używana do badania typowych ścieżek rozwoju klienta, np. od jednej linii telefonicznej do kilku linii wraz z internetem. Pozwala to identyfikować, którzy klienci są potencjalnie zainteresowanie zakupem nowych usług. System jest konstruowany przez specjalistów SASa i wymaga zakupu systemu tej firmy. IBM Guided Selling & Active Advisor Kompleksowe rozwiązanie cross-sellingowe, dostosowane w szczególności do handlu detalicznego. Nie dostosowany specyficznie do potrzeb telekomunikacji. Brak opisu stosowanych metod i algorytmów. 2.2.2 Rozwiązania przedstawione w literaturze W literaturze związanej z data-mining zostało przedstawionych tylko kilka prac na temat cross-sellingu. Zostaną one krótko scharakteryzowane poniżej. Przykładowa aplikacja cross-sellingowa w bankowości jest przedstawiona w książce [4]. Źródło to wyróżnia fakt, że podany został bardzo szczegółowy opis zarówno samej metody, jak i konkretnego przykładu zastosowania w sektorze bankowym. Zadaniem było 7 wytypowanie grupy klientów, którzy skłonni byliby skorzystać z oferty otwarcia rachunku brokerskiego (rachunku akcji). Użyta metoda polega na budowie klasyfikatora (drzewo decyzyjne) dla każdej usługi oddzielnie i oferowaniu klientowi usługi najbardziej prawdopodobnej. Jeżeli klient nie ma danej usługi i znajduje się w liściu drzewa, w którym wielu klientów z tej usługi korzysta, to prawdopodobieństwo, że on też z tej usługi skorzysta, jest uznawane za wysokie. Według danych autorów modelowi udało się osiągnąć o kilkadziesiąt procent wyższy odsetek akceptacji usługi niż w przypadku oferty losowej. Z powodu ograniczeń wewnętrznych klasyfikator budowany jest na podstawie wcześniej zgromadzonych danych klientów banku, którzy już z tej usługi skorzystali. Oczywiście, założenie to może okazać się błędne, gdyż potencjalni nowi klienci mogą być zupełnie niepodobni do klientów już korzystających z usługi. Lepszym rozwiązaniem byłoby wysłanie oferty pilotowej i budowa klasyfikatora na podstawie jej wyników. W ten sposób mamy większą szansę na dotarcie do zupełnie nowych grup klientów, jednak rozwiązanie to wiąże się z wydłużonym czasem akcji marketingowej i jej zwiększonymi kosztami, co nie zawsze jest do zaakceptowania. W pracy [32] autorzy używają reguł asocjacyjnych i modeli statystycznych do predykcji zakupów na podstawie logów z serwerów WWW. Reguły asocjacyjne stosowane są do generowania cech, które następnie są wejściami hybrydowego klasyfikatora. W pracy [19] probabilistyczny model z ukrytymi zmiennymi jest używany do przewidywania zachowań klientów na podstawie ich zakupów oraz danych z ankiet. Zaletą tego typu modeli jest duża elastyczność i możliwość uwzględniania zmiennych ukrytych. Wadą jest trudność w wykryciu nieznanych zależności nieuwzględnionych w modelu. W niniejszej problem dotyczący modeli probabilistycznych został rozwiązany przez połącznenie ich z analizą koszykową. W pracy [35] przedstawiono rozwiązanie umożliwiające wybór podzbioru usług na które powinna być skierowana akcja promocyjna tak, by zmaksymalizować całościowy zysk. Uwzględniany jest wpływ popularności jednych towarów na popularność innych. Analiza zależności między produktami oparta jest o analizę koszykową (reguły asocjacyjne). Udowodniono, że wybór optymalnego zbioru produktów jest NP-zupełny. Zaproponowano więc przybliżony algorytm zachłanny. Zbliżoną dziedziną analizy danych są tzw. systemy rekomendacji (ang. recommender systems) [1]. Systemy te starają się zaoferować klientowi towar na podstawie podobieństwa jego historii zakupów do historii zakupów innych klientów. Najbardziej chyba znanym przykładem takiego systemu jest strona księgarni wysyłkowej www.amazon.com, wyświetlająca informację „ci, którzy kupili tę książkę często kupowali również...”. Systemy takie są jednak przystosowane w szczególności do dużych sklepów wysyłkowych: nie wykorzystują danych klienta innych niż historia zakupów i działają na bardzo dużych bazach produktów (dziesiątki i setki tysięcy). Charakterystyka zadania cross-sellingowego w PTK Centertel jest diametralnie inna: oferowana jest względnie mała liczba usług, dane o historii zakupów klienta mają relatywnie małe znaczenie w przeciwieństwie do innych danych na jego/jej temat takich jak płeć, miejsce zamieszkania, historia połączeń, które mają znaczenie kluczowe. Powoduje to, że systemy rekomendacji nie nadają się do zastosowań w cross-sellingu telekomunikacyjnym. 8 Podsumowanie Z powyższej dyskusji wynika, że istnieją dwa główne podejścia do problemu cross-sellingu. 1. budowa oddzielnego klasyfikatora dla każdej z usług i oferowanie usługi, której klasyfikator przewiduje największe prawdopodobieństwo zakupu, 2. zastosowanie reguł asocjacyjnych (analiza koszykowa) do znalezienia związków między danymi klienta i usługami z których korzysta. Na podstawie tych reguł budowany jest następnie model sugerujący, które usługi należy zaoferować. W niniejszej pracy zastosowano i przeanalizowano obie te metody. 2.3 Dane testowe W tej części zostanie przedstawiony opis konkretnego problemu cross-sellingowego, na którym koncentrowaliśmy się w pracy. 2.3.1 Problem sprzedaży ofert promocyjnych dla użytkowników telefonów komórkowych W niniejszej pracy skupiono się na akcji cross-sellingowej nakierowanej na trzy usługi dodatkowe, które umożliwiają klientowi obniżenie kosztów połączeń. Są to następujące usługi: RL - rozmowy lokalne umożliwia klientowi wykonywanie rozmów lokalnych po obniżonej cenie TPG - taniej po godzinach umożliwia klientowi wykonywanie tańszych rozmów po godzinie 18. TPWS - tanie połączenia w sieci obniżka cen połączeń wewnątrz sieci Orange. Celem jest stworzenie systemu, który dla danego klienta zaproponuje jedną nową usługę, którą należy temu klientowi zaoferować (czy to w formie oferty SMSowej, czy też np. w czasie gdy klinet zadzwoni na linię obsługi technicznej). 2.3.2 Generator danych Z uwagi na ścisłe restrykcje w dostępie do rzeczywistych danych w PTK Centertel, testowanie algorytmów musiało być przeprowadzone na danych generowanych. Dołożono jednak wszelkich starań aby dane były zgodne z realiami danych telekomunikacyjnych. Dla zapewnienia bezstronności w analizie wyników, generator danych i ich analiza były wykonane przez różne osoby, przy czym osoba analizująca dane nie znała uprzednio reguł, na podstawie których aktywowane były usługi w generatorze danych. Dane były generowane tak, aby opracowane algorytmy można było w przyszłości łatwo zastosować na rzeczywistych danych PTK Centertel. Etapy działania generatora przedstawiono na rys. 2.1. Najpierw generowane są dane bilingowe klientów, na podstawie tych danych włączane są odpowiednie usługi danego 9 Rysunek 2.1: Etapy działania generatora danych Tablica 2.1: Charakterystyka profili klientów Profil 1 Profil 2 Profil 3 Profil 4 Profil 5 przewaga usług typu SMS – 60-70% wszystkich wykorzystanych usług krótki czas połączeń - przewaga połączeń kilkuminutowych, połączenia telefoniczne – rozkład jednostajny do wszystkich operatorów przewaga połączeń poza godzinami szczytu, sporadyczne rozmowy w szczycie duża ilość rozmów w szczycie zarówno do własnej sieci oraz do sieci stacjonarnych, nieznacznie mniej wieczorami przewaga rozmów w szczycie do telefonów stacjonarnych, 1 lub 2 numery kierunkowe, przewaga połączeń do własnej sieci przewaga połączeń do kilku wybranych numerów, rozkład innych połączeń dowolny, przewaga połączeń do własnej sieci klienta. Dane są następnie agregowane do formatu występującego w hurtowniach danych, tzn. każdy rekord zagregowanej bazy odpowiada jednemu klientowi. Aby oddać zróżnicowane zachowania klientów, zostali oni podzieleni na kilka profili. Klienci z każdego profilu mają odmienne charakterystyki korzystania z usług telefonii komórkowej. Tabela 2.1 przedstawia charakterystyki użytych profili, a rys. 2.2 ich udział procentowy w danych bilingowych. Dla każdego klienta wybierana jest też losowo (z uwzględnieniem profilu) jedna z sześciu taryf podstawowych. Ogólnie, im dłużej dany użytkownik rozmawia, tym wyższy jest numer jego taryfy (uznajemy, że wyższe numery taryf oznaczają wyższy abonament, ale też niższe koszty rozmów). Na podstawie danych bilingowych i odpowiednich reguł, generowane są następnie usługi z których korzysta każdy z użytkowników. Dane są następnie agregowane do formatu hurtowni danych. W formacie tym jeden rekord tabeli danych odpowiada jednemu użytkownikowi korzystającemu z telefonu komórkowego w danym miesiącu. Pola danych dostępne w tabeli zagregowanej podane są w tabeli 2.2. Dostępne są następujące rodzaje usług to: 1 2 3 4 SMS połączenie do własnej sieci połączenie do innej sieci komórkowej połączenie do sieci stacjonarnej a doba jest podzielona na następujące trzy „pory dnia”: 10 Rysunek 2.2: Udział procentowy poszczególnych profili. Tablica 2.2: Zmienne tabeli zagregowanej (format hurtowni danych) pole user-id czas-polaczen ilosc-polaczen sr-dlug-pol pd_y-il-pol pd_y-czas-pol usl_y-czas-pol usl_y-il-pol taryfa rl tpg tpws opis identyfikator użytkownika suma czasu połączeń ilość połączeń wykonanych średnia długość połączenia ilość połączeń w porze dnia y suma czasu połączeń w porze y suma czasu połączeń dla usługi y ilość połączeń dla usługi y taryfa, z której korzysta przez abonenta aktywacja usługi „rozmowy lokalne” aktywacja usługi „taniej po godzinach” aktywacja usługi „tańsze połączenia w sieci” 11 1 2 3 8:00 18:00 0:00 – – – 17:59 23:59 7:59 Zmienne numeryczne zostały zdyskretyzowane. Przedziały dyskretyzacji zostały podane w dodatku A. Z uwagi na konieczność wygenerowania dużej liczby danych bilingowych dla każdego klienta, wynikowa tabela zagregowana zawiera 4920 rekordów. Dane the zostały podzielone na zbiór treningowy (4000 rekordów) i zbiór testowy (920 rekordów). Budowa modeli odbywać się będzie na zbiorze treningowym a testowane będą one na zbiorze testowym. W ten sposób zminimalizowane zostanie zjawisko tzw. przeuczenia, kiedy model zachowuje się znakomicie na danych, na których został skonstruowany, a nie jest w stanie poprawnie klasyfikować nowych przypadków. 2.4 Zastosowanie reguł asocjacyjnych interesujących względem sieci bayesowskich W tej części zostanie opisane podejście do cross-sellingu oparte o reguły asocjacyjne. Reguły asocjacyjne zostały po raz pierwszy wprowadzone przez Rakesha Agrawala i jego zespół do analizy danych z supermarketów [2]. W pierwotnym sformułowaniu reguły asocjacyjne zostały zdefiniowane dla tabeli binarnej, której każdy atrybut odpowiadał jednemu z produktów, a każdy rekord konkretnej transakcji. Atrybut miał w danym rekordzie wartość 1, jeżeli w odpowiadającej mu transakcji dokonano zakupu towaru odpowiadającego temu atrybutowi. Niech H = {A1 , A2 , . . . , An } oznacza zbiór atrybutów tabeli. Weźmy dowolny podzbiór I = {Ai1 , Ai2 , . . . , Aik } ⊆ H. Wsparcie (ang. support) zbioru atrybutów I w tabeli bazodanowej D jest zdefiniowane jako supportD (I) = |{t ∈ D : t[i] = (1, 1, . . . , 1)}| , |D| (2.1) czyli jako odsetek rekordów bazy, w których wszystkie atrybuty I przyjmują jednocześnie wartość 1. Jeżeli I, J ⊂ H i I ∩ J = ∅, to możemy zdefiniować regułę asocjacyjną I → J. Dla reguły takiej definiujemy dwie wielkości: wsparcie (ang. support) i zaufanie (ang. confidence). Wielkości te zadane są następującymi wzorami supportD (I → J) = supportD (I ∪ J), supportD (I ∪ J) confidenceD (I → J) = , supportD (I) (2.2) (2.3) to znaczy wsparcie oznacza, jak duży odsetek transakcji w bazie zawiera jednocześnie wszystkie towary w I oraz w J, a zaufanie oznacza odsetek klientów, którzy kupili wszystkie towary w I, kupili również wszystkie towary w J. W pracy [2] zaproponowano algorytm Apriori pozwalający na znalezienie wszystkich reguł asocjacyjnych o zadanym minimalnych wsparciu i zaufaniu. Minimalne wsparcie 12 gwarantuje nam, że znalezione reguły odnoszą się do często występujących sytuacji, a minimalne zaufanie, że gwarantują odpowiednią jakość predykcji. Reguły asocjacyjne zostały pierwotnie opisane dla tabel binarnych, po prostych konwersjach można je jednak zastosować także do atrybutów wielowartościowych oraz numerycznych (po dyskretyzacji). Zaletą reguł asocjacyjnych jest to, że istniejące algorytmy pozwalają znaleźć wszystkie reguły asocjacyjne o zadanych parametrach. Wadą jest często zbyt duża liczba znalezionych reguł, co tworzy wtórny problem analizy danych polegający na odfiltrowaniu reguł dla użytkownika nieinteresujących. Jedna z metod takiego filtrowania została w kolejnym rozdziale zastosowana do problemu cross-sellingu. 2.4.1 Metoda z użyciem sieci bayesowskiej jako wiedzy z dziedziny i metody filtrowania reguł asocjacyjnych Jak napisano wyżej, zastosowanie reguł asocjacyjnych wymaga odpowiednich metod filtracji reguł nieprzydatnych dla użytkownika. Jedna z takich metod została opracowana przez jednego z autorów pracy (we współpracy z innymi) i opublikowana w pracach [16, 15]. Metoda ta polega na uwzględnieniu dotychczasowej wiedzy użytkownika na temat analizowanej dziedziny. Wiedza ta jest reprezentowana przy pomocy formalnego modelu (sieć bayesowska). Reguły, które nie są z tą wiedzą zgodne, uznawane są za interesujące. Tak znalezione reguły są następnie używane do zmodyfikowania modelu i algorytm jest uruchamiany ponownie w celu znalezienia kolejnych interesujących reguł. Jako reprezentację wiedzy użytkownika wybrano sieci bayesowskie [23, 17, 11]. Sieci bayesowskie są modelami obrazującymi w formie grafu skierowanego zależności przyczynowe między atrybutami. Wierzchołki odpowiadają poszczególnym atrybutom, a krawędzie bezpośrednim zależnościom przyczynowym. Dodatkowo z każdym wierzchołkiem związany jest warunkowy rozkład prawdopodobieństwa. Sieć bayesowska w pełni określa łączny rozkład prawdopodobieństwa atrybutów, które opisuje. Przykładowa sieć bayesowska pokazana jest na rysunku 2.3. Zaletami sieci bayesowskich jako metody reprezentacji wiedzy jest przede wszystkich ich zrozumiałość. Zależności między atrybutami są przedstawione po prostu jako krawędzie w grafie. Sieć taka jest też łatwa w budowie. Wystarczy połączyć wierzchołki odpowiednimi krawędziami. Nie jest to zwykle trudne, gdyż ludzie zazwyczaj znakomicie radzą sobie z identyfikacją zależności przyczynowych [23]. Prawdopodobieństwa warunkowe można łatwo oszacować na podstawie danych. Dodatkową zaletą jest to, że sieć określa łączny rozkład prawdopodobieństwa, nie ma więc problemów z brakiem kompletności opisu. Niech będzie dane zdarzenie probabilistyczne A. Stopień w jakim zdarzenie to jest interesujące jest zdefiniowany następująco [16]: Inter(E) = |P BN (E) − P D (E)|, (2.4) to znaczy, bezwzględna różnica między prawdopodobieństwem tego zdarzenia obliczonego na podstawie sieci bayesowskiej i danych. Zdarzenia analizowane w pracy [16] mają postać atrybut1 = wartość1 ∧ atrybut2 = wartość2 ∧ . . . ∧ atrybutk = wartośćk . 13 (2.5) Rysunek 2.3: Przykład sieci bayesowskiej opisującej proste zdarzenia probabilistyczne. Algorytm przedstawiony w [16] pozwala na znalezienie wszystkich takich zdarzeń, które są w zadanym minimalnym stopniu interesujące. Głównym problemem z zastosowaniem sieci bayesowskich jest wysoka złożoność obliczeniowa znajdowania konkretnych prawdopodobieństw brzegowych, niezbędnych w równaniu 2.4. Problem ten jest bowiem NP-zupełny, a w czasie pracy algorytmu konieczne jest obliczenie tysięcy takich rozkładów brzegowych. Problem został rozwiązany poprzez obliczanie bezpośrednio z sieci tylko rozkładów o dużej liczbie atrybutów i obliczanie mniejszych rozkładów przez bezpośrednie sumowanie. Dodatkowo w pracy [15] przedstawiono przybliżony algorytm probabilistyczny, który działa dla sieci o nawet tysiącach atrybutów, dając jednak gwarancje dobrej jakości rozwiązań. Szczegółowy opis tych algorytmów wykracza poza ramy niniejszej pracy, można go znaleźć w [16, 15]. Zmiany których dokonano aby dostosować metodę do obecnie rozpatrywanego problemu Przedstawione wyżej algorytmy znajdowania interesujących koniunkcji względem sieci bayesowskich wymagały pewnych modyfikacji. Problem pojawił się w sytuacji, gdy do wierzchołka skierowana była duża liczba krawędzi. Wynikał z tego bardzo duży (rosnący wykładniczo) rozmiar warunkowego rozkładu prawdopodobieństwa w tym wierzchołku, co powodowało problemy dwojakiego rodzaju. Pierwszym problemem była duża zajętość pamięci. Drugim, trudności w wiarygodnym oszacowaniu tak dużej liczby wartości prawdopodobieństw. Na szczęście, większość z tych prawdopodobieństw jest równa zeru, problem zajętości pamięci został więc rozwiązany poprzez reprezentację rozkładu warunkowego jako listy niezerowych prawdopodobieństw. Drugi problem został rozwiązany przez zastosowanie tzw. korekty Laplace’a, to znaczy, zastosowanie jednostajnego rozkładu a-priori. Ważną zaletą tego podejścia jest to, że w jego wyniku otrzymujemy gotowy model probabilistyczny (sieć bayesowską), który możemy następnie wykorzystać do wnioskowania probabilistycznego. Sieć bayesowska jest na tyle elastyczna, że można z niej odczytać 14 Tablica 2.3: Krawędzie odpowiadające trywialnym, znanym a-priori zależnościom między atrybutami wynikającym ze sposobu agregacji danych i doboru atrybutów dodane do sieci przed uruchomieniem algorytmu. od pd1-il-pol pd2-il-pol pd3-il-pol usl1-il-pol usl2-il-pol usl3-il-pol usl4-il-pol pd1-czas-pol pd2-czas-pol pd3-czas-pol usl2-czas-pol usl3-czas-pol usl4-czas-pol usl2-il-pol usl3-il-pol usl4-il-pol pd1-il-pol pd2-il-pol pd3-il-pol ilosc-polaczen czas-polaczen do ilosc-polaczen ilosc-polaczen ilosc-polaczen ilosc-polaczen ilosc-polaczen ilosc-polaczen ilosc-polaczen czas-polaczen czas-polaczen czas-polaczen czas-polaczen czas-polaczen czas-polaczen usl2-czas-pol usl3-czas-pol usl4-czas-pol pd1-czas-pol pd2-czas-pol pd3-czas-pol sr-dlug-pol sr-dlug-pol uzasadnienie Ilość połączeń jest sumą ilości połączeń we wszystkich porach dnia. Ilość połączeń jest sumą ilości połączeń wszystkich usług. Czas połączeń jest sumą czasu połączeń we wszystkich porach dnia. Czas połączeń jest sumą czasu połączeń wszystkich usług. Ilość połączeń wpływa na czas połączeń. Średnią długość połączeń można wyznaczyć na podstawie sumarycznej długości połączeń i liczby połączeń. praktycznie dowolne parametry modelu. Wykorzystano to w rozdziale poniżej do szacowania prawdopodobieństw akceptacji przez klienta usługi w ofercie cross-sellingowej. 2.4.2 Budowa sieci Bayesowskiej Opiszemy teraz przebieg budowy sieci bayesowskiej na podstawie zbioru treningowego. Przed pierwszym uruchomieniem algorytmu do sieci zostały dodane krawędzie odpowiadające trywialnym, znanym a-priori zależnościom między atrybutami wynikającym ze sposobu agregacji danych i doboru atrybutów. Krawędzie te zostały wymienione w tabeli 2.3. Zauważmy, że sieć bayesowska dobrze modeluje zależności między tymi atrybutami. Np. ilości połączeń w poszczególnych porach dnia są od siebie w przybliżeniu niezależne. Jeśli jednak znana jest całkowita ilość połączeń, to stają się one zależne, dokładnie tak, jak to ‘interpretuje’ sieć. Poniższe tabele ilustrują proces budowy sieci Bayesowskiej opisującej zachowanie klientów. Każda nowa tabela przedstawia kolejne uruchomienie algorytmu i najbardziej 15 interesujące zdarzenie/zdarzenia (w sensie probabilistycznym), które zostały znalezione. Zdarzenia mają formę atrybut1 = wartość1 ∧ atrybut2 = wartość2 ∧ . . . ∧ atrybutk = wartośćk . Opis kolumn tabel: atrybuty atrybuty najbardziej interesującego zdarzenia, wartości wartości odpowiadające atrybutom w zdarzeniu, Inter. stopień w jakim zdarzenie jest interesujące, P BN prawdopodobieństwo zdarzenia obliczone na podstawie sieci bayesowskiej, P D prawdopodobieństwo zdarzenia w danych, wnioski interpretacja i wyjaśnienie zdarzenia, modyfikacje w sieci bayesowskiej dokonane na podstawie zdarzenia. pierwsze uruchomienie algorytmu atrybuty iloscpolaczen, rl, tpg, tpws wartości 2,N,N,N najbardziej interesujące zdarzenia Inter. P BN PD wnioski 0.200 0.1839 0.3845 Ilość połączeń wpływa na usługi dodatkowe klientów. Klienci, którzy mało dzwonią nie korzystają z tych usług. Dodano krawędzie od ilosc-polaczen do rl, tpg, tpws. kolejne uruchomienie algorytmu atrybuty pd2-czaspol, taryfa, rl, tpg, tpws wartości 1,2,N,N,N sr-dlugpol, rl 4,N sr-dlugpol, rl 3,N najbardziej interesujące zdarzenia Inter. P BN PD wnioski 0.179 0.0362 0.2153 Powiązanie tych zmiennych wydaje się zgodne z intuicją. Aby lepiej zrozumieć naturę tych zależności, sprawdzono najbardziej interesujące pary atrybutów: 0.153 0.2215 0.068 Klienci prowadzący długie rozmowy, mają większe prawdopodobieństwo włączonej usługi ‘rozmowy lokalne’. 0.140 0.2077 0.3478 Wniosek uznano za wiarygodny i dodano krawędź od sr-dlug-pol do rl. kolejne uruchomienie algorytmu 16 atrybuty pd2czas-pol, taryfa, rl, tpg, tpws usl4-il-pol, rl taryfa, pd2-czaspol wartości 1,2,N,N,N 2,T 1,2 najbardziej interesujące zdarzenia Inter. P BN PD wnioski 0.18011 0.0351 0.2153 Wzorzec ten ponownie był najbardziej interesującym, jednak ponownie sprawdzono pary atrybutów: 0.15 0.1680 0.0183 Wpływ ilości rozmów stacjonarnych na włączoną usługę ‘rozmowy lokalne’ wydaje się wiarygodny. Dodano krawędź od usl4-il-pol do rl 0.1425 0.0727 0.2153 Zależność czasu rozmów w ciągu dnia i taryfy. Dodano krawędź pd2-czas-pol do taryfa kolejne uruchomienie algorytmu atrybuty taryfa, rl, tpg, tpws wartości 1,N,N,N najbardziej interesujące zdarzenia Inter. P BN PD wnioski 0.151 0.1549 0.3058 Wpływ taryfy na włączone usługi. Klienci z tanią taryfą mało korzystają z telefonu, więc nie mają włączonych usług. Dodano krawędzie od taryfa do rl, tpg i tpws. kolejne uruchomienie algorytmu atrybuty sr-dlug-pol, tpg, tpws wartości 4,N,N najbardziej interesujące zdarzenia Inter. P BN PD wnioski 0.149 0.3134 0.1648 Klienci prowadzący długie rozmowy mają włączoną którąś z usług tpg lub tpws. Dodano krawędzie od sr-dlug-pol do tpg i tpws. kolejne uruchomienie algorytmu atrybuty iloscpolaczen, pd2-il-pol, rl, tpg, tpws najbardziej interesujące zdarzenia wartości Inter. P BN PD wnioski 2,2,N,N,N 0.167 0.1068 0.2738 Pora dnia 2 odpowiada za połączenia w ciągu dnia, więc mówi dużo o profilu klienta. Dodano krawędzie: od pd2-il-pol do rl, tpg i tpws. Sieć bayesowska powstała ostatecznie po zastosowaniu algorytmu została przedstawiona na rys. 2.4 17 pd_2-il-pol usl_1-il-pol pd_2-czas-pol ilosc-polaczen pd_1-il-pol pd_3-il-pol pd_1-czas-pol pd_3-czas-pol usl_2-il-pol usl_2-czas-pol usl_3-il-pol usl_3-czas-pol usl_4-il-pol usl_4-czas-pol czas-polaczen 18 taryfa tpws sr-dlug-pol tpg rl Rysunek 2.4: Sieć bayesowska skonstruowana na podstawie analizy danych o zachowaniu klientów. Kolorem czarnym oznaczono znane a-priori zależności, wynikające ze sposobu agregacji danych, kolorem czerwonym zależności odkryte przy pomocy algorytmu. 2.4.3 Testowanie rozwiązania Rzetelne przetestowanie jakości systemu cross-sellingowego w warunkach off-line’owych jest trudne. Prawdziwy test powinien polegać na wysłaniu testowej grupie klientów ofert rekomendowanych przez system, a następnie zbadaniu, ilu z nich odpowiedziało na ofertę pozytywnie. Procedurę należy powtórzyć dla innej grupy klientów z ofertami wybranymi losowo (lub np. inną dotychczas używaną metodą). Wyniki obu grup są następnie porównywane, aby stwierdzić, czy system uzyskał wyniki lepsze od losowych (lub uzyskanych dotychczas stosowanymi metodami). Wykonanie podobnego testu w ramach pracy nie było, niestety, możliwe. Zastosowano więc symulację przybliżającą warunki rzeczywistego testu. Uznajemy, że oryginalny zestaw usług każdego użytkownika ze zbioru testowego obejmuje usługi, które użytkownik już ma aktywne, lub które byłby skłonny aktywować w wyniku kampanii reklamowej (zbiór A). Dla każdego klienta usuwano losowo część usług, z których korzystał (każda z usług była usuwana z 50% prawdopodobieństwem). Ten nowy zbiór (zbiór B) jest traktowany jako zbiór usług, które użytkownik ma aktywne już przed kampanią reklamową, nie należy mu ich więc oferować. Następnie, obliczano na podstawie sieci Bayesa prawdopodobieństwa, że dany klient będzie miał aktywowaną każdą z usług, z których nie korzystał (nie były elementami zbioru B). Usługa o największym prawdopodobieństwie była wybierana jako oferta dla klienta. Dla porównania wybierano też losowo jedną z ofert, której klient nie miał (spoza zbioru B). Oferta została uznana za przyjętą, jeśli znajdowała się w zbiorze A danego klienta (tzn. jeśli była aktywna u klienta w zbiorze testowym przed jej usunięciem). Na zbiorze testowym obliczono następnie procent ofert, które zostały ‘przyjęte’ – znajdowały się w zbiorze A danego klineta. Wyniki przedstawione są w tabeli poniżej: procent ofert na podstawie sieci Bayesa procent przyjętych ofert losowych 22.84% 12.83% Widać więc, że sieć Bayesa zapewniła prawie dwukrotnie wyższą skuteczność niż składanie losowych ofert. Należy też zaznaczyć, że w zbiorze testowym 53.59% klientów nie miało aktywnej żadnej z ofert, co w naszym teście odpowiada odrzuceniu przez klienta każdej możliwej oferty. Ponieważ ponad 50% ofert musiało się zakończyć odrzuceniem, skuteczność ponad 22% należy uznać za bardzo wysoką. 2.5 Cross-selling oparty na klasyfikatorach W niniejszym punkcie przedstawione zostanie drugie podejście do cross-sellingu oparte na klasyfikatorach. Dla każdej z usług, które chcemy promować, budowany jest model klasyfikacyjny, który szacuje prawdopodobieństwo, że dany klient posiada tą usługę. Jak już pisano wyżej, nie jest to optymalne rozwiązanie problemu. Potencjalni nowi klienci mogą być zupełnie niepodobni do klientów już korzystających z usługi. Lepszym rozwiązaniem byłoby wysłanie oferty pilotowej i budowa klasyfikatora na podstawie jej 19 wyników. W ten sposób mamy większą szansę na dotarcie do zupełnie nowych grup klientów. W obecnym eksperymencie (a często jest tak również w przypadku rzeczywistych kampanii) podejście takie nie było możliwe. W pracy wykorzystano cztery algorytmy klasyfikacji zaimplementowane w pakiecie Weka [34]: naiwny klasyfikator bayesowski, drzewa decyzyjne (J4.8), algorytm AdaBoostM1 czyli wzmocnione (ang. boosted) drzewa decyzyjne oraz maszyny wektorów nośnych. Metody te zostały pokrótce scharakteryzowane poniżej. Naiwny klasyfikator bayesowski. Klasyfikator ten jest jednym z najprostszych, a mimo to często daje wyniki porównywalne, a nawet lepsze od innych bardziej skomplikowanych metod [34, 21]. Przypuśćmy, że chcemy przewidzieć klasę Y na podstawie zbioru atrybutów X1 , X2 , . . . , Xn . Na podstawie twierdzenia Bayesa mamy P (X1 = xi1 , ∧ . . . ∧, Xn = xin |Y = yi ) · P (Y = yi ) . P (X1 = xi1 ∧ . . . ∧ Xn = xin ) (2.6) Następnie stosujemy tak zwane ‘naiwne założenie’, od którego klasyfikator wywodzi swą nazwę. Zakłada ono, że zmienne X1 , . . . , Xn są warunkowo niezależne przy zadanej wartości Y , co daje P (Y = yi |X1 = xi1 , ∧ . . . ∧, Xn = xin ) = P (Y = yi |X1 = xi1 , ∧ . . . ∧, Xn = xin ) = P (X1 = xi1 |Y = yi ) · · · P (Xn = xin |Y = yi ) · P (Y = yi ) . = P (X1 = xi1 ∧ . . . ∧ Xn = xin ) (2.7) Zauważmy teraz, że P (X1 = xi1 ∧ . . . ∧ Xn = xin ) nie zależy od Y , a ponadto, że przy zadanych wartościach X1 , . . . , Xn , P (Y = yi |X1 = xi1 , ∧ . . . ∧, Xn = xin ) jest po prostu rozkładem prawdopodobieństwa zmiennej Y , a więc prawdopodobieństwa te muszą się sumować do jedności. Wynika stąd, że możemy pominąć mianownik powyższego ułamka, przeskalowując po prostu prawdopodobieństwa poszczególnych wartości Y tak by sumowały się do jedności. Daje nam to końcowy wzór P (Y = yi |X1 = xi1 , ∧ . . . ∧, Xn = xin ) ∝ P (X1 = xi1 |Y = yi ) · · · P (Xn = xin |Y = yi ) · P (Y = yi) (2.8) W przypadku zmiennych ciągłych stosuje się założenie warunkowej normalności rozkładu, dyskretyzację lub estymację jądrową rozkładów warunkowych [34, 21] Drzewa decyzyjne. Innym zastosowanym algorytmem są drzewa decyzyjne. Drzewo decyzyjne jest graficznym przedstawieniem algorytmu podejmowania konkretnej decyzji. Przykładowe drzewko decyzyjne, ilustrujące algorytm przyznawania kredytu bankowego, pokazane jest na rysunku 2.5. Podejmowanie decyzji rozpoczyna się w korzeniu drzewa. W każdym z węzłów dokonujemy testu i na podstawie jego wyników wybieramy lewego lub prawego potomka. Procedurę powtarzamy, aż do osiągnięcia decyzji w liściu drzewa. W literaturze podano szereg algorytmów automatycznego budowania drzew decyzyjnych na podstawie zbioru treningowego. Ogólny schemat takiego algorytmu pokazany jest na rysunku 2.6 20 Rysunek 2.5: Przykładowe drzewo decyzyjne wejście: zbiór danych D = {(Xi , Yi)} wyjście: drzewo decyzyjne przewidujące Y 1. Jeżeli |D| = 1 zwróć liść drzewa ze średnią wartością Y w D 2. Wybierz test w korzeniu drzewa 3. Podziel D na podstawie znalezionego testu na Dnie i Dtak 4. Wykonaj algorytm rekurencyjnie na Dnie aby otrzymać poddrzewo Tnie 5. Wykonaj algorytm rekurencyjnie na Dtak aby otrzymać poddrzewo Ttak 6. Zwróć drzewo ze znalezionym testem korzeniu, lewym potomkiem Tnie i prawym potomkiem Ttak Rysunek 2.6: Ogólny schemat algorytmu budowania drzewa decyzyjnego 21 Po zbudowaniu drzewa powyższą metodą następuje bardzo ważny etap jego przycinania, tzn. usuwania gałęzi drzewa, które nie poprawiają dokładności klasyfikacji. Ma to na celu zapobieganie zjawisku przeuczenia, które zachodzi wtedy, kiedy klasyfikator nauczy się bardzo dobrze zbioru trenującego, ale nie będzie w stanie generalizować na nowe przykłady. Szczegóły algorymu takie jak sposób wyboru testu w korzeniu drzewa czy metoda przycinania zależą od konkretnego algorytmu. Szczegóły można znaleźć w pracach [34, 28]. W pracy zastosowano algorytm J4.8 będący ulepszeniem algorytmu C4.5 Rossa Quinlana [28]. Boosting. Boosting jest metodą polepszania dokładności istniejących klasyfikatorów [9, 34]. Na błąd danego klasyfikatora wpływają dwa składniki: 1. obciążenie (ang. bias) - jest to niedokładność wynikająca ze zbytniego uproszczenia modelu klasyfikacji, który nie jest w stanie oddać w pełni modelowanego zjawiska. Przykładem może być tu zastosowanie modelu liniowego do opisu nieliniowego zjawiska, 2. wariancja - jest to niedokładność wynikająca z błędów w oszacowaniu parametrów modelu. W powyższym przykładzie byłaby to niedokładność w oszacowaniu współczynników regresji liniowej. Ogólnie, każdy model klasyfikacji obarczony jest oboma tymi błędami. Przy czym, im mniejsze jest obciążenie danego algorytmu, tym większa jest jego wariancja. Istnieje jednak kilka technik pozwalających zmniejszyć wariancję modelu. Najprostszą z nich jest bagging. Technika ta polega na pobraniu ze zbioru uczącego dużej liczby (setek, tysięcy) podpróbek. Na każdej takiej podpróbce budowany jest osobny model klasyfikacyjny. Modele te tworzą następnie tak zwany komitet. Dla każdego nowego przykładu wyznaczana jest predykcja każdego z klasyfikatorów, a ostatecznym wynikiem jest klasa, na którą ‘głosowało’ najwięcej z nich. Lepszą metodą zmniejszania wariancji, która dysponuje również potencjałem zmniejszania obciążenia, jest boosting [9]. Idea metody jest następująca: na początkowym zbiorze danych budowany jest klasyfikator. Każdy rekord zbioru danych otrzymuje następnie wagę, przy czym waga rekordów zaklasyfikowanych poprawnie jest zmniejszana, a tych zaklasyfikowanych niepoprawnie zwiększana. Na tym zbiorze budowany jest kolejny klasyfikator i proces jest powtarzany. Jak poprzednio otrzymujemy w ten sposób komitet klasyfikatorów. W [9] poddano metodę boostingu szczegółowej analizie i wykazano, że w rzeczywistości buduje ona model regresji logistycznej, w której zamiast prostych zmiennych występują klasyfikatory. Dzięki temu metoda ta dysponuje potencjałem obniżania zarówno obciążenia, jak i wariancji klasyfikatora bazowego. W pracy użyto metody AdaBoostM1 [34, 9], a klasyfikatorem bazowym było drzewo decyzyjne J4.8. Maszyny wektorów nośnych. Ostatnią z opisanych metod klasyfikacji jest najnowsze podejście oparte na tak zwanych maszynach wektorów nośnych [7, 33]. Metoda ta 22 pozwala na klasyfikację nieliniowych problemów, dając przy tym pewne gwarancje na jakość generalizacji na nowe, niewidziane wcześniej przykłady. Załóżmy, że klasyfikowane obiekty są wektorami w przestrzeni Rn . Dwie klasy obiektów nazywamy liniowo separowalnymi, jeżeli istnieje n − 1-wymiarowa hiperpłaszczyzna w Rn rozdzielająca te dwie klasy obiektów. Maszyny wektorów nośnych klasyfikują zapewniając odpowiedniu margines separacji co gwarantuje zdolność do generalizacji. W przypadku problemów nieseparowalnych stosuje się odpowiednie uogólnienie pojęcia marginesu pozwalające na zachowanie zdolności generalizacji. Dla zwiększonej wydajności jedynie przykłady uczące leżące w pobliżu płaszczyzny separacji są brane po uwagę. Są to wektory nośne od których klasyfikator ten bierze swoją nazwę. Metoda pozwalająca maszynom wektorów nośnych wyjść poza problemy liniowe opiera się na obserwacji, że problemy, które nie są liniowo separowalne, mogą stać się liniowo separowalnymi po ich nieliniowej transformacji do przestrzeni o wyższej wymiarowości. Nieliniowa transformacja jest dokonywana przy pomocy tak zwanych jąder. Jądrem nazywamy funkcję K taką, że dla wszystkich x, z ∈ Rn K(x, z) = hφ(x), φ(x)i , (2.9) gdzie φ jest nieliniowym przekształceniem wektorów wejściowych, a < ·, · > oznacza iloczyn skalarny wektorów. Końcowy model wyrażony jest jako liniowa kombinacja jąder, i przekształcenie φ nie jest jawnie tworzone. Pozwala to na znaczne zwiększenie wydajności, a nawet pracę w przestrzeniach o nieskończonej liczbie wymiarów, jak to ma miejsce na przykład dla jąder gaussowskich. Książka [7] zawiera znakomite wprowadzenie do maszyn wektorów nośnych, a praca [33] jej podstawy teoretyczne. 2.5.1 Wyniki testów Metody zostały przetestowane w taki sam sposób jak metoda z użyciem sieci bayesowskiej. Spośród usług, których klient nie miał już włączonych, wybierana jest ta, której odpowiadający jej klasyfikator przypisuje najwyższe prawdopodobieństwo akceptacji. Ocena błędu również dokonywana jest tak, jak w przypadku eksperymentu z siecią bayesowską. Wyniki (procent przyjętych ofert) podane są w tabeli poniżej. naiwny klasyfikator Bayesa drzewo decyzyjne (J4.8) AdaBoostM1 (J4.8) maszyna wektorów nośnych oferta losowa 20.54% 27.93% 26.19% 28.15% 12.83% Można zauważyć, że naiwny klasyfikator bayesowski, będący najprostszą użytą metodą klasyfikacji, dał zdecydowanie najgorsze wyniki. Pozostałe trzy metody dały bardzo zbliżone wyniki, chociaż komitet drzew decyzyjnych i maszyna wektorów nośnych była nieco lepsza. Można zauważyć, że prawie 30% ofert zostało przyjętych co oznacza bardzo wysoką skuteczność. 23 2.6 Wnioski i przyszłe kierunki badań Można zauważyć, że metody oparte na klasyfikatorach osiągały generalnie (za wyjątkiem naiwnego klasyfikatora bayesowskiego) lepsze rezultaty niż metoda oparta na sieci bayesowskiej. Należy jednak zaznaczyć, że metody te nie dają modeli zrozumiałych dla użytkownika. Jest tak nawet w przypadku drzew decyzyjnych, gdzie drzewa osiągają często bardzo duże rozmiary, znacznie utrudniające ich zrozumienie. Korelacja zmiennych predykcyjnych również utrudnia zrozumienie modelu. Trudno jest w związku z tym podejmować na podstawie tych modeli decyzje inne niż ta, do których klientów należy skierować promocję. Innymi słowy metody te nie dają odpowiedzi na pytanie, dlaczego skierowanie akcji marketingowej do danej grupy daje dobre wyniki, albo, jak zaprojektować akcję reklamową, aby zmaksymalizować liczbę klientów, którzy z niej skorzystają. Metoda oparta na sieciach bayesowskich, chociaż daje nieco gorszą jakość klasyfikacji, zapewnia pełny wgląd w zależności między danymi. W procesie budowy sieci „uczymy” się danych, a ostatecznie otrzymujemy model opisujący w graficzny sposób nie tylko wpływ predyktorów na zmienne docelowe, ale także wzajemne zależności między predyktorami. Możemy więc zrozumieć, jak zmiana jednego z parametrów oferty wpłynie na rozkłady prawdopodobieństwa różnych parametrów klientów. Pierwszym kierunkiem przyszłych badań będzie ulepszenie modelu sieci bayesowskiej tak, aby warunkowe rozkłady prawdopodobieństwa mogły być reprezentowane przy pomocy dowolnych klasyfikatorów. Powinno to pozwolić tej metodzie osiągnąć dokładność porównywalną z metodami opartymi na klasyfikatorach. W dalszej perspektywie interesujące byłoby stworzenie modelu, który przewidywałby popyt na nową usługę na podstawie jej właściwości, zanim jeszcze zostanie zaoferowana. Sieć bayesowska opisująca zachowanie i preferencje klientów mogłaby stanowić punkt wyjścia dla takiego modelu. Na podstawie takiej sieci można by wnioskować o prawdopodobieństwie zakupu danej usługi (grupy usług) przez konkretnego klienta lub grupę klientów. Model taki byłby potencjalnie bardzo użyteczny. Korzystne byłoby też połączenie modelu zachowań klientów z modułem przewidywania długoterminowej wartości klienta. 24 Rozdział 3 Wartość Życiowa Klienta (Lifetime Value) W niniejszej części zajmiemy się wartością życiową klienta (ang. lifetime value, LTV), to znaczy oszacowaniem, ile dany klient będzie dla nas wart w przyszłości. Oczywiście nie chodzi nam zawsze o całkowity przyszły staż klienta w firmie, możemy być też zainteresowani krótszym horyzontem czasowym, np. rocznym, a nawet miesięcznym. Krótkie horyzonty czasowe są szczególnie często spotykane w przypadku szybko zmieniającego się rynku usług telekomunikacyjnych. W większości firm zaledwie 20% klientów zapewnia 80% zysków firmy. Ważne jest, zatem, aby firma wiedziała, w kogo inwestować i kto należy do jej najcenniejszych klientów. Aby zdobyć taką wiedzę, oblicza się wartość życiowa klienta. Innym z zastosowań jest prognozowanie wartości całych segmentów klientów lub nawet dochodu całej firmy w najbliższych kilku miesiącach. W tym celu należy zsumować wartość życiową wszystkich klientów danego segmentu lub zastosować którąś z metod szacowania LTV do całego segmentu. 3.1 Przegląd literatury Przedstawimy teraz pokrótce modele LTV stosowane w literaturze. Przed przestawieniem konkretnych rozwiązań podamy ogólny model, stosowany w większości z nich (z mniejszymi lub większymi modyfikacjami): LT V = n X i=1 Mi (1 − Pich )(1 − Pidf ) , (1 + d)i (3.1) gdzie: Mi - przeiwdywany zysk pochodzący od klienta w okresie i Pich - prawdopodobieństwo, że klient dobrowolnie zrezygnuje z usług w lub przed okresem i (ang. churn) Pidf - prawdopodobieństwo, że klient zostanie w lub przed okresem i deaktywowany np. z powodu niepłacenia rachunków (ang. default) 25 d - stopa dyskonta, określa ile złotówka zarobiona dziś będzie dla nas warta po upływie jednego okresu rozliczeniowego Interpretacja powyższego wzoru jest oczywista. Całkowity zysk, który klient nam przyniesie, jest sumą prognozowanych zysków w okresie, w którym klient z nami pozostanie (po uwzględnieniu stopy dyskonta). W literaturze dostępnych jest kilka prac na temat przewidywania wartości życiowej klienta. Poniżej zostaną one krótko omówione. W [8] przedstawiono opis wdrożenia systemu LTV w dużej firmie telekomunikacyjnej. Użyty model miał następującą postać LT V = n X i=1 M0 (1 − P ch )i (1 − P df )i , (1 + d)i (3.2) to znaczy przyjęto, że zysk z klienta, który z nami pozostanie jest stały i oszacowano go przy pomocy zysku, który dany klient przyniósł w ostatnim miesiącu. Przyjęto też stałe prawdopodobieństwo odejścia klienta zarówno dobrowolnego jak i niedobrowolnego. Przedstawiona jest też prosta metoda analizy wpływu poszczególnych czynników na LTV klienta oparta na sprawdzeniu, jak każdy z nich wpływał na M0 . Arykuł opisuje też szczegółowo wszystkie kroki i przeszkody administracyjne, jakie wiążą się z faktycznym wdrożeniem takiego projektu w dużej firmie. W [20] opisano prosty wariant modelu: LT V = MM n X i=1 Pich , (1 + d)i−1 (3.3) gdzie Pich jest obliczane na podstawie systemu prognozowania lojalności klientów. MM oznacza średni zysk z klienta za ostatnie trzy miesiące. Podobny model pokazany jest w [30]. Szacowanie prawdopodobieństwa klienta odbywa się tutaj uproszczoną metodą na poziomie segmentów. Segmenty budowane są na podstawie drzewa decyzyjnego przewidującego lojalność klienta — każdy liść drzewa stanowi pojedynczy segment. Wewnątrz segmentu prawdopodobieństwo odejścia klienta zależne jest tylko od długości jego stażu w firmie, co pozwala uwzględnić fakt, że w okresie zobowiązania lojalnościowego klienta (np. roczna umowa) prawdopodobieństwo odejścia jest znikome a po tym okresie gwałtownie rośnie. Dodatkowo zaimplementowany jest system oceny skuteczności akcji promocyjnych opierający się na analizie wpływu poszczególnych czynników na zysk w ostatnim miesiącu. W [26] opisano wariant powyższego modelu, w którym zamiast szacowania prawdopodobieństwa odejścia klienta szacuje się tzw. funkcję ryzyka (ang. hazard function). Podane są też proste modele prognozowania zysku Mi oparte o model liniowy uwzględniający fakt, że stali klienci są bardziej wartościowi dla firmy niż to sugeruje sama wartość przychodu (np. zachęcają oni swoich znajomych itp.). Praca [12] stanowi przegląd różnych modeli LTV od prostych do bardziej złożonych. Wszystkie one są mniej lub bardziej złożonymi reprezentantami przedstawionego wyżej schematu. W [29], przeprowadzono statystyczną analizę długofalowych związków usługodawcy z klientem. Skupiono się na związkach nie opartych na czasowych kontraktach. Choć 26 obliczanie wartości życiowej klienta samo w sobie nie jest głównym tematem artykułu, stanowi on cenne (a przy tym formalne), z punktu widzenia marketingowego, źródło wiedzy na ten temat. Bardzo interesujące podejście zostało przedstawione w pracy [24]. Polega ono na zbudowaniu kompleksowego modelu wpływu akcji marketingowych na przyszłe zachowanie klienta w oparciu o uczenie ze wzmocnieniem (ang. reinforcement learning) [18]. System daje też model decyzyjny, który przewiduje, jakie akcje marketingowe należy podjąć wobec każdej grupy klientów, aby zmaksymalizować ostateczny zysk. Podejście to, gdyby okazało się skuteczne, mogłoby być ostatecznym rozwiązaniem problemu wartości życiowej klienta. Brak jest jednak rzeczywistych danych potwierdzających jego skuteczność. Wymagałoby to używania systemu przez dłuższy czas w rzeczywistym środowisku. Jest to oczywiście trudne, tym bardziej, że system musiałby mieć możliwość bezpośredniego wpływania na klientów, a wpływ ten niekoniecznie musi być pozytywny, może np. służyć poznaniu zachowań danej grupy klientów pod wpływem danego typu kampanii i jako efekt uboczny tę grupę odstraszyć. Autorzy pokazują działanie systemu w oparciu o symulacje jego wpływu na klientów, co oczywiście nie gwarantuje sukcesu w rzeczywistych zastosowaniach. W pracy [5] przedstawiono analizę modeli opisujących szeroko pojętą wartość grup ludzkich i jej ewolucję. Przedstawione metody są bardzo ogólne i nakierowane głównie na socjologiczne aspekty analizy problemu. Przegląd badań na temat prognozowania LTV wykonanych w ramach niniejszej pracy. W większości przedstawianych wyżej modeli autorzy skupiali się głównie na wzajemnym połączeniu predykcji lojalności klienta z predykcją zysków w razie jego pozostania w firmie. Dobre modele lojalnościowe są już wdrożone w PTK Centertel, więc nie zajmowano się w pracy tym tematem. W przedstawionych wyżej pracach predykcja zysków klienta w przypadku jego pozostania w firmie była wykonywana bardzo prostymi metodami, w niniejszej pracy skupiono się więc na tym problemie. Zadanie przywidywania zysku klientów pozostających w firmie jest w istocie zadaniem predykcji szeregów czasowych. Charakterystyka problemu jest jednak diametralnie różna od klasycznych prac na ten temat. W klasycznej analizie i predykcji szeregów czasowych [25] mamy do czynienia z niewielką ilością (klika) długich (setki, tysiące punktów) szeregów czasowych. W przypadku usług telekomunikacyjnych z kolei mamy tysiące lub wręcz miliony krótkich (kilka, kilkanaście, kilkadziesiąt punktów) szeregów czasowych. Jest to często spowodowane bardzo krótkimi stażami klientów w firmie, zwłaszcza na rynku pre-paid. W niniejszych rozdziałach przedstawiono wyniki na rzeczywistych danych PTK Centertel oraz na działanie bardziej zaawansowanych metod na innych danych przykładowych. Korzystanie z danych rzeczywistych było ograniczone z uwagi na trudności w dostępie do nich, a także z uwagi na małą dostępność zasobów (przestrzeń dyskowa i czas procesora) w PTK Centertel. 27 3.2 Badania na rzeczywistych danych PTK Centertel W niniejszej części przedstawimy badania na danych rzeczywistych. Dostęp do danych i mocy obliczeniowej był, niestety, ograniczony, więc skupiono się na najważniejszych aspektach projektu. 3.2.1 Prognozowana wielkość, przygotowanie danych i ocena dokładności Obliczenie faktycznego zysku, jaki klient przynosi, wymaga uwzględnienia szeregu parametrów takich jak ilość połączeń wliczonych dla danego klienta w abonament, cena usługi w danym planie taryfowym itp. Uznano zatem, że lepiej będzie przewidywać intensywność korzystania z usług przez klienta, a nie konkretny zysk. Ma to też tę zaletę, że predykcja staje się niezależna od cen usług i czasowych promocji. Dodatkowo, obliczenie zysku przy znanej intensywności korzystania z usług jest zadaniem prostym. Do prognozowania wybrano ilość SMSów wysłanych przez danego klienta w danym miesiącu. Zdecydowano się na tą usługę z uwagi na jej powszechność oraz wysoki udział w polskim rynku usług telefonii komórkowej (znacznie wyższy niż np. rozmowy głosowe). Przewidywano ilość SMSów wysłanych w kwietniu 2006 roku na podstawie danych o ilości SMSów wysłanych w miesiącach od listopada 2005 do marca 2006. Z uwagi na ograniczenia czasu procesora na maszynach PTK Centertel badania wykonano na próbce losowej 4563 klientów. Próbka ta została podzielona na zbiór treningowy (2466 rekordów) i testowy (2097 rekordów). W przypadku budowy wspólnego modelu dla wszystkich klientów, liczba SMSów była uprzednio normalizowana. Liczby wysłanych wiadomości dla każdego użytkownika traktowano jako wektor, który był następnie normalizowany tak, że jego norma euklidesowa wynosiła 1. Ma to na celu umożliwienie modelom lepszego radzenia sobie z dużą zmiennością liczby wysyłanych wiadomości u różnych użytkowników. Rozbieżności te mogą być bardzo duże, od kilku do nawet kilku tysięcy SMSów. Po dokonaniu predykcji jej wynik był oczywiście skalowany tak, by odpowiadał początkowej wielkości. W celu oszacowania dokładności, budowane na zbiorze treningowym modele uruchamiano na zbiorze testowym, stosując jednak przesunięcie o jeden miesiąc. To znaczy, na zbiorze testowym badano jakość predykcji ilości SMSów wysłanych w maju 2006 na podstawie ilości SMSów wysłanych w miesiącach od grudnia 2005 do kwietnia 2006. Miało to na celu upodobnienie eksperymentów do rzeczywistej sytuacji, gdzie na podstawie przeszłych danych przewidujemy wartości na kolejny miesiąc. Przewidywania były testowane na dwóch poziomach: 1. przewidywanie ilości SMSów wysłanych przez każdego z użytkowników, 2. przewidywanie ilości SMSów wysłanych przez wszystkich klientów (w naszym przypadku, wszystkich w danej próbce). W pierwszym przypadku dla oceny dokładności korzystano z pierwiastka błędu średniokwadratowego (RMSE - ang. root mean squared error) danego następującym wzorem v u n u1 X RMSE = t (ŷi − yi)2 . (3.4) n i=1 28 Obliczamy też odchylenie standardowe przewidywanej wartości (na podstawie zbioru testowego): v u n u1 X (yi − ȳ)2 . (3.5) SD = t n i=1 Intuicyjnie, pierwiastek błędu średniokwadratowego określa nam jaką część odchylenia standardowego przewidywanej wartości jesteśmy w stanie wyjaśnić. Np. jeżeli odchylenie standardowe wynosi 1, a pierwiastek błędu średniokwadratowego 0.7, oznacza to w przybliżeniu, że nasz model wyjaśnia 70% obserwowanej zmienności przewidywanej wartości. W drugim przypadku (całkowita liczba wysłanych SMSów) porównywano po prostu liczbę rzeczywistą z oszacowaniem i obliczano błąd względny. 3.2.2 Proste modele bazowe Na początku zostały przebadane proste modele bazowe. Jako pierwszy predyktor zastosowano po prostu ilość SMSów wysłanych w ostatnim miesiącu, tak jak w pracach [8, 30]. Osiągnięte wyniki przedstawiono w tabeli poniżej: Pojedynczy klienci wartość średnia (rzeczywista) odchylenie standardowe pierwiastek błędu średniokwadratowego 1 - RMSE / odchylenie standardowe Suma wysłanych SMSów rzeczywista liczba wysłanych SMSów przewidywana liczba wysłanych SMSów błąd względny 64.626 123.307 57.329 53.5% 135520.00 135155.00 0.269% Można zauważyć, że jakość predykcji dla poszczególnych użytkowników obarczona jest sporym błędem. Model jest w stanie wyjaśnić jedynie nieco ponad pięćdziesiąt procent zmienności przewidywanej zmiennej. Niemniej jednak, należy zaznaczyć, że dokładność ta jest znacznie lepsza niż w przypadku predykcji losowej. Zupełnie inaczej wygląda sytuacja w przypadku predykcji dla całego segmentu. Błąd względny jest tutaj dużo niższy niż 1%. Przyczyną takiej sytuacji jest fakt, że błędy w przewidywaniach dla poszczególnych użytkowników niwelują się nawzajem. Kolejnym bardzo prostym predyktorem, który został przebadany, jest średnia liczba SMSów wysłanych w ciągu ostatnich 5 miesięcy, podobnie jak w pracy [20]. Pojedynczy klienci wartość średnia (rzeczywista) odchylenie standardowe pierwiastek błędu średniokwadratowego 1 - RMSE / odchylenie standardowe Suma wysłanych SMSów rzeczywista liczba wysłanych SMSów przewidywana liczba wysłanych SMSów błąd względny 29 64.626 123.307 67.144 45.5% 135520.00 132346.60 2.34% Tablica 3.1: Współczynniki modelu regresji liniowej przy przewidywaniu liczby SMSów wysłanych przez klienta. Zmienna Wyraz wolny liczba SMSów liczba SMSów liczba SMSów liczba SMSów liczba SMSów listopad 2005 grudzień 2005 styczeń 2006 luty 2006 marzec 2006 współczynnik 0.260 -0.056 -0.038 -0.038 -0.013 0.121 poziom istotności <.0001 0.0076 0.0280 0.1103 0.5975 <.0001 Wyniki są tutaj wyraźnie gorsze niż w przypadku predykcji na podstawie tylko liczby SMSów w ostatnim miesiącu. Pierwiastek błędu średniokwadratowego jest w tym przypadku o ponad 15% wyższy niż w przypadku tylko ostatniego miesiąca. 3.2.3 Modele statystyczne Następnym krokiem było przetestowanie wybranych modeli statystycznych pakietu SAS. Regresja liniowa. Pierwszym zastosowanym modelem była regresja liniowa. Uzyskane współczynniki, a także ich poziomy istotności są przedstawione w tabeli 3.1. Można zauważyć, że najbardziej znaczącymi składnikami modelu jest wyraz wolny i liczba SMSów wysłanych w ostatnim miesiącu. Potwierdza to wyniki uzyskane wyżej dla modeli bazowych. Interesującym faktem jest to, że oprócz ostatniego miesiąca statystycznie znaczące są też listopad i grudzień roku poprzedniego, choć wpływ ich nie jest wielki. W oparciu o posiadane dane trudno jest wyjaśnić te zależności. Grudzień jest w telefonii bardzo ważnym miesiącem z uwagi na wzmożony ruch w okresie świąt Bożego Narodzenia. Nie jest tak jednak w przypadku listopada. Dodatkowo nie jest jasne, dlaczego (z uwagi na ujemne współczynniki) osoby wysyłające mniej SMSów w grudniu miałyby ich wysyłać więcej w kwietniu. Możliwe jest też, że z uwagi na dość małą wielkość próbki, współczynniki te są statystycznymi artefaktami. Dokładność predykcji przy użyciu modelu regresyjnego podana jest w tabeli poniżej: Pojedynczy klienci wartość średnia (rzeczywista) odchylenie standardowe pierwiastek błędu średniokwadratowego 1- RMSE / odchylenie standardowe Suma wysłanych SMSów rzeczywista liczba wysłanych SMSów przewidywana liczba wysłanych SMSów błąd względny 30 64.626 123.307 54.438 55.9% 135520.00 132346.60 3.129% Można zauważyć, że jeśli chodzi o dokładność przewidywań dla poszczególnych użytkowników, jest ona w przypadku regresji liniowej nieco lepsza od przewidywania tylko na podstawie ostatniego miesiąca. Jednak, prognoza całkowitej liczby wysłanych SMSów jest mniej dokładna. Regresja lokalna (LOESS) Regresja lokalnie ważona (LOESS) jest metodą pozwalającą ominąć niektóre ograniczenia regresji liniowej. Metoda polega na wyborze w przestrzeni danych szeregu punktów. W pewnym otoczeniu każdego z tych punktów budowany jest oddzielny model regresji liniowej lub wielomianowej. Kiedy pojawia się nowa dana do predykcji, identyfikuje się najpierw punkty użyte przy budowie modelu leżące najbliżej niej. Następnie oblicza się dla tej danej przewidywaną wartość na podstawie każdego z tych modeli. Ostatecznym wynikiem jest suma ważona tych predykcji, przy czym wagi są zależne od odległości od punktów, w otoczeniu których budowano modele lokalne. Zaletą metody jest to, że obejmuje ona znacznie większą klasę modeli, niż np. regresja liniowa lub wielomianowa. Pozwala ona też adaptować model w zależności od konkretnej grupy danych wejściowych. W przypadku niniejszej pracy oznacza to, że możemy zastosować inny model do każdej lokalnej grupy klientów. Chcemy tu osiągnąć efekt podobny do tego z którego korzystano w pracy [30], gdzie różne współczynniki lojalności klientów stosowano w różnych segmentach rynku. Implementacja regresji lokalnej w pakiecie SAS nie jest wprawdzie dokładnie opisana, pewne szczegóły jej działania są jednak znane. Najpierw budowane jest tak zwane k-d drzewo. Jest to wielowymiarowe uogólnienie drzew przeszukiwań binarnych. W każdym liściu drzewa budowany jest model regresji wielomianowej. Nowy punkt klasyfikowany jest na podstawie ważonych predykcji modelu w liściu drzewa, w którym się ten punkt znajduje, i liści sąsiednich. Dokładność klasyfikacji przy pomocy metody regresji lokalnej jest przedstawiona w tabeli poniżej. W każdym z liści stopień regresji wielomianowej wynosił 1, tzn. budowano modele regresji liniowej. Pojedynczy klienci wartość średnia (rzeczywista) odchylenie standardowe pierwiastek błędu średniokwadratowego 1- RMSE / odchylenie standardowe Suma wysłanych SMSów rzeczywista liczba wysłanych SMSów przewidywana liczba wysłanych SMSów błąd względny 64.626 123.307 84.94 31.1% 135520.00 75254.26 44.46% Jak widać w powyższej tabeli, wyniki metody regresji lokalnej są rozczarowujące. Dokładność jest bardzo niska, zarówno dla pojedynczych użytkowników, jak i dla całej próbki. Być może przyczyną jest tu niska liczebność próbki. Zostanie to sprawdzone w przyszłości. 31 Tablica 3.2: Szacowane czasy budowy oddzielnych modeli predykcyjnych dla każdego z ośmiu milionów klientów PTK Centertel. typ modelu regresja liniowa ARIMA 3.2.4 czas budowy 15 godzin 34 dni Budowa oddzielnego modelu dla każdego użytkownika Kolejnym podejściem jest budowanie oddzielnego modelu predykcyjnego dla każdego użytkownika. Niestety, eksperymenty wykazały, że podejście to jest niewykonalne z uwagi na czas obliczeń konieczny do budowy modeli. Bazy danych PTK Centertel obejmują dane około ośmiu milionów klientów. Oszacowania czasu budowy ośmiu milionów modeli zostały pokazane w tabeli 3.2. Nawet dla najprostszego modelu, jakim jest regresja liniowa, obliczenia trwałyby około 15 godzin. W warunkach firmy zablokowanie serwera na tak długi czas jest niemożliwe. Bardziej złożone modele takie jak autoregresyjny model ARIMA w ogóle nie wchodzą w rachubę, gdyż miesięczny czas oczekiwania na wyniki jest nie do zaakceptowania z biznesowego punktu widzenia. Oddzielnym problemem jest mała ilość dostępnych danych w przypadku tak budowanych modeli. Nawet tak proste modele, jak regresja liniowa, wymagają zazwyczaj co najmniej kilkudziesięciu punktów, podczas gdy dane dla klientów sieci telefonii komórkowej są często dostępne tylko za ostatnie kilka miesięcy. Trudno też oczekiwać, iż modele takie jak ARIMA, biorące pod uwagę okresowość przewidywanych wartości, będą w tych warunkach dawać wiarygodne predykcje. 3.2.5 Wnioski Z rozważań powyższych widać wyraźnie, że problem predykcji dla segmentów rynku, względnie dla wszystkich klientów w firmie, jest możliwy do realizacji z dość dużą dokładnością. Jest tak głównie z uwagi na dość dużą stałość prognozowanego zjawiska. Należy też zaznaczyć, że bardzo proste metody dają w tym przypadku zaskakująco dobre rezultaty. Problem predykcji na poziome pojedynczych użytkowników jest znacznie trudniejszy i zastosowane metody (chociaż umożliwiły znaczny spadek niepewności prognozowanego zjawiska) nie osiągnęły wysokiej dokładności. Jedną z najlepszych metod predykcji okazała się po prostu wartość z ostatniego miesiąca. Na podstawie przeprowadzonych badań trudno wysnuć jednoznaczne wnioski, należy jednak zauważyć podobieństwo takiego zachowania do procesu błądzenia losowego [25]. W przypadku takiego procesu najlepszym predyktorem kolejnej wartości jest właśnie ostatnia wartość zaobserwowana. Uzyskane wyniki stanowią też pewne potwierdzenie dla modeli stosowanych w literaturze, takich jak [30, 8]. 32 3.3 Badania innych metod predykcji prowadzone na danych testowych W niniejszym podpunkcie przedstawiono wyniki badań szeregu innych metod predykcji nadających się do zastosowania w predykcji wartości życiowej klientów. Są to głównie metody regresji oparte na teorii uczenia maszynowego [34]. Z uwagi na trudności w dostępie do danych rzeczywistych w PTK Centertel, badania przeprowadzono na danych testowych z Repozytorium Dużych Zbiorów Danych Uniwersytetu Kalifornii w Irvine [3]. Wybrano zbiór sygnałów EEG. Baza ta składa się ze zbioru szeregów czasowych reprezentujących zapis EEG dużej grupy pacjentów. Baza ta została wybrana dlatego, że składa się z dużej liczby względnie krótkich szeregów czasowych, więc dobrze odpowiada rozważanemu problemowi. Baza zawiera 38659 szeregów czasowych, z czego 5000 wykorzystano jako zbiór treningowy, 5000 jako zbiór walidacyjny (w metodach, które go używają), a pozostałe 28659 szeregów wykorzystano jako zbiór testowy. Eksperymenty przeprowadzono dla różnych długości danych wykorzystanych do predykcji i różnych długości okresu dla którego przewidywana jest ‘wartość’ sygnału. Parametry te zostały opisane szczegółowo poniżej np - liczba wartości (począwszy od t = 0) użyta do predykcji nt - liczba wartości (kolejnych po tych użytych do predykcji) na podstawie których liczymy ‘wartość’ d - stopa dyskonta. Przewidywana wartość wyraża się wzorem: np +nt Y = xi . (1 + d)i−np +1 X i=np (3.6) We wszystkich eksperymentach przyjęto wartość d = 0.25, co oznacza, że wartość ‘zarobiona’ przez nas miesiąc później stanowi dla nas 80% wartości, którą stanowiłaby, gdybyśmy ją zarobili miesiąc wcześniej. Przebadano metody przeznaczone dla rozwiązywania ogólnych problemów regresji oraz jedną metodę przeznaczoną specjalnie do przewidywania opartego o szeregi czasowe. Metoda oceny predyktorów była podobna do tej, stosowanej w przypadku danych rzeczywistych, tzn. obliczano pierwiastek błędu średniokwadratowego predykcji oraz, dla porównania, odchylenie standardowe przewidywanej wartości Y . 3.3.1 Standardowe modele regresji (metody statystyczne i uczenia maszynowego) W tej części przedstawiono wyniki predykcji przy użyciu standardowych metod regresji stosowanych w statystyce i uczeniu maszynowym. 33 Tablica 3.3: Dokładność predykcji regresji liniowej na danych testowych. np 5 10 20 5 10 20 5 10 20 5 10 20 nt 1 1 1 3 3 3 6 6 6 10 10 10 RMSE 2.2468 3.6315 2.0483 7.6220 7.2159 7.1556 12.3703 12.0637 12.2569 15.2481 15.8016 16.3068 odcylenie standardowe w zbiorze testowym 6.0954 6.3234 6.3127 14.1890 14.5726 14.5264 20.0641 20.5261 20.8156 23.1696 23.5863 24.2917 Regresja liniowa. Pierwszym przetestowanym modelem była regresja liniowa, która dawała dobre wyniki na rzeczywistych danych telekomunikacyjnych. Dokładność tego modelu dla różnej liczby punktów przywidywanych (użytych do konstrukcji zmiennej Y powyżej) i wartości na podstawie których dokonywano predykcji są pokazane w tabeli 3.3. Wnioski zostaną podane po pokazaniu dokładności pozostałych metod. Drzewa regresji M5 Drzewa decyzyjne M5 [27] są uogólnieniem metody drzew decyzyjnych [28] na przypadek regresji. Główna idea tego podejścia polega na tym, że każdy liść drzewa M5 zawiera nie jedną konkretną przewidywaną wartość, ale model regresyjny. Zazwyczaj jest to model liniowy. W pewnym sensie jest to więc podejście podobne do regresji lokalnej. Drzewo M5 budowane jest podobnie do standardowych drzew decyzyjnych. Główna różnica polega na tym, że kryterium wyboru atrybutu podziału w drzewie jest realizowane na podstawie wariancji przewidywanej zmiennej, a nie na podstawie miar entropijnych (patrz też rozdział 3.4). Wyniki dotyczące dokładności drzewa M5 na danych testowych zostały podane w tabeli 3.4. Wykorzystano implementację z pakietu Weka [34]. Metoda wektorów nośnych Metoda wektorów nośnych została opisana w rozdziale 2.5. Tutaj stosujemy jej modyfikację służącą do regresji. Szczegóły można znaleźć w [34]. Wyniki predykcji dla tej metody podano w tabeli 3.5 34 Tablica 3.4: Dokładność predykcji drzewa regresji M5 na danych testowych. np 5 10 20 5 10 20 5 10 20 5 10 20 nt 1 1 1 3 3 3 6 6 6 10 10 10 RMSE 2.4776 1.9361 2.5728 6.8544 7.4789 8.9851 12.4790 13.1488 14.5526 14.4582 17.1094 18.9424 odcylenie standardowe w zbiorze testowym 6.0954 6.3234 6.3127 14.1890 14.5726 14.5264 20.0641 20.5261 20.8156 23.1696 23.5863 24.2917 Tablica 3.5: Dokładność predykcji regresji opartej na metodzie wektorów nośnych na danych testowych. np 5 10 20 5 10 20 5 10 20 5 10 20 nt 1 1 1 3 3 3 6 6 6 10 10 10 RMSE 3.3464 3.2617 3.6247 9.7101 9.6425 10.1895 14.0429 13.9254 14.7278 16.9008 17.2893 18.607 odcylenie standardowe w zbiorze testowym 6.0954 6.3234 6.3127 14.1890 14.5726 14.5264 20.0641 20.5261 20.8156 23.1696 23.5863 24.2917 35 3.4 Metody uczenia maszynowego przeznaczone dla szeregów czasowych Powyższe metody przeznaczone są do ogólnych zadań regresji, nie są więc przeznaczone specjalnie dla szeregów czasowych. Istnieje możliwość, że metody wyspecjalizowane na predykcję z użyciem szeregów czasowych pozwolą osiągnąć lepsze rezultaty. Niestety, nie istnieje zbyt wiele metod przeznaczonych do predykcji szeregów czasowych, które można by zastosować do problemu predykcji wartości życiowej klienta (duża liczba krótkich szeregów czasowych). Zdecydowano się wypróbować metodę opartą na modyfikacji drzew decyzyjnych, przedstawioną przez Yamadę i in. w pracy [36]. Metoda polega na zastąpieniu klasycznych kryteriów wyboru w drzewach decyzyjnych kryteriami opartymi na podobieństwie szeregów czasowych. Niech ti , sj gdzie 1 ≤ i, j ≤ n będą dwoma szeregami czasowymi. Ich podobieństwo (a raczej jego brak) można mierzyć np. przy pomocy odległości euklidesowej v u n uX d(si , ti ) = t (si − ti )2 . (3.7) i=1 W pracy [36] przestawiono też możliwe uogólnienie tej odległości wykorzystujące tzw. dynamic time warping [22], co pozwala na uwzględnienie zniekształcenia szeregów w osi czasu. Metoda ta nie została zaimplementowana w pracy, użyto po prostu odległości euklidesowej. Kryterium decyzyjne zaproponowane w [36] ma następującą postać: • Jeżeli d(si, xi ) ≤ ε to wybierz gałąź lewą • w przeciwnym wypadku wybierz gałąź prawą gdzie (si ) jest szeregiem wzorcowym przechowywanych w węźle drzewa, a (xi ) szeregiem, który aktualnie podlega analizie. Oznacza to, że każdy węzeł drzewa odróżnia szeregi wejściowe podobne do określonego wzorca od szeregów do niego niepodobnych. Drzewa przedstawione w [36] przeznaczone są do zadania klasyfikacji. W pracy zmodyfikowano je tak aby nadawały się do zadania regresji. Modyfikacja polegała na wyborze kryterium w każdym z węzłów na podstawie wariancji przewidywanej wartości a nie miary entropijnej stosowanej w [36]. Algorytm budowy drzewa jest przedstawiony na rysunku alg:tree. Drzewa decyzyjne typowo korzystają też z fazy przycinania [28], która usuwa zbędne gałęzie drzewa w celu zapobiegania przeuczaniu. W pracy [36] nie stosowano przycinania, jednak w pracy niniejszej uzupełniono algorytm budowy drzewa o tą operację. W tym celu korzystano z dodatkowego zbioru walidującego. Przycinanie działa rekurencyjnie od liści drzewa wzwyż. Jeżeli dany węzeł drzewa ma jako potomków dwa liście, obliczana jest na zbiorze walidacyjnym wariancja przy podziale na te dwa liście 36 wejście: zbiór danych D = {(ti , Yi)} wyjście: drzewo decyzyjne przewidujące Y 1. Jeżeli |D| < 5 zwróć liść drzewa ze średnią wartością Y w D. 2. Oblicz V arD (Y ), wariancję Y w D 3. Dla każdego si , y ∈ D: 4. Posortuj D względem podobieństwa (d) do si . Niech Ds oznacza posortowany zbiór. 5. Dla każdego ui , y ∈ Ds : 6. Niech ε = d(si , ui) 7. Niech D0 = {(ti , Yi ∈ D : d(si , ti ) ≤ ε} 8. Niech D1 = {(ti , Yi ∈ D : d(si , ti ) > ε} 9. Oblicz G(si , ε) = V arD (Y ) − |D0 | V |D| arD0 (Y ) − |D1 | V |D| arD1 (Y ) 10. Wybierz s∗i , ε∗ dla których G(s∗i , ε∗ ) było maksymalne 11. Niech D0∗ = {(ti , Yi ∈ D : d(s∗i , ti ) ≤ ε∗ } 12. Niech D1∗ = {(ti , Yi ∈ D : d(s∗i , ti ) > ε∗ } 13. Wykonaj algorytm rekurencyjnie na D0∗ aby otrzymać poddrzewo T0 14. Wykonaj algorytm rekurencyjnie na D1∗ aby otrzymać poddrzewo T1 15. Zwróć drzewo z testem d(s∗i , ·) w korzeniu, lewym potomkiem T0 i prawym potomkiem T1 Rysunek 3.1: Algorytm budowy drzewa do przewidywania szeregów czasowych 37 Tablica 3.6: Dokładność predykcji regresji opartej na drzewach decyzyjnych dla szeregów czasowych dla danych testowych. np 5 10 20 5 10 20 5 10 20 5 10 20 nt 1 1 1 3 3 3 6 6 6 10 10 10 RMSE bez przycinania 4.8377 4.7632 5.1174 11.2225 11.1754 12.6102 16.5251 16.0026 18.6098 19.1501 19.6243 22.6872 RMSE z przycinaniem 4.8377 4.7643 5.1174 11.2215 11.1741 12.6104 16.5251 15.9966 18.6065 19.1514 19.6213 22.6797 odcylenie standardowe w zbiorze testowym 6.2701 6.4173 6.3474 14.5682 14.7590 15.3270 20.6263 20.4650 22.6553 23.5278 24.2917 26.9523 oraz wariancja, jaką uzyskalibyśmy po zastąpieniu tego węzła i jego potomków pojedynczym liściem. Jeżeli zastąpienie takie powoduje spadek wariancji lub jej tylko minimalny wzrost (o mniej niż 1%), węzeł i jego potomkowie zastępowani są pojedynczym liściem. Procedura przycinania kontynuowana jest dalej w górę drzewa. Wyniki osiągnięte na zbiorze testowym, zarówno dla drzew z przycinaniem jak i bez, przedstawione są w tabeli 3.6 3.5 Wnioski Z tabel 3.3, 3.4, 3.5 wynika, że żadna z trzech przedstawionych tam metod nie jest wyraźnie lepsza od innych. Metoda wektorów nośnych, pomimo dużej złożoności wydaje się być nieco gorsza od pozostałych. Z kolei metoda oparta na drzewach decyzyjnych, pomimo tego, iż została stworzona specjalnie do klasyfikowania szeregów czasowych, wydaje się działać gorzej od trzech pozostałych metod. Można też zauważyć, że zwiększenie liczby punktów danych, na podstawie których dokonywana jest predykcja, nie powoduje zwiększenia jej dokładności, a wręcz przeciwnie, często powoduje jej pogorszenie. Interesujący jest fakt, że podobne zjawisko obserwowano również dla rzeczywistych danych telekomunikacyjnych. 3.6 Przyszłe badania Planowane są dalsze prace w kierunku predykcji wartości życiowej klienta, zwłaszcza z uwagi na zainteresowanie tematem wyrażone przez PTK Centertel. Pierwszym etapem będzie powtórzenie badań na dużo większych próbkach danych (wymaga to współpracy 38 ze strony PTK Centertel). Ważne będzie też przetestowanie metod przedstawionych w rozdziale 3.3 na danych rzeczywistych. Planowane jest też ulepszenie metody drzewek regresji dostosowanych do przewidywania szeregów czasowych z pracy [36] przez zastosowanie modelu liniowego w każdym liściu drzewa. Interesujące będzie porównanie tej metody z drzewami M5 oraz z regresją lokalnie ważoną. 39 W pracy przeanalizowano trzy zagadnienia analizy danych blisko związane z pracami wykonywanymi przez Zakład Zaawansowanych Technik Informacyjnych dla PTK Centertel. Są to: analiza metod cross-sellingu, predykcja wartości życiowej klienta, a także data-mining opraty na zdarzeniach. W badaniach dotyczących cross-sellingu przebadano dwa najważniejsze podejścia. Jedno, oparte na klasyfikatorach i drugie, oparte na analizie koszykowej i sieciach bayesowskich. Metody oparte na klasyfikatorach osiągały lepsze rezultaty niż metoda oparta na sieci bayesowskiej. Należy jednak zaznaczyć, że metody te nie dają modeli zrozumiałych dla użytkownika, nie pozwalają więc na zrozumienie danych. Metoda oparta na sieciach bayesowskich, zapewnia natomiast, pełny wgląd w zależności między danymi. W procesie budowy sieci „uczymy” się danych, a ostatecznie otrzymujemy model opisujący w graficzny sposób zależności w nich występujące. W części dotyczącej predyckji wartości życiowej klienta przeanalizowano szereg modeli opisujących tą wielkość. Ustalono, że wiarygodna predykcja dotycząca pojedynczych użytkowników jest trudna, a osiągana w tym przypadku dokładność niska. Inaczej wygląda sutuacja w przypadku całych segmentów rynku, gdzie dokładność rzędu kilku procent, a nawet lepsza, jest łatwa do osiągnięcia. Przetestowano też szereg innych metod predykcji na danych testowych. Trzy z nich są standardowymi metodami regresji niedostosowanymi do szeregów czasowych, a czwarta, metodą drzew decyzyjnych przeznaczonych specjalnie dla szeregów czasowych. Opracowano schemat funkcjonalny systemu modelowania i zarządzania złożonymi systemami w opraciu o zdarzenia. Podejście takie jest konieczne w systemach informacyjnych przetwarzających informacje w czasie rzeczywistym. Większość istniejących systemów korzysta jedynie z informacji o typie i czasie pojawienia się zdarzenia. Możliwe jest jednak przechowyanie w bazach danych i późniejsze wykorzystanie daleko bogatszego zasobu informacji o zdarzeniach. Proponowany szkielet formalny umożliwia integrację takich złożonych informacji ozdarzeniach i wykorzystanie ich w procesie podejmowania decyzji. 40 Bibliografia [1] G. Adomavicius and A. Tuzhilin. Toward the next generation of recommender systems: a survey of the state-of-the-art and possible extensions. IEEE Transactions on Knowledge and Data Engineering (TKDE), 17(6):734 – 749, June 2005. [2] R. Agrawal, T. Imielinski, and A. Swami. Mining association rules between sets of items in large databases. In ACM SIGMOD Conf. on Management of Data, pages 207–216, 1993. [3] S. Hettichand S.D. Bay. The UCI KDD archive. http://kdd.ics.uci.edu, 1999. [4] M.J.A. Berry and G.S. Linoff. Mastering Data Mining. Wiley, 2000. [5] K. Brangule-Vlagsma, R.G.M. Pieters, and M. Wedel. The dynamics of value segments: modeling framework and empirical illustration. International Journal of Reserach in Marketing, 19:267–285, 2002. [6] T. Calders, B. Goethals, and S. Jaroszewicz. Mining rank-correlated sets of numerical attributes. In Proc. of the 12th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD’06), 2006. [7] N. Christianini and J. Shawe-Taylor. An Introduction to Support Vector Machines and Other Kernel-Based Learning Methods. Cambridge University Press, 2003. [8] E. Freeman and G. Melli. Championing an LTV model for an LTC. SIGKDD Explorations, 8(1):27–32, June 2006. [9] J. Friedman, T. Hastie, and R. Tibshirani. Additive logistic regression: a statistical view of boosting. Technical report, Dept. of Statistics, Stanford University, 1998. [10] J. Granat. A framework for event based modeling and analysis. Journal of Telecommunications and Information Technology, 2006. praca przyjęta do publikacji. [11] David Heckerman. A tutorial on learning with Bayesian networks. Technical Report MSR-TR-95-06, Microsoft Research, Redmond, WA, 1995. [12] H. Hwang, T. Jung, and E. Suh. An ltv model and customer segmentation based on customer value: a case study on the wireless telecommunications industry. Expert Systems with Applications, 26:181–188, 2004. 41 [13] S. Jaroszewicz. Polynomial association rules with applications to logistic regression. In Proc. of the 12th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD’06), 2006. [14] S. Jaroszewicz, L. Ivantysynova, and T. Scheffer. Accurate schema matching on streams. In Proc. of the International Workshop on Knowledge Discovery from Data Streams (IWKDDS’06) in conjunction with ECML/PKDD’06, Berlin, 2006. [15] S. Jaroszewicz and T. Scheffer. Fast discovery of unexpected patterns in data, relative to a bayesian network. In 11th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD 2005), pages 118–127, Chicago, IL, August 2005. [16] Szymon Jaroszewicz and Dan Simovici. Interestingness of frequent itemsets using bayesian networks as background knowledge. In 10th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD 2004), pages 178–186, Seattle, WA, August 2004. [17] Finn V. Jensen. Bayesian Networks and Decision Graphs. Springer Verlag, New York, 2001. [18] Leslie Pack Kaelbling, Michael L. Littman, and Andrew P. Moore. Reinforcement learning: A survey. Journal of Artificial Intelligence Research, 4:237–285, 1996. [19] W.A. Kamakura, M. Wedel, F. de Rosa, and J.A. Mazzon. Cross-selling through database marketing: a mixed data factor analyzer for data augmentation and prediction. International Journal of Research in Marketing, 20:45–65, 2003. [20] J. Lu. Modelling customer lifetime value using survival analysis — an application in the telecommunications industry. In SAS Users Group International Conference (SUGI 28), Seattle, WA, April 2003. paper 120-28. [21] T. Mitchell. Machine Learning. McGraw Hill, 1997. [22] C.S. Myers and L.R. Rabiner. A comparative study of several dynamic time-warping algorithms for connected word recognition. The Bell System Technical Journal, 60(7):1389–1409, September 1981. [23] Judea Pearl. Probabilistic Reasoning in Intelligent Systems. Morgan Kaufmann, Los Altos, CA, 1998. [24] E. Pendault, N. Abe, and B. Zadrozny. Sequential cost-sensitive decision making with reinforcement learning. In The Eighth ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD’02), pages 259–268, Edmonton, Alberta, Canada, July 2002. [25] D.S.G Pollock. Handbook of Time Series Analysis, Signal Processing and Dynamics. Academic Press, 1999. [26] W. Potts. Predicting customer value. In SAS Users Group International Conference (SUGI 30), Philadephia, PA, April 2005. paper 073-30. 42 [27] J.R. Quinlan. Learning with continuous classes. In Proc. AI’92, the 5th Australian Joint Conference on Artificial Intelligence, pages 343–348, Singapore. [28] J.R. Quinlan. C4.5: Programs for Machine Learning. Morgan Kaufmann, San Mateo, CA, 1993. [29] W.J. Reinartz and V. Kumar. On the profitability of long-life customers in a noncontractual setting: An empirical investigation and implications for marketing. Journal of Marketing, 64:17–35, 2000. [30] S. Rosset, E. Neumann, U. Eick, and N. Vatnik. Customer lifetime value models for decision support. Data Mining and Knowledge Discovery, 7:321–339, 2003. [31] Sas cross-sell and up-sell for http://www.sas.com/industry/telco/sell/brochure.pdf. telecommunications. [32] E. Suh, S. Lim, H. Hwang, and S. Kim. A prediction model for the purchase probability of anonymous customers to support real time marketing: a case study. Expert Systems with Applications, (27):245–255, 2004. [33] V.N. Vapnik. Statistical Learning Theory. Wiley-Interscience, 1998. [34] I. H. Witten and E. Frank. Data Mining: Practical Machine Learning Tools and Techniques. Morgan Kaufmann, 2005. [35] R. Chi-Wing Wong and A. Wai-Chee Fu. Ism: Item selection for marketing with cross-selling considerations. In The Eights Pacific-Asia Conference on Knowledge Discovery and Data Mining (PAKDD), pages 431–440, 2004. [36] Y. Yamada, E. Suzuki, H. Yokoi, and K. Takabayashi. Decision-tree induction from time-series data based on a standard-example split test. In Proc. of the 20th Interantional Conference on Machine Learning (ICML’03), Washington, DC, 2003. 43 Dodatek A Przedziały dyskretyzacji zmiennych w modelu cross-sellingowym nr nr nr nr ilosc-polaczen czas-polaczen przedziału wartości nr przedziału wartości 1 mniej niż 6000s 1 mniej niż 60 połączeń 2 6000–10000s 2 60–90 połączeń 3 10000–17000s 3 90–120 połączeń 4 17000–25000s 4 120—140 połączeń 5 więcej niż 25000s 5 więcej niż 140 połączeń sr-dlug-pol pd1-il-pol przedziału wartości nr przedziału wartości 1 poniżej jednej minuty 1 mniej niż 5 połączeń 2 1-1,5 min 2 5-10 połączeń 3 1,5 – 3 min 3 10-15 połączeń 4 3 – 5 min 4 15-20 połączeń 5 powyżej 5 min 5 więcej niż 20 połączeń pd1-czas-pol przedziału wartości 0 czas połączeń równy 0 (oznacza, że korzystano tylko z SMSów) 1 więcej niż 0, mniej niż 10 min 2 10-20 min 3 20-60 min 4 więcej niż 60 min pd2-il-pol przedziału wartości 1 mniej niż 60 połączeń 2 60-80 połączeń 3 80-100 połączeń 4 100-120 połączeń 5 więcej niż 120 połączeń 44 pd2-czas-pol nr przedziału 0 1 2 3 4 5 6 wartości czas połączeń równy 0 (oznacza, że korzystano tylko z SMSów) więcej niż 0, mniej niż 1h 1h-2h 2h-3h 3h-4h 4h-8h więcej niż 8h pd3-il-pol nr przedziału wartości 1 mniej niż 5 połączeń 2 5-10 połączeń 3 10-15 połączeń 4 15-20 połączeń 5 więcej niż 20 połączeń pd3-czas-pol nr przedziału wartości 0 czas połączeń równy 0 (oznacza, że korzystano tylko z SMSów) 1 więcej niż 0, mniej niż 5 min 2 5-20 min 3 więcej niż 20 min usl1-il-pol nr przedziału wartości 1 0-50 połączeń 2 50-60 połączeń 3 60-80 połączeń 4 więcej niż 80 połączeń W przypadku usługi 1 (SMS) czas połączenia jest umownie uznawany za zerowy. usl{2,3,4}-il-pol nr przedziału wartości 1 0-50 połączeń 2 50-60 połączeń 3 60-80 połączeń 4 więcej niż 80 połączeń 5 usl{2,3,4}-czas-pol nr przedziału wartości 1 mniej niż 30 min 2 30-60 min 3 60-90 min 4 90-120 min 5 2h–3h 6 więcej niż 3h 45 Dodatek B Wyniki przedstawione w formie artykułów W ramach pracy powstało też kilka artykułów związanych z przestawianą tu tematyką. Dwie z tych prac [6, 13] dotyczą uogólnienia analizy koszykowej, a w szczególności reguł asocjacyjnych [2] na atrybuty ciągłe. Dotychczas zastosowanie tych metod do danych numerycznych wymagało ich uprzedniej dyskretyzacji. Dyskretyzacja jednak zawsze wiąże się z utratą informacji, a także dodatkowymi problemami, takimi jak wybór odpowiedniej liczby przedziałów. Zbyt mała liczba przedziałów powoduje trudności w wykrywaniu słabszych zależności między atrybutami, zbyt duża liczba przedziałów powoduje z kolei powstanie zbyt dużej liczby reguł i ‘rozbicie’ pojedynczych zależności na wiele przedziałów. Pierwsza z opracowanych metod [6] opiera się na tak zwanych metodach rangowych. To znaczy ważna jest nie sama wartość atrybutów, ale wynik porównania ze sobą dwóch wartości. W pracy uogólniono trzy najważniejsze miary korelacji rangowej: ρ Spearmana, τ Spearmana oraz tzw. footrule na przypadek więcej niż dwóch atrybutów, a także podano wydajne algorytmy znajdowania zbiorów atrybutów o zadanym minimalnym współczynniku korelacji. Druga z prac [13] uogólnia pojęcie wsparcia na wielomiany (a bardziej ściśle na jednomiany) wielu zmiennych. Dzięki temu również możliwe jest uniknięcie dyskretyzacji. Podano wydajne algorytmy znajdowania wszystkich wielomianów o zadanym minimalnym wsparciu. Znalezione wielomiany zostały następnie użyte do konstrukcji modeli wielomianowej regresji logistycznej. Opracowana metoda daje dokładność porównywalną ze standardowymi metodami regresji krokowej, będąc jednocześnie od nich znacznie wydajniejszą. Trzecia praca [14] dotyczy tzw. problemu schema matching, czyli znajdowania wzajemnie odpowiadających sobie atrybutów w dwóch tabelach bazodanowych. Problem znajduje zastosowanie przy integracji baz danych, np. przy łączeniu się dużych firm, ale znajduje też zastosowanie w data-miningu, gdzie, zamiast analizować daną tabelę, od początku próbujemy znaleźć inne, podobne do niej tabele, które były analizowane wcześniej. Kolejna praca [10] dotyczy data-miningu opartego o zdarzenia. Praca opisuje szkielet formalny systemu sterowania złożonymi obiektami w czasie rzeczywistym z uwzględnieniem pojawiających się zdarzeń o złożonej strukturze. 46