1 / 79

CAPITOLE AVANSATE DE BAZE DE DATE

CAPITOLE AVANSATE DE BAZE DE DATE. DATA PRIVACY. K-ANONIMITY. Data privacy. K-anonymity. In prezent – informatia este cea mai importanta si solicitata resursa.

meagan
Télécharger la présentation

CAPITOLE AVANSATE DE BAZE DE DATE

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CAPITOLE AVANSATE DE BAZE DE DATE DATA PRIVACY. K-ANONIMITY

  2. Data privacy. K-anonymity • In prezent – informatia este cea mai importanta si solicitata resursa. • O serie de institutii din sectorul guvernamental sau privat colecteaza informatii. Aceste informatii sunt solicitate spre a fi mai departe cercetate (statisticieni, cercetatori, etc.) – in format electronic. • Intr-o prima faza, informatia era oferita direct in format statistic. In prezent, se solicita ca informatia sa fie oferita asa cum este stocata – microdata. • Avantajul de a oferi direct microdata in locul informatiilor statistice este flexibilitatea si disponibilitatea informatiei pentru utilizator. • O serie de institutii precum birouri de recensamant, agentii federale, centre de statistica in educatie, departamente pentru inregistrarea vehiculelor, organizatii de sanatate publica, asigurari, comerciale s.a. ofera spre vanzare sau cercetare microdata din bazele lor de date (baze de date statistice – vezi data mining). • In general, insa, aceste microdata contin in forma lor initiala (la posesor) informatie de identificare a subiectilor.

  3. Data privacy. K-anonymity • Se considera subiect ca fiind o persoana, un grup de persoane, o institutie, o organizatie... sau orice altceva despre care se retine informatie statistica. • In continuare se considera ca pentru un subiect exista o inregistrare. • Pentru a proteja identitatea subiectilor care au luat parte la studiu, datele care sunt oferite sunt prelucrate in primul rand prin eliminarea oricarei forme de identificare imediata (nume, SSN / CNP, adresa, numar de telefon s.a.).

  4. Data privacy. K-anonymity • Totusi, dupa eliminarea datelor de identificare, pot sa ramana informatii, aparent anonime, care sa identifice subiecti in mod unic sau aproape unic. • De exemplu: (data nasterii, sexul, codul postal) identifica unic 87% din populatia SUA. • Aceste date – sunt mari sanse sa fie gasite si in datele oferite de alte surse. Facand o legatura intre diferite seturi de date (microdata oferita fara informatie de identificare si baze de date publice), pe baza acestor informatii oferite, se poate determina subiectul sau un grup restrans de subiecti carora sa le fie asociata o informatie care se considera ca fiind confidentiala. • De exemplu: o serie de institutii de stat din SUA (cel putin) fac publice liste care contin informatii de identificare (nu imediata), informatii demografice, liste de vot, preferinte politice, vehicule, etc. – informatii care pot fi folosite in stabilirea de legaturi.

  5. Data privacy. K-anonymity • Figura 1. Se identifica datele persoanei marcate cu .

  6. Data privacy. K-anonymity • Figura 2.

  7. Data privacy. K-anonymity • Conform exemplului din figura 1. si figura 2., se constata nevoia de a altera chiar si o parte din datele oferite (nu este suficienta eliminarea informatiei de identificare directa). • Observatie: Securizarea datelor nu este o metoda de protectie a datelor private (privacy protection) (securitatea calculatoarelor, criptare, etc.). • Scopul anonimizarii / data privacy • nu este de a ascunde toate datele, • este de a publica date astfel incat sa nu se publice si date confidentiale subiectilor, sau sa nu se poata deduce asemenea date (dezvaluire, divulgare) – prin stabilirea de legaturi cu alte surse. • Metode de alterare a datelor: • interschimbarea datelor (intre subiecti diferiti) sau adaugarea de „zgomot”, astfel incat, per ansamblu, datele statistice sa nu fie afectate; insa, in aceasta situatie, veridicitatea datelor este afectata, si poate conduce la rezultate diferite pe anumite interogari (de exemplu: pentru diferite criterii de grupare – distributia (sex, varsta) a persoanelor care cumpara anumite produse); • generalizare si suprimare / eliminare.

  8. K-anonymity – metoda de protejare a datelor private • Se considera: • Exista un tabel cu datele originale, care contine informatii de identificare, informatii confidentiale, plus alte informatii, numit tabel privat (PT). Acest tabel trebuie anonimizat. • Primul pas = eliminarea datelor de identificare directa. Se considera mai departe ca PT contine mai departe doar informatii care le exclud pe cele de identificare directa. • Se considera ca PT = structura relationala: • tabel T (A1, . . . ,An) • un tuplu t  T , t[Ai, . . . ,Aj], o multime de atribute {Ai, . . . ,Aj}  {A1, . . . ,An}, reprezinta secventa de valori pentru atributele Ai, . . . ,Aj in t • T [Ai, . . . ,Aj ] = proiectia, cu pastrarea tuplelor duplicat, asupra atributelor Ai, . . . ,Aj in T • |T| = cardinalitatea lui T

  9. K-anonymity – metoda de protejare a datelor private • Se numeste cvasi-identificator un set de atribute din PT care pot fi legate cu informatie externa (coloane dintr-un set extern de date) pentru a re-identifica subiecti ai caror informatie refera. • Fie PD – persoana destinatar – cea care primeste microdata, si cea care dispune de alte seturi de date. • In functie de seturile de date accesibile PD, se pot determina mai multi cvasi-identificatori. • In continuare se considera ca exista un cvasi-identificator stabilit conform unui set extern. • Pentru protejarea datelor private, se considera ca fiind o masura suficienta asigurarea anonimitatii de nivel k (k-anonymity).

  10. K-anonymity – metoda de protejare a datelor private • Se spune ca un set de date ofera k-anonimitate daca orice tuplu din rezultat nu poate fi corelat cu mai putin de k subiecti, k intreg pozitiv. K este posibil sa fie stabilit prin intelegere intre subiecti si posesorul datelor initiale. • Cerinta de k-anonimitate • Fiecare set de date publicat trebuie sa satisfaca cerinta ca fiecare combinatie de valori ale cvasi-id-ului sa corespunda pentru cel putin k subiecti (fiecare combinatie de valori sa apara de cel putin k ori in setul de date publicat). • k-anonimitate • Fie T(A1, ..., An) un tabel si QI un cvasi-id al lui T. T satisface conditia de k-anonimitate in functie de QI ddaca fiecare secventa de valori ale T[QI] apare de cel putin k ori in T[QI].

  11. K-anonymity – metoda de protejare a datelor private • Observatie: Cerinta de k-anonimitate nu discuta (deocamdata) repetarile valorilor atributelor care nu fac parte dintr-un cvasi-id. • De exemplu: daca se respecta cerinta de k-anonimitate si toate tuplele care au aceeasi combinatie de valori pentru cvasi-id au aceeasi valoare pentru un alt atribut, dezvaluirea acelui atribut este clara (toti subiectii din grupul de cel putin k – se stie ca au acea proprietate). • Observatie: k-anonimizare cf. QI => exista cel putin k indivizi care sa se potriveasca unei secvente de valori in realitate (mari sanse sa fie mai multi de k indivizi, avand in vedere ca in general un studiu se efectueaza pe o parte a populatiei). • Observatie: Nici un subset al QI nu compromite conditia de k-anonimitate. • Observatie: Este posibil ca fiecarui atribut din QI sa-i fie asociata o pondere / prioritate – ca grad de anonimizare.

  12. Generalizarea datelor. Relatii de generalizare • Fiecare atribut al unui tabel T are asociat un domeniu de valori – se va numi domeniu de baza. • Generalizarea unui atribut= inlocuirea valorilor originale (care apartin domeniului de baza) cu valori mai generale, dar care includ si valorile originale. • Exemplu: • Data_nasterii: 12 ian 1995 -> ian 1995 -> 1995 • Adresa: Plopilor, 20, Cluj-Napoca, Cluj, RO -> Plopilor, Cluj-Napoca, Cluj, RO -> Cluj-Napoca, Cluj, RO -> Cluj, RO -> RO • Astfel, se stabileste o multime de domenii de generalizare care contin valori generalizate, si o relatie de asociere a unui domeniu cu domeniile care-l generalizeaza, pentru a face posibil procesul de generalizare.

  13. Generalizarea datelor. Relatii de generalizare • Asocierea se efectueaza stabilind o relatie de ordine partiala ≤D (relatie de generalizare) – relatie de ordine partiala peste Dom (multimea tuturor domeniilor posibile). • Fie Di si Dj. Di ≤D Dj daca valorile domeniului Dj sunt generalizare a valorilor din domeniul Di. • Relatia de generalizare indeplineste conditiile: • oricare Di, Dj, Dz  Dom, Di ≤D Dj, Di ≤D Dz => Dj ≤D Dz sau Dz ≤D Dj (relatia este de ordine totala peste multimea domeniilor de generalizare a unui domeniu de baza). • exista un singur element (domeniu) maximal pentru un proces de generalizare al unui atribut (un domeniu maximal contine o singura valoare; nu se poate generaliza mai mult). • Pentru fiecare domeniu (de baza) D se stabileste astfel, prin relatia de generalizare, o ierarhie de generalizare a domeniilor (DGHD).

  14. Generalizarea datelor. Relatii de generalizare • O relatie de generalizare a valorilor este o relatie de ordine partiala ≤V care asociaza unei valori din domeniul Di o valoare unica din domeniul Dj, unde Dj este o generalizare directa a Di. • Relatia de generalizare a domeniilor implica, pentru fiecare domeniu D, existenta unei ierarhii de generalizare a valorilor VGHD. • Pentru oricare VGHD, nodurile terminale contin valori din D, iar nodul radacina contine valoarea (unica) din domeniul maximal din DGHD. • Observatie: Ierarhia de generalizare a domeniilor = lista; ierarhia de generalizare a valorilor = arbore.

  15. Generalizarea datelor. Relatii de generalizare • Figura 3. Exemple DGH, VGH:

  16. Generalizarea datelor. Relatii de generalizare • Exemple DGH, VGH:

  17. K-anonymity – metoda de protejare a datelor private • Fie un tuplu t peste atributele (A1, ..., An) cu domeniul DT = (D1, ..., Dn), unde Di  Dom, i:=1..n (Di = domeniile de baza). • Se defineste DGHDT = DGHD1 DGHD2 ...  DGHDn. • DGHDT este definita de o latice (latice de generalizare) unde DT este elementul minimal, iar elementul maximal al laticii contine domeniul maximal al fiecarui DGHDi, i:=1..n. • Fiecare cale de la elementul minimal la elementul maximal, nodurile si relatiile de generalizare constituie o strategie de generalizare pentru DGHDT (mod prin care se poate generaliza tuplul). • Vezi figura 4. Figura 4.

  18. Tabel generalizat si generalizare minimala • Fie PT. • Un prim pas in asigurarea k-anonimitatii pentru PT este generalizarea (care scade numarul de tuple distincte – pentru QI). • In general, se aplica generalizarea la nivel de atribut (toate valorile dintr-un atribut vor apartine aceluiasi domeniu de generalizare dupa efectuarea substitutiilor). • Fie dom(Ai, T) – domeniul atributului Ai in tabelul T.

  19. Tabel generalizat si generalizare minimala • Tabel generalizat • Fie Ti(A1, ..., An) si Tj(A1, ..., An) – tabele definite pe acelasi set de atribute. Tj este generalizare a lui Ti, Ti  Tj, ddaca: • |Ti| = |Tj|. •  Az  {A1, ..., An}, dom(Az, Ti) ≤D dom(Az, Tj). • se poate stabili o asociere bijectiva intre ti  Ti si tj  Tj a.i. ti[Az] ≤V tj[Az] • Pentru acelasi PT pot sa existe mai multe GT care sa ofere k-anonimitate. Caz extrem – cel mai generalizat tabel (domeniu maximal pentru fiecare atribut) • =>Se pierde din utilitatea datelor!!! • => Se doreste generalizare minimala • => k trebuie sa asigure o anonimizare destul de buna, plus sa se pastreze utilitatea datelor

  20. Tabel generalizat si generalizare minimala • Figura 5. PT si tabele generalizate GT[1,0] (k:=1..3), GT[1,1] (k:=1..6), GT[0,1] (k:=1..2), GT[0,2] (k:=1..4), GT[1,2] (k:=1..12).

  21. Tabel generalizat si generalizare minimala • Vector distanta (dintre doua tabele) • Fie Ti(A1, ..., An), Tj(A1, ..., An), a.i. Ti  Tj (Tj este generalizare a lui Ti). • Vectorul distanta de la Ti la Tj este vectorul DVij = [d1, ..., dn], unde dz = lungimea caii din DGHDz de la dom(Az, Ti) la dom(Az, Tj), z:=1..n. • DV ≤ DV’, DV = [d1, ..., dn], DV’ = [d1’, ..., dn’], ddaca dz ≤ dz’, z:=1..n. • DV < DV’ ddaca DV ≤ DV’ si DV <> DV’. • Numarul generalizarilor (la nivel de atribut) pentru T(A1, ..., An) (|DGHDz| = inaltimea ierahiei DGHDz (numarul de arce din ierarhie)): • Exemplu (figura 6): |DGHR| = 1, |DGHZ| = 2

  22. Tabel generalizat si generalizare minimala • Figura 6. vectorii distanta sunt [1,0], [0,1], [1,1], [0,2], [1,2]; numarul generalizarilor = 2 X 3 = 6

  23. Tabel generalizat si generalizare minimala • Generalizarea k-minimala • Fie Ti(A1, ..., An), Tj(A1, ..., An), a.i. Ti  Tj. Tj este generalizarea k-minimala a lui Ti ddaca: • Tj satisface k-anonimitatea. •  Tz a.i. Ti  Tz, Tz satisface k-anonimitatea =>  (DViz ≤ DVij). • Observatii: • A doua conditie spune ca daca exista o alta generalizare Tz a lui Ti, atunci vectorul distanta de la Ti la Tz nu este mai mic decat vectorul distanta de la Ti la Tj. • exemple - [0,1]  [1,1], [0,1]  [0,2], intre [1,0] si [0,2] nu se poate stabili o relatie de ordine. • Pot sa existe mai mult de o generalizare k-minimala. • Daca Ti satisface k-anonimitatea, atunci Ti este generalizarea k-minimala a lui Ti. • Exemplu: figura 5: k = 2 – gen k-minimala: GT[1,0] si GT[0,1], k = 3 – gen k-minimala: GT[1,0] si GT[0,2].

  24. Tabel generalizat si generalizare minimala • Figura 5. PT si tabele generalizate GT[1,0] (k:=1..3), GT[1,1] (k:=1..6), GT[0,1] (k:=1..2), GT[0,2] (k:=1..4), GT[1,2] (k:=1..12).

  25. Suprimarea / eliminarea datelor • Suprimarea poate fi folosita ca metoda de sine statatoare in anonimizarea datelor, sau ca metoda complementara generalizarii. • Se presupune (deocamdata) ca se aplica suprimarea la nivel de tuplu (nu se elimina doar unele valori dintr-un tuplu, ci intreg tuplul). • Situatie: fie PT si GT generalizare a lui PT. • Este posibil ca GT sa fie de un nivel inalt de generalizare (posibil chiar maximal pe unele atribute) din cauza catorva tuple. • Atunci se prefera eliminarea din rezultat a acestor tuple si aplicarea unui nivel de generalizare mai scazut. Vezi figura 7, 8, 9.

  26. Suprimarea / eliminarea datelor • Figura 7.

  27. Suprimarea / eliminarea datelor • Figura 8. GT k-minimale pt PT (k = 2)

  28. Suprimarea / eliminarea datelor • Figura 9. PT fara t11 si GT k-minimal (k = 2)

  29. Suprimarea / eliminarea datelor • Tabel generalizat – cu suprimare • Fie Ti(A1, ..., An), Tj(A1, ..., An), Ti  Tj, Tj generalizare (cu suprimare) a lui Ti ddaca: • |Ti|  |Tj|. •  Az  {A1, ..., An}, dom(Az, Ti) D dom(Az, Tj). • se poate defini o relatie intre tuplele ti  Ti si tj  Tj a.i. oricarui tj ii corespunde un ti, unde ti[Az] V tj[Az], z:=1..n. • (tuplele ti care nu au corespondent tj sunt cele eliminate din rezultat) • Se stabileste o limita maxima in suprimarea tuplelor: MaxSup • O generalizare Tj asigura suprimarea minima daca nu exista o alta generalizare Tz, cu vector de distanta mai mic decat vect. dist.Tj, care sa suprime mai putine tuple. (exemplu: GT[1,0], GT[0,2], figura 10) • Generalizare vs. Suprimare

  30. Suprimarea / eliminarea datelor • Figura 10. PT, GT. Sunt marcate tuplele care trebuie eliminate pentru a fi indeplinita k-anonimitatea, k=2. Daca s-ar elimina alte tuple, nu s-ar respecta k-anonimitatea, iar eliminarea unui super-set al tuplelor marcate – ar fi prea mult si nu necesar.

  31. Generalizare & Suprimare • Generalizare k-minimala cu suprimare • Fie Ti(A1, ..., An), Tj(A1, ..., An), Ti  Tj, MaxSup, Tj generalizare k-minimala (cu suprimare) a lui Ti ddaca: • Tj – generalizare k-minimala • |Ti| - |Tj|  MaxSup • Exemplu: pentru figura 10: • MaxSup = 0: GT[1,1] (GT[0,0], GT[1,0], GT[0,1], si GT[0,2] elimina mai multe tuple decat este permis, GT[1,2] nu este minimal din cauza lui GT[1,1]); • MaxSup = 1: GT[1,0] si GT[0,2] (GT[0,0] si GT[0,1] elimina mai multe tuple decat este permis, GT[1,1] nu este minimal din cauza lui GT[1,0], iar GT[1,2] nu este minimal din cauza lui GT[1,0] si GT[0,2]); • MaxSup = 2, 3: GT[1,0] si GT[0,1] (GT[0,0] elimina mai multe tuple decat este permis, GT[0,2] nu este minimal din cauza lui GT[0,1], GT[1,1] si GT[1,2] nu sunt minimale din cauza lui GT[1,0] si GT[0,1]). • MaxSup ≥ 4: GT[0,0] (toate celelalte generalizari nu sunt minimale din cauza lui GT[0,0]).

  32. Generalizare & Suprimare • Fie PT[QI] = T(A1, ..., An), si DGHDT. • Algoritmul (Find_vector) determina generalizarea k-minimala cautand printre toate generalizarile posibile. Totusi, numarul drumurilor de la domeniul de baza la domeniul maximal, pentru un domeniu de tuplu DT = (D1, ..., Dn) este: • unde hi este inaltimea ierarhiei DGHDz, z:=1..n (numarul de arce din ierarhie). • Exemplu: R0-R1, Z0-Z1-Z2 => (1 + 2)! / (1! * 2!) = 3 • Inaltimea unui vector de distanta DV in laticea vectorilor de distanta VL, VL = (DV, <=): height([d1, ..., dn], VL) = d1 + ... + dn. • Algoritmul Find_vector se bazeaza pe ideea ca – daca pentru o inaltime h nu exista nici un vector pentru care generalizarea nu satisface conditiile de generalizare k-minimala cu suprimare, atunci sigur nu exista un asemenea vector de inaltime mai mica.

  33. Generalizare & Suprimare • Exemplu – laticea de generalizare din figura 6. • Numarul drumurilor posibile de la (R0, Z0) la (R1, Z2) este 3 • Inaltimile vectorilor distanta – vezi figura dreapta height([1,2], VL) = 3 height([1,1], VL) = 2 height([0,2], VL) = 2 height([1,0], VL) = 1 height([0,1], VL) = 1 height([0,0], VL) = 0

  34. Generalizare & Suprimare.Algoritm Find_vector (binar) Input: tabel T = PT[QI] care sa fie generalizat, k, MaxSup, VLDT corespunzatoare DGHDT, unde DT este domeniul tuplului pentru QI, Em este elementul maximal din VL. Output: vectorul de distanta sol al tabelului de generalizare GTsol, care este generalizare k-minimala cu suprimare pentru T. low:=0; high:=height(Em, VLDT); sol:=Em; Cattimp low<high try:=inf((low + high / 2)); vectors:={vec | height(vec, VLDT)=try}; reach_k:=false; Cattimp vectors<> si reach_k=false Selecteaza un vector vec din vectors, vectors:=vectors – {vec} Daca satisfies(vec, k, T, MaxSup) atunci sol:=vec; reach_k:=true; Sf. daca. Sf. cattimp. Daca reach_k=true atuncihigh:=try; altfellow:=try; Sf. daca. Sf. cattimp. Return sol;

  35. Generalizare & Suprimare.Algoritm Find_vector (binar) • Rezultatul functiei satisfies se poate determina simplu prin calcularea GT(vec) si testarea tuturor conditiilor necesare (k-anonimitatea si suprimarea MaxSup). • Figura 11. Distanta intre valori intr-o ierarhie de generalizare a valorilor.

  36. Generalizare & Suprimare.Algoritm Find_vector (binar) • Un alt mod de calcul, pe baza vectorilor de distanta dintre tuple. • Fie doua tuple x = (v1, ..., vn), y = (v1’, ..., vn’) din tabelul T. • Vectorul distanta dintre x si y este vectorul Vx,y = [d1, ..., dn], unde di este lungimea caii de generalizare de la vi si vi’ (vi si vi’ fac parte din acelasi Di) la cel mai apropiat parinte in ierarhia de generalizare a valorilor, VGHDi. • Folosind vectorii de distanta dintre tuplele unui tabel T se poate determina daca pentru un anumit vector de distanta (pentru generalizare) se poate obtine k-anonimitate, cu eliminare de mai putin de MaxSup inregistrari.

  37. Generalizare & Suprimare.Algoritm Find_vector (binar) • Se construieste o matrice VT astfel: • Se adauga cate o linie pentru fiecare tuplu (distinct) x din T, care apare de mai putin de k ori in T (count(x, T) < k). • Se adauga cate o coloana pentru fiecare tuplu distinct din tabel. • VT[x,y] = Vx,y contine vectorul de distanta dintre tuplele x si y (matrice simetrica fata de diagonala principala).

  38. Generalizare & Suprimare.Algoritm Find_vector (binar) • Fie un vector vec, selectat la un moment dat de algoritmul Find_vector pentru care trebuie sa se testeze functia satisfies (vectorul distanta al unei generalizari – potentiala solutie). • Pentru fiecare linie x din VT se calculeaza sum(count(y, T)) pentru y a.i. VT[x,y] <= vec, unde sum(count(y, T)) ne da numarul de inregistrari care ar deveni egale cu x daca s-ar aplica generalizarea vec (numarul de elemente din cluster-ul din care va face parte x). • Numarul inregistrarilor care ar trebui eliminate din T la aplicarea generalizarii vec este data de elim = sum(count(x, T)) pentru care sum(count(y, T)) < k. • Daca elim <= MaxSup, atunci conditia de eliminare este indeplinita, iar vec este o posibila solutie. Altfel, nu este solutie acceptabila.

  39. Generalizare & Suprimare • Figura 12. Vectorii de distanta intre tuplele tabelului PT din figura 7.

  40. Generalizare & Suprimare • Figura 13. k-anonymity, k = 2, MaxSup = 1 sau 0, pentru figura 12. Corectat: vec = [0,2,1,2,2]

  41. Alterarea minimala a unui tabel • Daca exista mai multe generalizari k-minimale pentru PT, se pune problema sa se aleaga generalizarea care altereaza cat mai putin datele. • Pentru aceasta se poate defini o metrica care ajuta la calculul nivelului de alterare a datelor dintr-un tabel generalizat. • Pentru o celula a tabelului, T, Az, nivelul de alterare = nivel dom(Az, T) / inaltime DGHDz. • Exemplu: nivel 0, nivel 1, nivel 2, inaltime 2: pentru valorile care nu sunt generalizate = 0 / 2, pentru valori de pe nivelul 1 de generalizare = 1 / 2, pentru valorile care apartin domeniului maximal de generalizare = 2 / 2 (alterare maxima). • Fie PT si GT o generalizare a lui PT(A1, ..., An), cu DGHDz, z:=1..n.

  42. Generalizare & Suprimare • Observatie: Daca Ti si Tj a.i. Ti  Tj, Tj asigura k-anonimitatea si Tj este generalizarea cu alterare minima, atunci Tj este generalizare k-minimala.

  43. Generalizare & Suprimare • Figura 14 (a). DGH

  44. Generalizare & Suprimare • Figura 14 (b). Generalizari. prec(GT[1,0]) = 0.5, prec(GT[1,1]) = 0.25, prec(GT[0,2]) = 0.5, prec(GT[0,1]) = 0.75, unde fiecare GT asigura k-anonimitatea pentru k=2 => GT[0,1] (h(DGH1) = 1, h(DGH2) = 2)

  45. Alg. de determinare a gen. k-minimale cu alterare min. (MinGen) Input: PT, QI(A1, ..., An), conditia de k-anonimitate, k <= |PT|, DGHDz, z:=1..n Output: MGT (min GT) Daca PT[QI] satisface conditia de k-anonimitate atunci MGT := PT; altfel allgen := {GTi | GTi – generalizare a lui PT}; protected := {GTi | GTi  allgen si GTi satisface k-anonimitatea}; MGT := {GTi | prec(GTi) = max{prec(GTj) | GTj  protected}}; // MGT = alege din MGT o generalizare conform unor // criterii particulare, precum “prec” Sf. daca.

  46. MinGen • Observatie: Algoritmul MinGen poate sa produca toate generalizarile la nivel de atribut, sau toate generalizarile la nivel de celula (insa aceasta varianta duce la o complexitate prea mare in realitate). • Observatie: Metrica prec poate fi folosita pentru determinarea generalizarii cu alterare minima si in cazul algoritmului Find_vector.

  47. Algoritmul k-Optimize • Fie PT si QI, confirma caruia trebuie sa se efectueze k-anonimizarea. • Se cunosc domeniile de valori pentru fiecare Ai  QI. Se stabileste o relatie de ordine totala intre toate valorile atributelor Ai  QI, astfel: • daca Ai inainte de Aj, atunci toate valorile din Ai primesc un numar de ordine (index) mai mic decat toate numerele de ordine ale valorilor din Aj; • valorile unui Ai sunt de asemenea numerotate (pentru valori numerice sau pentru care se poate stabili usor o relatie de ordine – gen lexicografica – se respecta aceasta ordine, iar pentru valorile categorice – utilizatorul furnizeaza ordinea). • Exemplu: figura 15 • Figura 15.

  48. Algoritmul k-Optimize • Algoritmul k-optimize cauta generalizare k-minimala (conform unei metrici alese) de la cea mai generala generalizare (elementul maximal din laticea generalizarilor), pana la generalizari de nivel inferior. • Fiecare generalizare se poate reprezenta ca reuniune de indecsi – ai atributelor care contribuie la generalizare. Fiecare index reprezinta de fapt multimea de indecsi care sunt mai mari sau egali decat el (in cadrul atributului din care face parte). Astfel, primul index din fiecare atribut nu se reprezinta, pentru ca intotdeauna participa la generalizare. • De exemplu: • {8} reprezinta generalizarea care are age = *, gender = *, iar marital_status are valori pe domeniile de generalizare [married or widowed], [divorced or never_married]; • {2} reprezinta generalizarea care are age pe domeniile [10-29] si [30-49], gender = *, marital_status = * • {5, 7} reprezinta generalizarea care are age = *, gender = [M or F], marital_status = [married], [widowed or divorced or never_married] • Se considera ca {} reprezinta generalizarea maximala.

  49. Algoritmul k-Optimize • Pentru multimea indecsilor astfel stabiliti se formeaza un alfabet: • all = (1-{v11} 2-{v21}  ... m-{vm1}) • unde vi1 este valoarea cu indexul minim din fiecare domeniu de atribut. • Pentru alfabetul all se stabileste „power set”. • Observatie: Power set pentru {1, 2, 3} este multimea {{}, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}}. • Power set peste all se reprezinta sub forma de arbore = numit „set enumeration” (SE). Figura 16. Exemplu SE pentru alfabetul {1, 2, 3, 4}

  50. Algoritmul k-Optimize • Costul (metrica) considerat se bazeaza pe notiunea de „distinctie” – cum putem sa distingem un tuplu fata de altele din setul de date: • daca in urma generalizarii, un tuplu t apartine de un grup E de cel putin k inregistrari (este un grup de tuple E care se pastreaza in generalizare), atunci costul pentru t este |E| (numarul de tuple fata de care t nu poate fi distins) • daca in urma generalizarii, un tuplu t apartine de un grup E de mai putin de k inregistrari (este un grup de tuple E care se elimina din generalizare), atunci penalitatea asociata lui t este |PT| (fiind eliminat, spunem ca nu se poate distinge fata de toate inregistrarile din dataset). • => costul generalizarii g (*): • Exemplu: figura 17 – SE pentru indecsii din figura 15.

More Related