Odkrywanie wzorców sekwencyjnych z zachowaniem prywatności

Podobne dokumenty
INDUKOWANE REGUŁY DECYZYJNE ALORYTM APRIORI JAROSŁAW FIBICH

Wprowadzenie Sformułowanie problemu Typy reguł asocjacyjnych Proces odkrywania reguł asocjacyjnych. Data Mining Wykład 2

Data Mining Wykład 3. Algorytmy odkrywania binarnych reguł asocjacyjnych. Plan wykładu

Metody eksploracji danych. Reguły asocjacyjne

METODY INŻYNIERII WIEDZY KNOWLEDGE ENGINEERING AND DATA MINING. EKSPLORACJA DANYCH Ćwiczenia. Adrian Horzyk. Akademia Górniczo-Hutnicza

Odkrywanie wzorców sekwencji

1. Odkrywanie asocjacji

Odkrywanie asocjacji

Ewelina Dziura Krzysztof Maryański

Inżynieria biomedyczna

Eksploracja danych - wykład VIII

Odkrywanie asocjacji

Algorytm DIC. Dynamic Itemset Counting. Magdalena Przygórzewska Karolina Stanisławska Aleksander Wieczorek

SYSTEMY UCZĄCE SIĘ WYKŁAD 10. PRZEKSZTAŁCANIE ATRYBUTÓW. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska.

Indeksy w bazach danych. Motywacje. Techniki indeksowania w eksploracji danych. Plan prezentacji. Dotychczasowe prace badawcze skupiały się na

Algorytmy odkrywania binarnych reguł asocjacyjnych

Zadanie 1. Suma silni (11 pkt)

5. Rozwiązywanie układów równań liniowych

Estymacja przedziałowa - przedziały ufności dla średnich. Wrocław, 5 grudnia 2014

Ćwiczenie 5. Metody eksploracji danych

1 Układy równań liniowych

Data Mining Wykład 9. Analiza skupień (grupowanie) Grupowanie hierarchiczne O-Cluster. Plan wykładu. Sformułowanie problemu

Wykład 10 Estymacja przedziałowa - przedziały ufności dla średn

Eksploracja Danych. wykład 4. Sebastian Zając. 10 maja 2017 WMP.SNŚ UKSW. Sebastian Zając (WMP.SNŚ UKSW) Eksploracja Danych 10 maja / 18

Reguły asocjacyjne w programie RapidMiner Michał Bereta

Wnioskowanie bayesowskie

Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki

Matematyka dyskretna. Andrzej Łachwa, UJ, /10

Wykład 2. Poprawność algorytmów

Układy równań liniowych

SYSTEMY UCZĄCE SIĘ WYKŁAD 4. DRZEWA REGRESYJNE, INDUKCJA REGUŁ. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska

Systemy Wspomagania Decyzji

Metody iteracyjne rozwiązywania układów równań liniowych (5.3) Normy wektorów i macierzy (5.3.1) Niech. x i. i =1

Strategie ewolucyjne (ang. evolu4on strategies)

Definicja bazy danych TECHNOLOGIE BAZ DANYCH. System zarządzania bazą danych (SZBD) Oczekiwania wobec SZBD. Oczekiwania wobec SZBD c.d.

Macierze. Rozdział Działania na macierzach

Układy równań i nierówności liniowych

Prawdopodobieństwo i rozkład normalny cd.

Testowanie hipotez statystycznych

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

Zadania ze statystyki, cz.7 - hipotezy statystyczne, błąd standardowy, testowanie hipotez statystycznych

Weryfikacja hipotez statystycznych

Monte Carlo, bootstrap, jacknife

Statystyka. Rozkład prawdopodobieństwa Testowanie hipotez. Wykład III ( )

LABORATORIUM 8 WERYFIKACJA HIPOTEZ STATYSTYCZNYCH PARAMETRYCZNE TESTY ISTOTNOŚCI

Statystyka. #5 Testowanie hipotez statystycznych. Aneta Dzik-Walczak Małgorzata Kalbarczyk-Stęclik. rok akademicki 2016/ / 28

Zad. 4 Należy określić rodzaj testu (jedno czy dwustronny) oraz wartości krytyczne z lub t dla określonych hipotez i ich poziomów istotności:

Klasyfikacja obiektów Drzewa decyzyjne (drzewa klasyfikacyjne)

Wykład 3 Hipotezy statystyczne

TEORETYCZNE PODSTAWY INFORMATYKI

Metody Rozmyte i Algorytmy Ewolucyjne

Rozdział 2: Metoda największej wiarygodności i nieliniowa metoda najmniejszych kwadratów

166 Wstęp do statystyki matematycznej

Wykład z Technologii Informacyjnych. Piotr Mika

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 9,

Wykład 1 Próba i populacja. Estymacja parametrów z wykorzystaniem metody bootstrap

Rozdział 1 PROGRAMOWANIE LINIOWE

Wstęp do metod numerycznych Eliminacja Gaussa Równania macierzowe. P. F. Góra

Wykład 4. Plan: 1. Aproksymacja rozkładu dwumianowego rozkładem normalnym. 2. Rozkłady próbkowe. 3. Centralne twierdzenie graniczne

Testowanie hipotez statystycznych.

ZJAZD 4. gdzie E(x) jest wartością oczekiwaną x

WYKŁAD 5 TEORIA ESTYMACJI II

Optymalizacja ciągła

STATYSTYKA MATEMATYCZNA

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

Rozdział 1 PROGRAMOWANIE LINIOWE

VI WYKŁAD STATYSTYKA. 9/04/2014 B8 sala 0.10B Godz. 15:15

Temat: Algorytm kompresji plików metodą Huffmana

Teoretyczne podstawy informatyki

Metody numeryczne Wykład 4

Lista zadania nr 7 Metody probabilistyczne i statystyka studia I stopnia informatyka (rok 2) Wydziału Ekonomiczno-Informatycznego Filia UwB w Wilnie

Kodowanie transformacyjne. Plan 1. Zasada 2. Rodzaje transformacji 3. Standard JPEG

Algorytmy genetyczne. Paweł Cieśla. 8 stycznia 2009

ROZWIĄZYWANIE RÓWNAŃ NIELINIOWYCH

Ćwiczenie 6. Transformacje skali szarości obrazów

Algorytm Grovera. Kwantowe przeszukiwanie zbiorów. Robert Nowotniak

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Algorytm grupowania danych typu kwantyzacji wektorów

Priorytetyzacja przypadków testowych za pomocą macierzy

Analiza głównych składowych- redukcja wymiaru, wykł. 12

komputery? Andrzej Skowron, Hung Son Nguyen Instytut Matematyki, Wydział MIM, UW

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

Podstawy OpenCL część 2

SAS wybrane elementy. DATA MINING Część III. Seweryn Kowalski 2006

Weryfikacja hipotez statystycznych, parametryczne testy istotności w populacji

Statystyka matematyczna Testowanie hipotez i estymacja parametrów. Wrocław, r

Odchudzamy serię danych, czyli jak wykryć i usunąć wyniki obarczone błędami grubymi

Eksploracja danych. KLASYFIKACJA I REGRESJA cz. 2. Wojciech Waloszek. Teresa Zawadzka.

Matematyka z el. statystyki, # 6 /Geodezja i kartografia II/

W rachunku prawdopodobieństwa wyróżniamy dwie zasadnicze grupy rozkładów zmiennych losowych:

mgr inż. Magdalena Deckert Poznań, r. Metody przyrostowego uczenia się ze strumieni danych.

Testowanie hipotez statystycznych

Rozwiązywanie układów równań liniowych metody dokładne Materiały pomocnicze do ćwiczeń z metod numerycznych

Prawdopodobieństwo i statystyka

Analiza danych. TEMATYKA PRZEDMIOTU

Matematyka dyskretna - wykład - część Podstawowe algorytmy kombinatoryczne

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

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

Prawdopodobieństwo i statystyka r.

Wykład 5. Metoda eliminacji Gaussa

Transkrypt:

Politechnika Warszawska Wydział Elektroniki i Technik Informacyjnych Instytut Informatyki Rok akademicki 2013/2013 PRACA DYPLOMOWA MAGISTERSKA Andrzej Makarewicz Odkrywanie wzorców sekwencyjnych z zachowaniem prywatności Opiekun pracy dr inż. Piotr Andruszkiewicz Ocena:...... Podpis Przewodniczącego Komisji Egzaminu Dyplomowego

Kierunek: Informatyka Specjalność: Inżynieria Systemów Informatycznych Data urodzenia: 1987.08.12 Data rozpoczęcia studiów: 2007.02.21 Życiorys Autor urodził się 12 sierpnia 1987 roku w Białymstoku. W latach 2003 2006 uczęszczał do III Liceum Ogólnokształcącego im. K.K. Baczyńskiego w Białymstoku. W lutym 2007 roku podjął studia na Wydziale Elektroniki i Technik Informacyjnych na Politechnice Warszawskiej. Zgromadzone do tej pory doświadczenie zawodowe zdobywał pracując ponad rok na stanowisku programisty w GG Network S.A oraz na trzymiesięcznym stażu w Google Inc. Szczególnym zainteresowaniem autora cieszą się technologie mobilne i webowe, a także zagadnienia przetwarzania obrazu i danych.... Podpis studenta EGZAMIN DYPLOMOWY Złożył egzamin dyplomowy w dniu...2013 r z wynikiem... Ogólny wynik studiów:... Dodatkowe wnioski i uwagi Komisji:.........

STRESZCZENIE W pracy przedstawiono opracowaną metodę odkrywania wzorców sekwencyjnych z zapewnianiem prywatności, bazującą na istniejących metodach zapewniania prywatności w odkrywaniu reguł asocjacyjnych w centralnej bazie danych. Opisane zostały sposoby odkrywania reguł asocjacyjnych i wzorców sekwencyjnych, odpowiednio algorytmy Apriori i GSP. Przedstawiono w niej wybrane techniki zapewniania prywatności, metody modyfikacji danych i miary prywatności. Przekrojowo opisane zostały dostępne sposoby zapewniania prywatności w odkrywaniu reguł asocjacyjnych i wzorców sekwencyjnych. Szczegółowo opisano metodę MASK wraz z modyfikacjami, na której bazuje opracowany algorytm. W pracy zawarto także wyniki przeprowadzonych eksperymentów i opis praktycznego systemu, który posłużył do testowania metody. Słowa kluczowe: eksploracja danych, zapewnianie prywatności, wzorce sekwencyjne, sekwencje częste Privacy Preserving Sequential Pattern Mining The thesis describes the developed method of privacy preserving sequential pattern mining that is based on existing methods of association rules mining with privacy preserving in a centralized database. The thesis includes description of Apriori and GSP algorithms, which are used for association rules and sequential patterns mining, accordingly. Featured are selected techniques of privacy preserving, data modification, and privacy measures. The thesis also shows available methods of privacy preserving in association rules and sequential patterns mining, with a detailed description of MASK method and its modifications, on which the developed algorithm is based. The thesis presents the experimental results and describes the developed system that was used for test purposes. Keywords: data mining, privacy preserving, sequential patterns, frequent sequences

Spis treści Spis tablic 6 Spis rysunków 8 Spis algorytmów 9 1 Wstęp 11 2 Wybrane metody odkrywania reguł asocjacyjnych i wzorców sekwencyjnych 13 2.1 Reguły asocjacyjne........................ 13 2.1.1 Apriori........................... 16 2.2 Wzorce sekwencyjne....................... 18 2.2.1 Znajdowanie wzorców sekwencyjnych.......... 20 2.2.2 GSP............................ 21 3 Wprowadzenie do zagadnienia zapewniania prywatności w eksploracji danych 25 3.1 Techniki zapewniania prywatności................ 25 3.1.1 Kryptograficzne...................... 25 3.1.2 Bazujące na rekonstrukcji................ 26 3.2 Wybrane metody modyfikacji danych zapewniające prywatność 27 3.2.1 Losowe zakłócanie wartości............... 27 3.2.2 Inne wybrane metody................... 30 3.3 Wybrane miary prywatności................... 31 3.3.1 Miara prywatności w oparciu poziom pewności..... 31 4

3.3.2 Miara prywatności w oparciu o entropię........ 32 3.3.3 Miara prywatności w oparciu o prawdopodobieństwo rekonstrukcji....................... 33 4 Eksploracja reguł asocjacyjnych z zapewnianiem prywatności 35 4.1 Przegląd dostępnych metod................... 35 4.2 MASK............................... 37 4.2.1 Zakłócanie danych.................... 37 4.2.2 Szacowanie wsparcia zbioru jednoelementowego.... 38 4.2.3 Szacowanie wsparcia zbioru k-elementowego...... 38 4.2.4 Odkrywanie zbiorów częstych.............. 39 4.3 MMASK.............................. 40 4.3.1 Odkrywanie zbiorów częstych.............. 41 5 Eksploracja wzorców sekwencyjnych z zapewnieniem prywatności 45 5.1 Przegląd dostępnych metod................... 45 5.2 PP-GSP zaproponowana metoda............... 47 5.2.1 Zakłócanie danych.................... 47 5.2.2 Odkrywanie zbiorów częstych.............. 47 5.2.3 Transformacja....................... 49 5.2.4 Sekwencjonowanie..................... 50 5.2.5 Maksymalizacja...................... 51 5.2.6 Odkrywanie zbiorów częstych optymalizacja..... 52 6 Opis systemu 56 6.1 Architektura............................ 56 6.2 Implementacja........................... 58 6.3 Użycie programu......................... 58 6.4 Format plików danych...................... 59 6.4.1 Zmodyfikowany format ARFF.............. 59 6.4.2 Inne wspierane formaty.................. 61 5

7 Eksperymenty 63 7.1 Zbiory danych wykorzystane w eksperymentach........ 63 7.2 Miary błędu............................ 64 7.3 Wpływ stopnia prywatności na skuteczność algorytmu.... 66 7.4 Wpływ poziomu wsparcia na wyniki algorytmu........ 73 7.5 Wpływ wprowadzenia relaksacji na wyniki algorytmu..... 79 8 Podsumowanie 82 Bibliografia 83 A Lista poleceń programu 90 B Zawartość płyty CD 98 6

Spis tablic 3.1 Wielkość miary prywatności dla różnych metod zakłócania wartości.............................. 32 3.2 Wielkość miary prywatności dla s 0 = 0.01 oraz α = 0.9..... 34 7.1 Charakterystyka zbiorów danych użytych w eksperymentach. 64 7.2 Wyniki algorytmu dla różnych wartości p, z parametrami minsupport = 40% i q = 95%, uzyskane na zbiorze PanTadeusz 68 7.3 Wyniki algorytmu dla różnych wartości p, z parametrami minsupport = 40% i q = 95%, uzyskane na zbiorze Balladyna................................ 68 7.4 Wyniki algorytmu dla różnych wartości p, z parametrami minsupport = 40% i q = 95%, uzyskane na zbiorze Hamlet................................. 69 7.5 Wyniki algorytmu dla różnych wartości p, z parametrami minsupport = 40% i q = 95%, uzyskane na zbiorze JuliuszCezar 69 7.6 Wyniki algorytmu dla różnych wartości p, z parametrami minsupport = 2% i q = 99, 5%, uzyskane na zbiorze Gazelle. 70 7.7 Wyniki algorytmu dla różnych wartości p, z parametrami minsupport = 30% i q = 99, 5%, uzyskane na zbiorze Msnbc. 71 7.8 Wyniki algorytmu dla różnych wartości minsupport, z parametrami p = 80% i q = 95%, uzyskane na zbiorze PanTadeusz 74 7.9 Wyniki algorytmu dla różnych wartości minsupport, z parametrami p = 80% i q = 95%, uzyskane na zbiorze Balladyna. 75 7.10 Wyniki algorytmu dla różnych wartości minsupport, z parametrami p = 80% i q = 95%, uzyskane na zbiorze Hamlet... 75 7

7.11 Wyniki algorytmu dla różnych wartości minsupport, z parametrami p = 80% i q = 95%, uzyskane na zbiorze JuliuszCezar 76 7.12 Wyniki algorytmu dla różnych wartości minsupport, z parametrami p = 85% i q = 99, 5%, uzyskane na zbiorze Msnbc.. 77 7.13 Wyniki algorytmu dla różnych wartości minsupport, z parametrami p = 90% i q = 99, 5%, uzyskane na zbiorze Gazelle.. 78 7.14 Wyniki algorytmu dla różnych wartości relaxation, z parametrami p = 70%, q = 95% i minsupport = 40%, uzyskane na zbiorze PanTadeusz........................ 80 7.15 Wyniki algorytmu dla różnych wartości relaxation, z parametrami p = 70%, q = 95% i minsupport = 40%, uzyskane na zbiorze Balladyna......................... 80 7.16 Wyniki algorytmu dla różnych wartości relaxation, z parametrami p = 70%, q = 95% i minsupport = 40%, uzyskane na zbiorze Hamlet.......................... 81 7.17 Wyniki algorytmu dla różnych wartości relaxation, z parametrami p = 70%, q = 95% i minsupport = 40%, uzyskane na zbiorze JuliuszCezar....................... 81 8

Spis rysunków 7.1 Wartości miar błędu ze względu na dobrany współczynnik p, uzyskane na zbiorze PanTadeusz................. 70 7.2 Wartości miar błędu ze względu na dobrany współczynnik q, uzyskane na zbiorze PanTadeusz................. 72 9

Spis algorytmów 1 Apriori............................... 17 2 Apriori Generowanie k-elementowych zbiorów kandydujących 17 3 Apriori Liczenie wsparcia zbiorów kandydujących...... 18 4 Maksymalizacja wzorców sekwencji............... 21 5 GSP................................ 22 6 GSP Generowanie sekwencji kandydujących......... 23 7 GSP Liczenie wsparcia sekwencji kandydujących....... 23 8 MASK............................... 40 9 MASK Szacowanie wsparcia zbiorów kandydujących..... 41 10 MMASK.............................. 43 11 MMASK Generowanie zbiorów kandydujących........ 44 12 MMASK Szacowanie wsparcia zbiorów kandydujących... 44 13 PP-GSP1............................. 48 14 PP-GSP1 Szacowanie wsparcia zbiorów kandydujących... 49 15 PP-GSP2............................. 51 16 PP-GSP2 Szacowanie wsparcia sekwencji kandydujących.. 51 17 MPP-GSP1............................ 53 18 MPP-GSP1 Szacowanie wsparcia zbiorów kandydujących.. 54 10

1. Wstęp Zwiększone możliwości tworzenia ogromnych zbiorów danych, który jest następstwem postępu technologii przechowywania i przetwarzania informacji, tworzy wielki potencjał eksploracji i zdobywania nowej wiedzy. Jednocześnie jednak rodzi się wiele obaw ze względu na charakter i dokładność danych dotyczących indywidualnych klientów i innych osób prywatnych. Z tego względu niezbędne było wytworzenie sposobów pozwalających zachować prywatność danych, przy równoległym utrzymaniu ich użyteczności w procesie eksploracji. Prace nad tymi zagadnieniami prowadzone są bardzo dynamicznie i powstaje wiele nowych metod zapewniania prywatności w różnych metodach eksploracji danych. W niniejszej pracy zaproponowane zostało nowe podejście do zapewniania prywatności w jednej z popularnych metod eksploracji danych, jaką jest odkrywanie wzorców sekwencyjnych. Zaproponowana metoda bazuje na dotychczas przedstawionych sposobach dla pokrewnego zagadnienia odkrywania reguł asocjacyjnych z zapewnianiem prywatności. W pracy przedstawiono podstawy teoretyczne, na których bazowano przy opracowywaniu metody. Opis interesujących nas metod eksploracji reguł asocjacyjnych oraz wzorców sekwencyjnych został zawarty z Rozdziale 2. Następnie w Rozdziale 3 znajduje się wprowadzenie do zagadnienia zapewniania prywatności w eksploracji danych. Przedstawiono tam ogólny zarys tematyki, wraz z wybranymi metodami modyfikacji i obliczania prywatności danych. Rozdział 4 opisuje dostępne sposoby zapewniania prywatności w odkrywaniu reguł asocjacyjnych, wraz ze szczegółowym opisem metody MASK i jej modyfikacji, na bazie której wypracowano metodę dotyczącą wzorców 11

sekwencyjnych. Opis zaproponowanej metody, poprzedzony przekrojowym spojrzeniem na dotychczas przedstawione sposoby, został zaprezentowany w Rozdziale 5. W dalszej części znajduje się opis przygotowanego praktycznego systemu (Rozdział 6) oraz wyniki eksperymentów z wykorzystaniej wypracowanej metody (Rozdział 7). Pracę kończy Rozdział 8, podsumowujący osiągnięte rezultaty i zawierający propozycje dalszego rozwoju na tym polu. 12

2. Wybrane metody odkrywania reguł asocjacyjnych i wzorców sekwencyjnych W tym rozdziale przedstawione zostają podstawy teoretyczne zagadnień odkrywania reguł asocjacyjnych oraz wzorców sekwencyjnych. 2.1 Reguły asocjacyjne Odkrywanie reguł asocjacyjnych jest popularną metodą eksploracji, pozwalającą na odkrywanie interesujących zależności i korelacji między danymi w dużych zbiorach danych. Motywacją do badań nad regułami asocjacyjnymi było zagadnienie analizy koszykowej (ang. Market Basket Analysis). Problem analizy koszyka zakupów polegał na znalezieniu najczęściej wspólnie kupowanych produktów lub grup produktów przez klientów sklepu. Analiza ta pozwala na znalezienie wzorców zachowań konsumenckich i późniejsze ich wykorzystanie przy opracowywaniu oferty sklepu. [1] Zagadnienie odkrywania reguł asocjacyjnych w koszyku zakupowym zostało zaproponowane w [2]. Problem ten można przedstawić formalnie w następujący sposób: Niech I = {i 1, i 2,..., i k } będzie zbiorem literałów nazywanych elementami. Zbiór elementów (ang. itemset) T, w którym T I, nazywać będziemy transakcją. Zbiór transakcji D jest transakcyjną bazą danych. Zbiór X posiadający k elementów, nazwywamy zbiorem k-elementowym. Mówimy wtedy, że długość zbioru wynosi k. Transakcje mogą być reprezentowane jako wektor 13

binarny (t 1, t 2,..., t k ), gdzie t j = 1 wtedy i tylko wtedy, gdy i j T. Definicja 2.1.1. Transakcja T wspiera X, jeżeli wszystkie elementy z X występują w T. Wiedząc to, możemy określić regułę asocjacyjną jako: Definicja 2.1.2. Reguła asocjacyja to implikacja w formie X Y, gdzie X I, Y I, oraz X Y =. Zbiór X nazywamy poprzednikiem (ang. antecedent) reguły, zaś zbiór Y jej następnikiem (ang. consequent). Istotnymi miarami charakteryzującymi reguły asocjacyjne są wsparcie oraz ufność. Pozwalają one określić statystyczną wartość uzyskanych reguł i zdecydować co do ich przydatności w analizie danych. Definicja 2.1.3. Wsparcie (ang. support) zbioru elementów X jest liczbą lub procentem transakcji w transakcyjnej bazie danych D, wspierających X. Zapisujemy je jako sup(x). Wsparcie reguły asocjacyjnej X Y, zapisywane jako sup(x Y ), w transakcyjnej bazie danych D, jest liczbą lub procentem transakcji, które wspierają X Y i jest równy wsparciu zbioru X Y w D, czyli sup(x Y ). Definicja 2.1.4. Ufność (ang. confidence) reguły asocjacyjnej X Y jest procentem transakcji w transakcyjnej bazie danych D, które wspierają zbiór Y jednocześnie wspierając zbiór X. Zapisujemy ją jako conf(x Y ). Obliczanie ufności reguły asocjacyjnej X Y, możemy wyrazić w następujący sposób: conf(x Y ) = sup(x Y ) sup(x) Zagadnienie odkrywania reguł asocjacyjnych w zbiorze D sprowadza się do znalezienia wszystkich reguł asocjacyjnych, których wartości wsparcia oraz ufności są większe niż wartości podane przez użytkownika, odpowiednio: minimalnego wsparcia (ang. minsupport) oraz minimalnej ufności (ang. minconfidence). Reguły asocjacyjne, które spełniają powyższe warunki, nazwyamy silnymi (ang. strong) regułami asocjacyjnymi. 14

Z warunków tych wynika, że obecność silnej reguły asocjacyjnej X Z nie gwarantuje znalezienia silnej reguły X Y Z, ponieważ może ona nie spełniać warunku minimalnego wsparcia. Podobnie też występowanie silnych reguł X Y oraz Y Z nie oznacza zaistnienia silnej reguły asocjacyjnej X Z, gdyż warunek minimalnej ufności może nie być spełniony. W zadaniu odkrywania wszystkich reguł asocjacyjnych, możemy wyróżnić dwa główne kroki [1]: Znajdujemy wszystkie zbiory elementów, które są wspierane przez transakcje powyżej wartości minimalnego wsparcia. Takie zbiory nazywamy zbiorami częstymi. Definicja 2.1.5. Zbiory częste (ang. frequent itemsets), oznaczane przez F, są zbiorami elementów ze wsparciem większym niż określone minimalne wsparcie. F = {X I sup(x) > minsupport} Wykorzystujemy znalezione zbiory częste do wygenerowania reguł asocjacyjnych. W tym celu dla każdego zbioru częstego, oznaczanego przez F, znajdujemy niepusty zbiór X taki że X F. Wynikowymi silnymi regułami asocjacyjnymi będą reguły w postaci X F \X oraz spełniające warunek: sup(f ) sup(x) > minconfidence Naiwną formą algorytmu jest wygenerowanie wszystkich możliwych kombinacji zbioru elementów I i policzenie wsparcia w bazie danych D. Następnie dla każdego zbioru spełniającego warunek minsupport, należy wygenerować reguły asocjacyjne i sprawdzić czy spełniają warunek minconf idence. Rozwiązanie to jest jednak nieakceptowalne w praktyce ze względu na bardzo dużą liczbę kombinacji elementów do rozpatrzenia, wynoszącą 2 I 1. 15

2.1.1 Apriori Apriori jest algorytmem pozwalającym na odkrywanie zbiorów częstych, wykorzystującym monotoniczność miary wsparcia do ograniczenia przestrzeni przeszukiwanych zbiorów częstych. Każdy zbiór częsty musi się bowiem składać z częstych podzbiorów. Natomiast jeżeli zbiór posiada nieczęsty podzbiór, to taki zbiór również jest nieczęsty tj. nie jest zbiorem częstym. Algorytm Apriori iteracyjnie znajduje kolejne zbiory częste o rozmiarach 1, 2,..., k. Kandydujące do bycia częstymi zbiory o wielkości k powstają poprzez połączenie częstych zbiorów (k 1)-elementowych oraz usunięcie każdego kandydata, którego jakikolwiek podzbiór nie jest częsty. W praktyce sprowadza się to do sprawdzenia wszystkich podzbiorów wielkości k 1, gdyż żeby mogły spełnić warunek bycia częstymi, ich podzbiory są również częste. Algorytm Apriori (Algorytm 1) jest zapoczątkowany zliczaniem występowania pojedynczych elementów w celu znalezienia 1-elementowych zbiorów częstych. Następnie w kolejnych przejściach głównej pętli algorytmu wykonywane są dwie główne operacje: generowania kandydatów oraz liczenia ich wsparcia. W opisie algorytmu użyjemy następującej notacji: C k oznacza k-elementowe zbiory kandydujące (potencjalnie częste), F k jest zbiorem zbiorów częstych k-elementowych, C.counter jest polem zliczającym wsparcie dla zbioru C, X[i] jest i-tym elementem zbioru X, X[1] X[2] X[k] oznacza zbiór k-elementowy, który zawiera elementy X[1], X[2],..., X[k]. Za generowanie k-elementowych zbiorów kandydujących C k na podstawie uzyskanych zbiorów częstych o wielkości (k 1), odpowiedzialna jest funkcja AprioriGenerate (Algorytm 2). W pierwszym kroku łączone są kolejne zbiory częste z F k 1, zachowując warunek łączenia. Warunkiem tym jest zgodność początkowych k 2 elementów obu zbiorów, a także to, że (k 1)-ty element drugiego zbioru jest większy niż w zbiorze pierwszym. Następnie wykonywany jest krok czyszczenia (ang. prune step), gdzie usuwane są wszystkie zbiory 16

Algorytm 1 Apriori Require: D Require: minsupport 1: F 1 { zbiory częste 1-elementowe } 2: for (k 2; F k 1 ; k + +) do 3: C k AprioriGenerate(F k 1 ) 4: SupportCount(C k ) 5: F k {C C k C.count minsupport } 6: end for 7: return k F k baza transakcyjna kandydujące C C k, których jakikolwiek podzbiór (k 1)-elementowy nie należy do F k 1. Algorytm 2 Apriori Generowanie k-elementowych zbiorów kandydujących 1: function AprioriGenerate(F k 1 ) 2: for all Y, Z F k 1 do 3: if Y [1] = Z[1] Y [k 2] = Z[k 2] Y [k 1] < Z[k 1] then 4: C Y [1] Y [2] Y [k 2] Y [k 1] Z[k 1] 5: C k C k + C 6: end if 7: end for 8: for all C C k do 9: for all (k 1)-elementowego zbioru X C do 10: if X / F k 1 then 11: delete C from C k 12: end if 13: end for 14: end for 15: return C k 16: end function Drugą operacją wykonywaną w przebiegu pętli Apriori jest zliczenie wsparcia dla wygenerowanych kandydatów C k, za pomocą procedury SupportCount (Algorytm 3). Odbywa się to poprzez przejście przez wszystkie transakcje w bazie danych D i zwiększenie licznika wsparcia C.count dla każdego zbioru kandydującego, który jest wspierany przez daną transakcję. Wszyscy kandydaci, których zliczona wartość wsparcia jest większa niż minimalne wsparcie 17

(minsupport), umieszczeni zostają w k-elementowym zbiorze częstym F k, uzyskanym w danym przebiegu. Algorytm 3 Apriori Liczenie wsparcia zbiorów kandydujących 1: procedure SupportCount(C k ) 2: for all transakcji T D do 3: for all zbioru kandydującego C C k do 4: if C T then 5: C.count + + 6: end if 7: end for 8: end for 9: end procedure Algorytm Apriori kończy swoje działanie gdy w przebiegu nie zostanie znaleziony żaden zbiór częsty. Wynikiem działania algorytmu jest zbiór zbiorów częstych o rozmiarach 1, 2,..., k, pochodzących z kolejnych przebiegów głównej pętli algorytmu. 2.2 Wzorce sekwencyjne Odkrywanie wzorców sekwencyjnych (ang. sequential patterns) jest problemem znajdowania zależności występujących pomiędzy zdarzeniami, zachodzącymi w określonym przedziale czasu. Podobnie jak w przypadku reguł asocjacyjnych, tu również działania mające na celu odnalezienie tych zależności znajdują swoją pierwotną motywację w odkrywaniu zachowań konsumenckich. Mając bowiem dane identyfikator klienta i występujące po sobie koszyki zakupów, możemy określić jakiego typu zakupy występują najczęściej po sobie. Problem ten, przedstawiony w [3], opisać możemy następująco: Niech I = {i 1, i 2,..., i k } będzie zbiorem elementów. Niepusty zbiór elementów T, taki że T I, nazywamy transakcją. Sekwencja S jest uporządkowaną listą (T 1, T 2,..., T n ), gdzie T i jest zbiorem elementów, nazywanym wyrazem sekwencji S. Sekwencja S posiadająca k wyrazów nazywana jest k-sekwencją. Mówimy wtedy, że jej długość (ang. length) wynośi k i zapisujemy to jako length(s). 18

Każdy z wyrazów T i może zawierać jedynie jedno wystąpienie danego elementu, jednakże element może wystąpić wielokrotnie w jednej sekwencji S, jeżeli zawiera się w różnych wyrazach sekwencji tj. T 1, T 2,..., T n. Liczba wystąpień instancji elementów w S nazywana jest rozmiarem (ang. size) sekwencji i zapisujemy ją jako size(s). Definicja 2.2.1. Sekwencja S 1 = (A 1, A 2,..., A n ) zawiera się w sekwencji S 2 = (B 1, B 2,..., B m ), jeżeli istnieją takie liczby naturalne i 1 < i 2 < < i n, że A 1 B 1, A 2 B 2,..., A n B n. Relację zawierania sekwencji S 1 w S 2 zapisujemy jako S 1 S 2. Sekwencja S, która nie zawiera się w żadnej innej sekwencji, nazywana jest sekwencją maksymalną. W przypadku sekwencji możemy rozróżnić więcej niż jeden rodzaj wsparcia, które definiuje się nasępująco: Definicja 2.2.2. Wyraz T i sekwencji S wspiera zbiór elementów X, jeżeli wszystkie elementy z X występują w T i. Jeżeli dowolny wyraz T i w sekwencji S wspiera zbiór elementów X, to mówimy że sekwencja S wspiera zbiór X. Wsparcie zbioru X przez sekwencję S jest niezależne od liczby wystąpień wspierających ten zbiór wyrazów, w danej sekwencji S. Definicja 2.2.3. Sekwencja S wspiera sekwencję Q, jeżeli Q zawiera się w sekwencji S. Mając zbiór sekwencji (bazę danych sekwencji) D = (S 1, S 2,..., S n ), możemy określić wsparcie sekwencji S w zbiorze D. Definicja 2.2.4. Wsparcie sekwencji S w zbiorze sekwencji D jest liczbą (lub procentem) sekwencji ze zbioru D, które wspierają sekwencję S i zapisywane jest jako sup(s). Mówimy że sekwencja jest sekwencją częstą lub wzorcem sekwencji, jeżeli jej wartość wsparcia w zbiorze sekwencji D spełnia warunek progowy, zdefiniowanego przez użytkownika minimalnego wsparcia (ang. minsupport). 19

Sekwencje częste, które są maksymalne, nazywać będziemy maksymalnymi wzorcami sekwencji. Problem odkrywania wzorców sekwencji w bazie danych sekwencji D określić możemy jako znalezienie wszystkich występujących w niej wzorców sekwencji. 2.2.1 Znajdowanie wzorców sekwencyjnych Ogólny algorytm znajdowania wzorców sekwencyjnych został zaproponowany w [3]. Jest on rozszerzeniem algorytmu Apriori (patrz 2.1.1) i podobnie jak on wykorzystuje monotoniczność miary wsparcia. W algorytmie możemy wyróżnić pięć podstawowych kroków: Sortowanie Polega na posortowaniu i przekształceniu oryginalnej transakcyjnej bazy danych, do postaci sekwencyjnej bazy danych D. Znajdowanie zbiorów częstych Krok ten jest zbliżony do wykonania algorytmu Apriori na transakcyjnej bazie danych. Różnica polega na innym sposobie liczenia wsparcia sup(x) zbioru elementów X. Zamiast zliczać wsparcie zbioru X dla każdej transakcji T D, liczone jest wsparcie zbioru względem sekwencji S D. Jeżeli więc dany zbiór X wspierany jest przez kilka wyrazów sekwencji S, sekwencja ta zostanie uwzględniona wyłącznie jeden raz przy liczeniu wsparcia dla X. Znalezione w tym kroku zbiory częste są jednocześnie 1-sekwencjami. Transformacja Motywacją przeprowadzenia kroku transformacji jest przyspieszenie wykonywania następnego kroku algorytmu, wymagającego wielokrotnego określania, które ze znalezionych zbiorów częstych występują w sekwencji. Dlatego też zbiór sekwencji sprowadzany jest do postaci alternatywnej. W przekształconym zbiorze sekwencji każdy z wyrazów T i sekwencji S zastępowany jest przez uporządkowaną listę zbiorów częstych (1-sekwencji), zawierających się w danym wyrazie. Jeżeli transakcja T i nie zawiera żadnego 20

zbioru częstego, wtedy nie wchodzi w skład przekształconej sekwencji S. Jeżeli natomiast dana sekwencja nie zawiera żadnego zbioru częstego, wtedy nie wchodzi ona w skład przekształconego zbioru sekwencji D T (bazy danych sekwencji), jednakże nadal wliczana jest przy obliczaniu wartości wsparcia w zbiorze sekwencji. Sekwencjonowanie W kroku tym używamy przekształconych sekwencji ze zbioru sekwencji D T, by odnaleźć występujące w niej wzorce sekwencyjne. Realizuje to opisany w dalszej części algorytm GSP (patrz 2.2.2). Maksymalizacja Ostatni krok ma na celu znalezienie maksymalnych wzorców sekwencji pośród znalezionych wzorców sekwencji (sekwencji częstych). Zakładając że w ostatnim kroku sekwencjonowania znaleźliśmy n-sekwencje częste, wykonujemy Alorytm 4. Algorytm 4 Maksymalizacja wzorców sekwencji Require: S sekwencje częste 1: for (k n; k > 1; k ) do 2: for all k-sekwencji częstej S S k do 3: for all sekwencji częstej Q S len(q) < k do 4: if Q S then 5: delete Q from S 6: end if 7: end for 8: end for 9: end for 2.2.2 GSP Zaproponowany w [4] algorytm GSP (Generalized Sequential Pattern) służy do znajdowania wzorców sekwencyjnych. GSP jest algorytmem wielokrokowym, iteracyjnie skanującym bazę danych sekwencji. W k-tej iteracji otrzymujemy zbiór k-sekwencji częstych, których wsparcie w bazie danych jest większe niż ustalony próg minimalnego wsparcia (ang. minsupport). Główna część została przedstawiona w Algorytm 5, a w opisie użyto następującej notacji: 21

C k oznacza k-sekwencje kandydujące, S k jest zbiorem k-sekwencji częstych, C.counter jest polem zliczającym wsparcie dla sekwencji C, S[i] jest i-tym wyrazem sekwencji S, S[1] S[2] S[k] oznacza k-sekwencję, która zawiera wyrazy S[1], S[2],..., S[k]. Algorytm 5 GSP Require: D Require: minsupport 1: S 1 { 1-sekwencje częste } 2: for (k 2; S k 1 ; k + +) do 3: C k GspAprioriGenerate(S k 1 ) 4: GspSupportCount(C k ) 5: S k {C C k C.count minsupport } 6: end for 7: return k S k baza sekwencji Algorytm rozpoczyna swoje działanie od przejścia przez bazę sekwencji D i znalezienia wszystkich 1-sekwencji częstych. Każde następne przejście algorytmu bazuje na zbiorze zalążkowym, będącym sekwencjami częstymi znalezionymi w poprzednim kroku S k 1. Zbiór zalążkowy służy wygenerowaniu zbioru sekwencji kandydujących C k, których to długość jest o 1 większa niż sekwencji w zbiorze zalążkowym. Za generowanie kandydatów odpowiedzialna jest funkcja GspAprioriGenerate (Algorytm 6). W kroku tym połączone zostają sekwencje częste, których k 2 początkowe elementy są takie same. Ostatni wyraz nie ma znaczenia, dlatego też może nastąpić połączenie sekwencji samej ze sobą. Następnie w procedurze GspSupportCount (patrz Algorytm 7) wygenerowane sekwencje kandydujące weryfikowane są pod kątem spełniania warunku minimalnego wsparcia, poprzez zliczenie ich wsparcia w zbiorze sekwencji. Algorytm GSP kończy swoje działanie jeżeli nie zostanie znaleziona żadna sekwencja częsta w danej iteracji. Wynikiem działania algorytmu jest zbiór 22

Algorytm 6 GSP Generowanie sekwencji kandydujących 1: function GspAprioriGenerate(S k 1 ) 2: for all P, Q S k do 3: if P [1] = Q[1] P [k 2] = Q[k 2] then 4: C P [1] P [2] P [k 2] P [k 1] Q[k 1] 5: C k C k + C 6: end if 7: end for 8: for all k-sekwencji C C k do 9: for all (k 1)-sekwencji Q C do 10: if Q / S k 1 then 11: delete C from C k 12: end if 13: end for 14: end for 15: return C k+1 16: end function Algorytm 7 GSP Liczenie wsparcia sekwencji kandydujących 1: procedure GspSupportCount(C k ) 2: for all sekwencji S D do 3: for all k-sekwencji kandydującej C C k do 4: if C S then 5: C.count + + 6: end if 7: end for 8: end for 9: end procedure 23

sekwencji częstych o rozmiarach 1, 2,..., k, pochodzących z kolejnych przebiegów głównej pętli algorytmu. 24

3. Wprowadzenie do zagadnienia zapewniania prywatności w eksploracji danych Ogromny postęp w technologii pozyskiwania i przechowywania danych jaki dokonał się na przestrzeni ostatnich lat, przyczynił się do zwiększenia możliwości tworzenia ogromnych zbiorów danych, zawierających dane o klientach i innych osobach prywatnych. Zrodziło to liczne obawy dotyczące sposobu wykorzystania zgromadzonych informacji. Licznie opracowane techniki zapewniania prywatności w procesie eksploracji danych mają zmniejszyć pojawiające się obawy. Pozwalają na stworzenie dobrych modeli danych, jednocześnie nie pozwalając na dokładny dostęp do pojedynczych rekordów. [5] 3.1 Techniki zapewniania prywatności Wyróżniamy dwie główne techniki zapewniania prywatności danych w procesie eksploracji kryptograficzne oraz bazujące na rekonstrukcji. 3.1.1 Kryptograficzne Techniki kryptograficzne znajdują szerokie zastosowanie w metodach zapewniania prywatności eksploracji rozproszonych danych. Celem zastosowania tych metod jest umożliwienie odkrycia użytecznej wiedzy statystycznej z całości danych, nie narażając prywatności pojedynczych zbiorów posiadanych przez poszczególne strony, uczestniczące w procesie eksploracji danych. 25

W ogólnym ujęciu techniki kryptograficzne służą zapewnianiu metod obliczeniowych, bazujących na danych wejściowych od różnych uczestników obliczeń, bez udostępniania wprowadzanych danych między stronami obliczeń. Szersze omówienie zastosowania kryptografii w zapewnianiu prywatności w eksploracji danych znajdziemy w [6]. Wiele dostępnych metod eksploracji danych można przekształcić do postaci zapewniającej prywatność podczas wymiany wiedzy między stronami. Problem ograniczonej wymiany wiedzy między dwiema stronami został zaprezentowany w [7], a jego generalizację, uwzględniającą większą liczbę stron uczestniczących w obliczeniach, znajdziemy w [8]. Sposoby na przekształcenie klasycznych algorytmów eksploracji danych do postaci rozproszonej zapewniającej prywatność znajdziemy w [9] oraz [10]. Podział danych w rozproszonej bazie danych Przedstawione w [9, 10] techniki mają zastosowanie przy różnych typach podziału danych w rozproszonej bazie danych. Dane mogą być bowiem podzielone na dwa sposoby wertykalnie (pionowo) oraz horyzontalnie (poziomo). O podziale horyzontalnym mówimy wtedy, gdy poszczególne strony posiadają różne zbiory rekordów o tych samych lub w większości tych samych atrybutach, które są wykorzystywane w procesie eksploracji danych. Podział wertykalny ma miejsce wtedy, gdy rekordy w poszczególnych zbiorach danych, posiadane przez różnych uczestników procesu eksploracji danych, mają różne atrybuty. 3.1.2 Bazujące na rekonstrukcji Chcąc zachować prywatność podczas eksploracji danych znajdujących się w centralnej bazie danych, możemy skorzystać z technik bazujących na rekonstrukcji. Wprowadzenie prywatności w ich przypadku polega na zakłóceniu wartości pojedynczych rekordów w bazie danych, a wybrane metody modyfikacji danych opisane są w 3.2. W procesie eksploracji danych znany jest tylko zbiór danych zakłóconych oraz sposób ich zakłócenia. Eksplorujący nie ma dostępu do oryginalnego zbioru danych. W celu przeprowadzenie eksploracji należy metodami probabi- 26

listycznymi zrekonstruować oryginalny rozkład danych i na jego podstawie odkrywać modele, występujące w zagregowanych danych. [5] Możemy wyróżnić dwa podstawowe schematy zakłócania danych zakłócanie danych w momencie wprowadzania oraz zakłócanie przy udostępnianiu danych. W pierwszym przypadku dane modyfikowane są już przy wprowadzaniu ich do bazy danych i nie istnieje całościowa baza z oryginalnymi danymi. Poszczególne rekordy modyfikowane są zazwyczaj niezależnie, przy użyciu metod losowych. Sposób ten ma zazwyczaj zastosowanie w przypadku danych, które są na tyle wrażliwe dla użytkownika, że w przeciwnym wypadku nie zgodziłby się na ich składowanie lub też zapewnienie prywatności jest wymuszone przepisami prawa. W przypadku zakłócania przy udostępnianiu danych, istnieje centralna baza z oryginalnymi rekordami, zarządzana przez zaufaną instytucję. Dane zakłócane są w momencie, gdy są udostępniane podmiotom zewnętrznym, a nie chcemy narażać prywatności rekordów się w nich znajdujących. Zastosowanie wtedy znajdują liczne techniki zakłócania, zarówno bazujące na pojedynczych rekordach jak i na zagregowanych ich zbiorach. 3.2 Wybrane metody modyfikacji danych zapewniające prywatność Metody modyfikacji danych polegają na przekształceniu zbioru oryginalnego, wprowadzając zakłócenie do danych w nim zawartych. Można je wykorzystywać zarówno do zmiany atrybutów ciągłych, jak i dyskretnych. Tak przetworzone dane mogą być następnie udostępnione innym podmiotom, chcącym przeprowadzić na nich zadania eksploracji danych. 3.2.1 Losowe zakłócanie wartości Wartości atrybutów możemy zakłócać w sposób losowy. Metoda losowego zakłócenia wartości może być stosowana do przekształcania pojedynczych rekordów, nie musi znać wartości pozostałych danych w bazie danych. Wyróż- 27

nimy podstawowe sposoby takiej modyfikacji, w zależności od typu atrybutów, na których je użyto. Atrybuty binarne Metoda losowego zakłócania atrybutów binarnych wywodzi się z metody losowej odpowiedzi, którą stosowano jako sposób uzyskania odpowiedzi na pytania, na których ankietowani odpowiadali niechętnie. Polegała ona na zadaniu dwóch powiązanych pytań skonstruowanych tak, by odpowiedzi na nie były przeciwne. Ankieter dostaje tylko odpowiedź Tak lub Nie, nie wie zaś które pytanie zostało zadane. Samo narzędzie przeprowadzania ankiet jest tak skonstruowane, że respondent odpowiada na pierwsze pytanie z prawdopodobieństwem θ, a na drugie 1 θ. Przyjmijmy zatem, że mamy atrybut binarny A bin, który może przyjmować dwie możliwe wartości 0 i 1. Atrybutowi takiemu przypisujemy prawdopodobieństwo p, nazywane współczynnikiem losowości. W procesie modyfikacji atrybut binarny A bin zachowa swoją wartość z prawdopodobieństwem p lub zostanie zmieniony na wartość przeciwną z prawdopodobieństwem (1 p). Przekształceniu poddajemy wartości każdego z atrybutów. Współczynniki losowości poszczególnych atrybutów mogą być takie same lub różnić się w zależności do atrybutu. [11] Atrybuty nominalne Metoda zmiany wartości atrybutów nominalnych jest uogólnieniem metody stosowanej dla atrybutów binarnych. Tu również z każdym atrybutem wiążemy pewien współczynnik prawdopodobieństwa p, z którym wartość oryginalna atrybutu zostanie zachowana. Wartość zostanie zaś zmieniona na inną z prawdopodobieństwem 1 p. Przyjmijmy, że atrybut może przybierać k możliwych wartości, z których każda jest równie prawdopodobna przy zmianie. Wtedy prawdopodobieństwo zmiany oryginalnej wartości atrybutu na daną inną wartość wynosi: 1 p k 1 28

Możliwe jest również szczegółowego zdefiniowania prawdopodobieństw z jakimi dochodzi do zamiany (lub zachowania) oryginalnej wartości v i do v j. Dokonujemy tego poprzez wprowadzenia macierzy przekształceń P, którą pokazujemy poniżej. [12] a 1,1 a 1,2 a 1,k a P = 2,1 a 2,2 a 2,k...... a k,1 a k,2 a k,k gdzie a j,i jest prawdopodobieństwem zamiany wartości v i v j. Atrybuty ciągłe W zakłócaniu wartości atrybutów ciągłych możemy rozróżnić dwie podstawowe techniki, addytywną oraz multiplikatywną. Metoda addytywna, przedstawiona w [5], polega na dodaniu losowej wartości r do oryginalnej wartości x i, zgodnie ze wzorem: z i = x i + r gdzie r losowane jest z zadanego rozkładu. Najczęściej stosowane są rozkład jednostajny lub rozkład normalny. W rozkładzie jednostajnym zmienna r przyjmuje wartości z przedziału < α, α >, a średnia wartość równa jest 0. W przypadku rozkładu normalnego wykorzystuje się rozkład o średniej wartości równej 0 i wariancji σ 2. Metoda multiplikatywna również bazuje na losowaniu pewnej wartości r z zadanym rozkładem. Wartość przekształcona uzyskiwana jest wtedy poprzez przemnożenie wartości oryginalnej przez wartość wylosowaną: z i = x i r Przykłady zastosowania oraz dokładny opis metody multiplikatywnej znajdziemy w [13], [14] oraz [15]. W przypadku losowego zakłócania wartości ważne jest, by zapamiętać wartość zmodyfikowaną. Wielokrotne losowanie z udostępnianiem wyniku 29

może prowadzić do umożliwienia oszacowania konkretnej wartości oryginalnej, po wielokrotnych zapytaniach. 3.2.2 Inne wybrane metody Przykładami innych metod zakłócania danych są: Dyskretyzacja (agregacja) Metoda stosowana głównie w przypadku atrybutów ciągłych, zaprezentowana w [5]. Polega na podziale dziedziny atrybutu ciągłego na rozłączne klasy. Następnie dana wartość atrybutu przyporządkowywana jest odpowiedniej klasie w zależności od przedziału, w którym się mieści. Przyporządkowanie to skutkuje zmianą wartości atrybutu na wartość odpowiednią danej klasie. Należy zaznaczyć, że długości przedziałów dzielących dziedzinę atrybutu nie muszą być równe. Przykładem zastosowania może być podawanie przedziału wieku lub pensji danej osoby, zamiast konkretnej wartości. Metoda dopuszcza również użycie jej dla atrybutów dyskretnych, jeżeli są kolejnościowe. Zaokrąglanie Zaokrąglanie jest szczególnym przypadkiem dyskretyzacji, najczęściej stosowanym do zniekształcania atrybutów ciągłych. Wartości zaokrąglenia wybiera się spośród zbioru zaokrągleń. Zbiór ten generowany jest poprzez zwielokrotnianie zdefiniowanej podstawy. Jeżeli za postawę wybierzemy jedynkę, sprowadza się to do standardowego zaokrąglania do liczb całkowitych znanego z matematyki. Powtórzone próbkowanie Metoda powtórzonego próbkowania (ang. resampling) jest stosowana w przypadku atrybutów ciągłych. Wybierane jest niezależnie t próbek S 1,..., S t wartości oryginalnego atrybutu A i. Następnie każda z tych próbek jest sortowana przy pomocy tego samego kryterium rankingowego. Finalnym krokiem jest utworzenie przekształconego atrybutu Z i jako x 1,... x n, gdzie x j jest średnią z j-tych elementów w posortowanych S 1,..., St 30

Blokowanie Metoda stosowana głownie do ukrycia atrybutów nominalnych. Polega na zamianie wartości atrybutu na znak nieznanej wartości spoza domeny atrybutu, często reprezentowanej jako?. Znajduje swoje zastosowanie w przypadkach, gdzie zakłócenie wartości atrybutu do innej wartości jest niepożądane np. w danych medycznych. [16] Zamiana wartości Metoda wymiany wartości (ang. swapping), której opis znajdziemy w [17]. Polega na wymianie wartości atrybutów między różnymi rekordami w bazie danych. Ma zastosowanie dla atrybutów ciągłych [18] oraz kategorycznych [19]. Rankingowa zamiana wartości Szczególną odmianą metody zamiany wartości jest zamiana rankingowa (ang. rank swapping). Jej opis dla atrybutów numerycznych znajdziemy w [20]. Rozpoczynamy od posortowania wartości atrybutu A i w rosnącej kolejności. Następnie każda z posortowanych wartości atrybutu A i, zostaje podmieniona z inną wartością z listy, przy zachowaniu ograniczonego zakresu. Zakres zamienianych wartości definiowany jest tak, że nie różnią się o więcej niż p% z całkowitej liczby rekordów. Użyty jest natomiast niezależnie dla każdej z wartości w oryginalnym zbiorze danych. 3.3 Wybrane miary prywatności Dostępne są różne miary pozwalające określić stopień prywatności, jaki możemy zapewnić poprzez zakłócenie danych. Dalej prezentowane są wybrane, popularne miary. 3.3.1 Miara prywatności w oparciu poziom pewności Miara prywatności bazująca na poziomie pewności z jaką możemy oszacować oryginalną wartość zmiennej, która została losowo zniekształcona, została 31

Poziom pewności 50% 95% 99,9% Dyskretyzacja 0, 5 W 0, 95 W 0, 99 W Rozkład jednostajny 0, 5 2α 0, 95 2α 0, 99 2α Rozkład normalny 1, 34 σ 3, 92 σ 6, 58 σ Tablica 3.1: Wielkość miary prywatności dla różnych metod zakłócania wartości zaproponowana w [5]. Przyjmijmy, że możemy oszacować z pewnością c%, iż oryginalna wartość x atrybutu leży w przedziale < x 1, x 2 >. Definicja 3.3.1. Miara prywatności o zadanym poziomie pewności c% jest długością przedziału < x 1, x 2 > i wynosi (x 2 x 1 ). Wartości miary prywatności dla różnych poziomów pewności, przy zastosowaniu różnych metod zakłócania danych, przedstawione są w Tabeli 3.1. 3.3.2 Miara prywatności w oparciu o entropię Mierzenie prywatności bazujące na entropii różnicowej losowej zmiennej zaproponowano w [21]. Entropia dla zmiennej A wynosi: h(a) = f A (a) log 2 f A (a)da Ω A gdzie Ω A oznacza dziedzinę A. Możemy powiedzieć, że h(a) jest miarą niepewności zawartą w A. Definicja 3.3.2. Miarę prywatności zmiennej losowej A określamy następująco: Π(A) = 2 h(a) gdzie h(a) jest zdefiniowaną powyżej entropią zmiennej A. Zatem losowa zmienna X o jednorodnym rozkładzie w przedziale < 0, a > będzie miała prywatność wynoszącą Π(X) = 2 log 2 (a) = a. 32

Miara utraty prywatności w oparciu o informację wzajemną Mając określoną entropię zmiennej losowej możemy zdefiniować prywatność warunkową, biorącą pod uwagę dodatkowe, znane informacje o zakłóconych danych. Mając losową zmienną B, warunkowa entropia różnicowa dla A wynosi: h(a B) = f A,B (a, b) log 2 f A B=b (a)dadb Ω A,B gdzie Ω A,B oznacza dziedzinę zmiennych A i B. Definicja 3.3.3. Warunkową utratę prywatności A, gdy zmienna B jest znana, określamy następująco: P(A B) = 1 Π(A B) Π(A) = 1 2 I(A;B) gdzie I(A; B) jest informacją wzajemną między losowymi zmiennymi A i B, która wynosi h(a) h(a B). 3.3.3 Miara prywatności w oparciu o prawdopodobieństwo rekonstrukcji Miara prywatności wykorzystująca prawdopodobieństwo poprawnej rekonstrukcji została zaprezentowana w [11]. Niech s 0 będzie oryginalnym, średnim wsparciem elementu w transakcyjnej bazie danych, znormalizowanym do liczby rekordów. Prawdopodobieństwo że losowy klient C kupił i-ty element (czyli, że element znajduje się w transakcji) wynosi s i. Oszacujmy następnie prawdopodobieństwo poprawnej rekonstrukcji, w przypadku gdy element rzeczywiście znajdował się w transakcji (czyli wystąpiła wartość 1 ) przed przekształceniem. Wynosi ono: R 1 (p) = s 0 p 2 s 0 p + (1 s 0 )(1 p) + s 0 (1 p) 2 s 0 (1 p) + (1 s 0 )p gdzie p jest prawdopodobieństwem zachowania wartości oryginalnej podczas przekształcenia. Analogicznie możemy policzyć prawdopodobieństwo rekonstrukcji w przypadku gdy elementu nie było w oryginalnej transakcji, czyli występowała 33

p Prywatność 0.5 89% 0.7 88% 0.8 87% 0.9 83% 0.95 76% 1.0 0% Tablica 3.2: Wielkość miary prywatności dla s 0 = 0.01 oraz α = 0.9. wartość 0 : R 0 (p) = (1 s 0 )p 2 (1 s 0 )p + s 0 (1 p) + (1 s 0)(1 p) 2 s 0 p + (1 s 0 )(1 p) gdzie p jest prawdopodobieństwem zachowania wartości oryginalnej, podczas przekształcenia. Łączne prawdopodobieństwo rekonstrukcji wynosi: R(p) = αr 1 (p) + (1 α)r 0 (p) gdzie α jest wagą daną wartościom 1 w bazie nad wartościami 0. Definicja 3.3.4. Prywatności opartą na prawdopodobieństwie rekonstrukcji określamy procentowo jako: P(p) = (1 R(p)) 100 Prywatność ma więc wartość maksymalną równą 100%, gdy prawdopodobieństwo poprawnej rekonstrukcji R(p) wynosi 0. Wielkość prywatności zależną od parametru p przy wartościach s 0 = 0.01 oraz α = 0.9, pokazuje Tabela 3.2. 34

4. Eksploracja reguł asocjacyjnych z zapewnianiem prywatności Zapewnianie prywatności w eksploracji reguł asocjacyjnych było zagadnieniem podejmowanym wielokrotnie w licznych pracach. Przegląd dostępnych metod przedstawiono w 4.1. Dalej w 4.2 opisano szczegółowo algorytm MASK, a w 4.3 jego modyfikację MMASK. 4.1 Przegląd dostępnych metod Możemy rozróżnić kilka podstawowych rodzajów zapewniania prywatności w procesie odkrywania reguł asocjacyjnych. Ukrycie reguł Pierwszym z podejść do realizacji zapewnienia prywatności jest ukrycie pewnych reguł asocjacyjnych przed eksploracją, gdy dysponujemy oryginalną bazą danych. Wiąże się to z obniżeniem poziomu wsparcia lub poziomu ufności dla ukrywanej reguły, poniżej przyjętych progów minimalnych, jednocześnie starając się zachować jak najwięcej wiedzy [22]. Dokonujemy tego poprzez manipulację (usunięcie lub dodanie) elementami transakcji wspierających zbiory częste, tworzące ukrywane reguły asocjacyjne. Innym sposobem, zaproponowanym w [16], jest wprowadzenie niewiadomych (ang. unknowns) w binarnej reprezentacji transakcji. 35

Techniki kryptograficzne Innym przypadkiem zapewniania prywatności reguł asocjacyjnych jest sytuacja, w której chcemy zapewnić prywatność na poziomie pojedynczych rekordów podczas eksploracji danych w rozproszonej bazie danych, której części należą do różnych organizacji. Zastosowanie mają wtedy techniki kryptograficzne. W zależności od specyfiki danych rozróżniamy eksplorację danych podzielonych horyzontalnie oraz wertykalnie. Bezpieczne użycie danych podzielonych horyzontalnie, gdzie poszczególne strony posiadają różne transakcje w swoich bazach danych, omówione jest w [23]. Z kolei o obliczeniach na wertykalnie podzielonych danych, gdzie bazy danych różnych organizacji zawierają tylko określone człony transakcji, przeczytamy w [24]. W przypadku bardzo dużych rozproszonych zbiorów danych, zastosowanie mogą mieć techniki opisane w [25]. Zakłócanie danych Kolejnym podejściem do zagadnienia jest zapewnienie prywatności pojedynczych rekordów w scentralizowanej bazie danych, poprzez wprowadzenie zakłócenia danych. Proces eksploracji danych przebiega wtedy na danych zakłóconych, przy jednoczesnym uwzględnieniu wiedzy na temat zakłócenia. Zakłócenie takie może polegać na wprowadzeniu fałszywych transakcji do zbioru danych. Dzięki wprowadzeniu takiego szumu przeplatającego się z prawdziwymi transakcjami, nie ma możliwości dokładnego określenia pochodzenia transakcji. W procesie odkrywania reguł asocjacyjnych opisanym w [26] niezbędna jest wtedy rekonstrukcja cech oryginalnego zbioru, poprzez filtrowanie transakcji. Nie zawsze jednak pożądane jest występowanie transakcji w oryginalnej formie, nawet jeżeli znajdują się w towarzystwie transakcji fałszywych. Aby rozwiązać ten problem, możemy dokonać zakłócenia atrybutów transakcji w zbiorze danych. Zakłóceniu poddawane są wtedy kolejne transakcje pojedynczo i niezależnie. Zakłócenia tego możemy dokonać poprzez zastąpieniem zbioru elementów w transakcji jego losowym podzbiorem. Metoda zakłócania i rekonstrukcji, korzystająca z takiego podejścia, przedstawiona jest w [27]. Zakłócenie atrybutów transakcji można również przeprowadzić bazując na metodzie losowej odpowiedzi, gdzie każdy z elementów binarnej transakcji 36

może ulec zamianie z pewnym prawdopodobieństwem. Podejście to zostało zaprezentowane w [11]. Wytworzony został schemat zapewniania prywatności MASK, który opisany jest w 4.2. Ze względu na dużą złożoność obliczeniową (wykładniczą), wypracowana została w [28] optymalizacja w postaci MMASK, której opis znajdziemy w 4.3. 4.2 MASK MASK (Mining Associations with Secrecy Konstraints) jest sposobem na zachowanie prywatności eksploracji danych w scentralizowanej bazie danych. Przedstawiony został w [11]. 4.2.1 Zakłócanie danych W ogólnej formie zakłócanie danych stosowane w MASK polega na wprowadzeniu losowego zakłócenia do atrybutów binarnych za pomocą macierzy przekształcenia M. Oryginalna wersja zaprezentowana w [11] używa do tego celu wyłącznie jednego współczynnika p zachowania oryginalnej wartości atrybutu w transakcji, niezależnie od tego który to atrybut i jaka jest jego wartość (0 czy 1). Jednakowy współczynnik losowości p, niezależny od wartości pierwotnej, może spowodować spadek efektywności eksploracji danych, ponieważ sprzyja wzrostowi liczby 1-nek w transakcjach. Przyjmując, że mamy znacznie więcej wystąpień 1 niż 0 w oryginalnych transakcjach oraz współczynnik p < 0.7, 0.9 >, nastąpi zwiększenie liczby elementów w zakłóconych transakcjach. Aby temu zapobiec w [29] proponuje się wprowadzenie różnych współczynników zachowania wartości - p dla jedynek ( 1 ) oraz q dla zer ( 0 ). Inna generalizacja metody zakłócania atrybutów przedstawiona została w [30]. Ze względu na możliwość wystąpienia różnych potrzeb co do stopnia prywatności różnych atrybutów, proponuje się zastąpienie jednego współczynnika p, wieloma parametrami p 1, p 2,..., p k dla każdego z atrybutów A 1, A 2,..., A k transakcji. Połączeniem tych podejść jest ogólna metoda, która dla atrybutu A i użyje 37

współczynnika p i w przypadku wartości 1, a współczynnika q i przy wartości 0. Otrzymujemy wtedy macierz M i przekształcenia tego atrybutu. M i = p i 1 q i 1 p i q i 4.2.2 Szacowanie wsparcia zbioru jednoelementowego Przyjmijmy, że oryginalny zbiór danych T jest reprezentowany w postaci macierzowej jako macierz T. Zakłócając go otrzymujemy zbiór danych D, reprezentowany przez macierz D. Niech C T 1 oraz C T 0 będą liczbami odpowiednio jedynek ( 1 ) i zer ( 0 ) w i-tej kolumnie macierzy T. Natomiast C1 D oraz C0 D analogicznymi liczbami w D. Liczniki wsparcia reprezentowane będą wektorowo przez C T oraz C D w następującej postaci: C T = CT 1 C T 0, C D = CD 1 C D 0 Wsparcie i-tego elementu w oryginalnej macierzy T może być szacowane wykorzystując wsparcie tego elementu w macierzy D, używając następującego wzoru: C T = M 1 C D, gdzie M = p 1 q 1 p q 4.2.3 Szacowanie wsparcia zbioru k-elementowego Metodę szacowania wsparcia zbioru 1-elementowego można rozszerzyć do liczenia wsparcia dla zbioru k-elementowego. Wektorowa forma reprezentacji liczników wsparcia poszczególnych kombinacji elementów zbioru, przyjmuje wtedy następującą postać: 38

C T 2 k 1 C D 2 k 1 C T =. C1 T, C D =. C1 D C0 T C0 D gdzie Ci T oraz Ci D są licznikiem wsparcia wierszy długości k, opowiednio w macierzach T i D, które tworzą binarną reprezentację liczby i zapisanej na k bitach. Macierz M przyjmuje wtedy następującą postać: m 0,0 m 0,1 m 0,2 k 1 m M = 1,0 m 1,1 m 1,2 k 1...... m 2 k 1,0 m 2 k 1,1 m 2 k 1,2 k 1 gdzie m i,j jest prawdopodobieństwem, że wiersz będący binarną reprezentacją liczby j, zostanie przekształcony w wiersz o binarnej formie liczby i. Na przykład zbiór 2-elementowy 10 zostanie przekształcony w zbiór 11 z prawdopodobieństwem m 3,2 = p 1 (1 q 2 ). Pierwszy element 1 zostanie zachowany z prawdopodobieństwem p 1. Drugi element 0 zostanie zmieniony w 1 z prawdopodobieństwem (1 q 2 ). Elementy podlegają przekształceniom niezależnie, stąd oba prawdopodobieństwa są mnożone, by uzyskać m 3,2. 4.2.4 Odkrywanie zbiorów częstych Aby znaleźć zbiory częste w oryginalnym zbiorze danych T, mając do dyspozycji zakłócony zbiór D, możemy wykorzystać algorytm Apriori (patrz Algorytm 1) zmodyfikowany na potrzeby MASK. Zmianom poddano przede wszystkim procedurę liczenia wsparcia oraz selekcji kandydatów ze względu na próg minimalnego wsparcia. Funkcja generowania nowych kandydatów (patrz Algorytm 2) pozostaje niezmieniona. Główna część algorytmu MASK przestawiona została w Algorytmie 8. W opisie użyto następującej notacji: X k oznacza k-elementowe zbiory kandydujące (potencjalnie częste), 39