F. Radulescu. Curs: Utilizarea bazelor de date, anul IV C5.

Similar documents
Subiecte Clasa a VI-a

Titlul lucrării propuse pentru participarea la concursul pe tema securității informatice

Metrici LPR interfatare cu Barix Barionet 50 -

Reflexia şi refracţia luminii. Aplicaţii. Valerica Baban

Procesarea Imaginilor

D în această ordine a.î. AB 4 cm, AC 10 cm, BD 15cm

Structura și Organizarea Calculatoarelor. Titular: BĂRBULESCU Lucian-Florentin

Olimpiad«Estonia, 2003

Semnale şi sisteme. Facultatea de Electronică şi Telecomunicaţii Departamentul de Comunicaţii (TC)

Modalitǎţi de clasificare a datelor cantitative

ARBORI AVL. (denumiti dupa Adelson-Velskii si Landis, 1962)

2. Setări configurare acces la o cameră web conectată într-un router ZTE H218N sau H298N

Ghid identificare versiune AWP, instalare AWP şi verificare importare certificat în Store-ul de Windows

CERERI SELECT PE O TABELA

Capitolul 7. Data mining. F. Radulescu. Curs: Utilizarea bazelor de date, anul IV C5.

MS POWER POINT. s.l.dr.ing.ciprian-bogdan Chirila

Auditul financiar la IMM-uri: de la limitare la oportunitate

The First TST for the JBMO Satu Mare, April 6, 2018

GHID DE TERMENI MEDIA

Mods euro truck simulator 2 harta romaniei by elyxir. Mods euro truck simulator 2 harta romaniei by elyxir.zip

Mecanismul de decontare a cererilor de plata

Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic

ISBN-13:

Candlesticks. 14 Martie Lector : Alexandru Preda, CFTe

În continuare vom prezenta unele dintre problemele de calcul ale numerelor Fibonacci.

Versionare - GIT ALIN ZAMFIROIU

9. Memoria. Procesorul are o memorie cu o arhitectură pe două niveluri pentru memoria de program și de date.

Textul si imaginile din acest document sunt licentiate. Codul sursa din acest document este licentiat. Attribution-NonCommercial-NoDerivs CC BY-NC-ND

Funcţii grup şi clauzele GROUP BY, HAVING. Operatorii ROLLUP şi CUBE.

INFORMAȚII DESPRE PRODUS. FLEXIMARK Stainless steel FCC. Informații Included in FLEXIMARK sample bag (article no. M )

Aspecte controversate în Procedura Insolvenţei şi posibile soluţii

CAIETUL DE SARCINI Organizare evenimente. VS/2014/0442 Euro network supporting innovation for green jobs GREENET

Reţele Neuronale Artificiale în MATLAB

Printesa fluture. Мобильный портал WAP версия: wap.altmaster.ru

Arbori. Figura 1. struct ANOD { int val; ANOD* st; ANOD* dr; }; #include <stdio.h> #include <conio.h> struct ANOD { int val; ANOD* st; ANOD* dr; }

Update firmware aparat foto

CHAMPIONS LEAGUE 2017 SPONSOR:

Capitolul 4 SUBCERERI. F. Radulescu. Curs: Baze de date - Limbajul SQL

La fereastra de autentificare trebuie executati urmatorii pasi: 1. Introduceti urmatoarele date: Utilizator: - <numarul dvs de carnet> (ex: "9",

CERERI SELECT PE MAI MULTE TABELE

INTEROGĂRI ÎN SQL SERVER

Metoda BACKTRACKING. prof. Jiduc Gabriel

Evoluția pieței de capital din România. 09 iunie 2018

2. In the pattern below, which number belongs in the box? 0,5,4,9,8,13,12,17,16, A 15 B 19 C 20 D 21

Grafuri bipartite. Lecție de probă, informatică clasa a XI-a. Mihai Bărbulescu Facultatea de Automatică și Calculatoare, UPB

Prima. Evadare. Ac9vity Report. The biggest MTB marathon from Eastern Europe. 7th edi9on

Generarea şi validarea numerelor prime mari

Dispozitive Electronice şi Electronică Analogică Suport curs 02 Metode de analiză a circuitelor electrice. Divizoare rezistive.

Problema identitatii la Aristotel. Problema identității la Aristotel. Gheorghe Ştefanov ABSTRACT:

REVISTA NAŢIONALĂ DE INFORMATICĂ APLICATĂ INFO-PRACTIC

Baze de date distribuite și mobile

Laborator 2. Definirea tablourilor şi a funcţiilor (în linia de comandă) în Matlab 7.0

LINEAR VOLTAGE-TO-CURRENT CONVERTER WITH SMALL AREA

ACTA TECHNICA NAPOCENSIS

SAG MITTIGATION TECHNICS USING DSTATCOMS

Reticențele lui Wittgenstein față de teorema de incompletitudine a lui Gödel

Nume şi Apelativ prenume Adresa Număr telefon Tip cont Dobânda Monetar iniţial final

INSTRUMENTE DE MARKETING ÎN PRACTICĂ:

Ghid de utilizare a Calculatorului valorii U

ARHITECTURA SISTEMELOR DE CALCUL ŞI SISTEME DE OPERARE. LUCRĂRILE DE LABORATOR Nr. 6, 7 şi 8 REPREZENTAREA INFORMAŢIILOR NUMERICE ÎNTREGI ŞI REALE.

Propuneri pentru teme de licență

KAJOT V.RO BLACK PLANET JOC DE NOROC CU RISC LIMITAT

Preţul mediu de închidere a pieţei [RON/MWh] Cota pieţei [%]

earning every day-ahead your trust stepping forward to the future opcom operatorul pie?ei de energie electricã și de gaze naturale din România Opcom

X-Fit S Manual de utilizare

Metoda de programare BACKTRACKING

The driving force for your business.

Mircea Merca 1) Articol dedicat Prof. Dr. Ioan Tomescu la a 70-a aniversare

Proceduri stocate. Crearea procedurilor stocate. Varianta 1 În Management Studio se dă clic pe New Query ca în imaginea de mai jos: Fig.

A Die-Linked Sequence of Dacian Denarii

Creare baza de data Deschidem aplicaţia Microsoft Access. Lansarea în execuţie a programului se face urmând calea:

Universitatea Lucian Blaga din Sibiu Facultatea de inginerie Hermann Oberth Catedra de Calculatoare şi automatizări

MODELUL UNUI COMUTATOR STATIC DE SURSE DE ENERGIE ELECTRICĂ FĂRĂ ÎNTRERUPEREA ALIMENTĂRII SARCINII

Managementul referinţelor cu

SINGULAR PERTURBATION DETECTION USING WAVELET FUNCTION REPRESENTATION

Excel Advanced. Curriculum. Școala Informală de IT. Educație Informală S.A.

ANALELE UNIVERSITĂŢII BUCUREŞTI

ANTICOLLISION ALGORITHM FOR V2V AUTONOMUOS AGRICULTURAL MACHINES ALGORITM ANTICOLIZIUNE PENTRU MASINI AGRICOLE AUTONOME TIP V2V (VEHICLE-TO-VEHICLE)

PROCEDURA PRIVIND DECONTURILE. 2. Domeniu de aplicare Procedura se aplică în cadrul Universităţii Tehnice Cluj-Napoca

STARS! Students acting to reduce speed Final report

EN teava vopsita cu capete canelate tip VICTAULIC

Kurt Gödel Argumentul ontologic

Subinterogari SELECT salariul FROM angajaţi WHERE nume= Ionescu SELECT nume, prenume FROM angajaţi WHERE salariul>s

2. Setări configurare acces la o cameră web conectată într-un echipament HG8121H cu funcție activă de router

Baza de date: tabele, date. Componentele unei B.D.: tabele, constrangeri, relatii. Entitati ale unei B.D.: formulare, interogari, rapoarte

Proiectarea Sistemelor Software Complexe

Introducere în algebra computationala

ADMITERE 2015 SUBIECTELE PROBELOR ŞI BAREMELE DE CORECTARE ŞI NOTARE PROFILUL MAIŞTRI MILITARI PROBA NR.1 TEST GRILĂ LA LIMBA ENGLEZĂ VARIANTA 2

Rem Ahsap is one of the prominent companies of the market with integrated plants in Turkey, Algeria and Romania and sales to 26 countries worldwide.

CONSISTENŢA INTERNĂ A UNUI INSTRUMENT. O DECIZIE DIFICILĂ.

Clean Code * Asist. dr. Bogdan Iancu. Asist. dr. Alin Zamfiroiu. * sau de ce e mai important felul în care scriem cod decât ceea ce scriem

Ce pot face pe hi5? Organizare si facilitati. Pagina de Home

Lucrarea nr. 1 Statistică descriptivă (Excel)

Updating the Nomographical Diagrams for Dimensioning the Concrete Slabs

Laborator 2 - Statistică descriptivă

INFLUENŢA CÂMPULUI MAGNETIC ASUPRA DINAMICII DE CREŞTERE"IN VITRO" LA PLANTE FURAJERE

ANALIZA FUNCŢIONALĂ, O METODĂ DE MODELARE ÎN PROIECTAREA UTILAJELOR

9. CURSOARE. Obiective. În acest Capitol, vom învăţa despre: Manipularea cursoarelor. Folosirea Cursor FOR Loops şi Nesting Cursors.

ARGUMENTUL ONTOLOGIC

Ce este o BAZA DE DATE?

Transcription:

Capitolul 8 Data mining date corelate

Reprezentarea datelor Vom continua să considerăm modelul de date coşuri de produse şi vom vizualiza datele ca o matrice booleană unde: linii=coşuri şi coloane=articole. 2

Asertiuni. Matricea este foarte rară; aproape peste tot 0. 2. Numărul de coloane (articole) este suficient de mic pentru a putea stoca în memoria centrală ceva per coloană dar suficient de mare astfel încât nu putem stoca ceva per pereche de articole în memoria centrală (aceeaşi aserţiune pe care am făcut-o până acum privind regulile de asociere). 3

Asertiuni 3. Numărul de linii este atât de mare încât nu putem stoca întreaga matrice în memorie chiar profitând de faptul ca e rară şi comprimând-o (din nou aceeaşi aserţiune ca întotdeauna). 4. Nu suntem interesaţi de perechile sau mulţimile de coloane cu larg suport; în schimb dorim perechile de coloane puternic corelate. 4

Aplicatii În timp de aplicaţiile de marketing sunt interesate doar de produsele de larg consum (nu merită să se încerce promovarea obiectelor pe care oricum nu le cumpără nimeni), există un număr de aplicaţii care se potrivesc cu modelul de mai sus, de interes fiind în special problema perechilor de coloane / articole inclusiv de consum restrâns dar puternic corelate: 5

Aplicatii. Liniile şi coloanele sunt pagini de web; (r, c) = înseamna că pagina corespunzatoare liniei r conţine o legătură către pagina coloanei c. Coloanele similare pot fi pagini despre acelaşi domeniu. 2. La fel ca () dar pagina corespunzătoare coloanei c conţine legături către pagina liniei r. Acum, coloane similare pot reprezenta copii multiple (mirror) ale unei pagini. 6

Aplicatii 3. Linii = pagini web sau documente; coloane = cuvinte. Coloane similare reprezintă cuvinte care apar aproape mereu împreuna, e.g. fraze. 4. La fel ca (3) dar liniile sunt propoziţii [iar coloanele sunt pagini web]. Coloane similare pot indica copii multiple ale unei unei pagini sau plagiat. 7

Similaritate Am vorbit despre similaritatea coloanelor fara sa dam o masura cantitativa a acesteia. Definitie: Să ne gândim la o coloană ca la multimea liniilor pentru care coloana conţine. Atunci similaritatea a două coloane C şi C2 este Sim(C, C2) = C C2 / C C2. 8

Similaritate x reprezinta cardinalul multimii x, deci: C C2 reprezinta numarul de linii in care ambele coloane au valoarea C C2 reprezinta numarul de linii in care macar una dintre coloane are valoarea. 9

Exemplu 0 0 = 2/5 = 40% similare 0 0 0 0

Problema Deoarece matricea contine foarte multe linii si coloane testarea similaritatii este laborioasa deoarece matricea nu incape in memoria centrala. Ar fi preferabil ca fiecare coloana sa fie reprezentata de o cantitate mult mai mica de informatie avand proprietatea ca testul de similaritate efectuat pe aceste informatii sa fie relevant pentru similaritatea coloanelor.

Signatura Ideia principală: Se mapează ( disperseaza ) fiecare coloană C într-o cantitate mică de date numita signatura lui C, (notatie Sig(C)) astfel încât: Sig(C) este suficient de mică pentru ca signaturile tuturor coloanelor să încapă în memoria centrală si sa se poata efectua testul de similaritate. 2

Signatura Cand un mod de calcul pentru signaturi este bun: Coloanele C şi C2 sunt puternic similare dacă şi numai dacă Sig(C) şi Sig(C2) sunt puternic similare. (dar de notat că este nevoie să definim similaritatea pentru signaturi). 3

Exemplu (prost) O idee care însă nu funcţionează: Se iau aleator 00 de linii şi şirul de 00 de biti ai coloanelor pentru acele linii este signatura fiecărei coloane. De ce? 4

Exemplu (prost) Motivul pentru care ideea nu functioneaza este că matricea este presupusă ca fiind f. rară deci multe coloane vor avea signaturi identice formate doar din 0 chiar dacă ele nu sunt deloc similare. 5

Conventie utila Dându-se două coloane C şi C2, ne vom referi la liniile lor ca fiind de patru tipuri a, b, c, d în funcţie de biţii lor pe aceste coloane, dupa cum urmează: Tip a b c d C 0 0 C2 0 0 6

Conventie utila De asemenea vom utiliza a pentru numărul de linii de tip a, ş.a.m.d. De notat că Sim(C, C2) = a/(a+b+c). Dar cum cele mai multe linii sunt de tip d, într-o selecţie de, să spunem, 00 de linii alese aleator toate vor fi de tip d, deci similaritatea coloanelor doar pentru aceste 00 de linii nici nu este definită. 7

Ce vom prezenta in continuare Dispersia de tip Min si dispersia de tip k-min metode de calcul signaturi Dispersia senzitiva la localizare o metoda prin care se minimizeaza numarul de perechi de signaturi care se testeaza pentru similaritate 8

Dispersia de tip Min (Minhashing) Este o metoda de calcul signaturi Signatura unei coloane va fi un sir de numere intregi. Să ne imaginăm liniile permutate într-o ordine aleatoare. Dispersăm fiecare coloana C în h(c), numărul primei linii în care coloana C are un. In felul acesta obtinem primul intreg al signaturii 9

Dispersia de tip Min (Minhashing) Probabilitatea ca h(c) = h(c2) este a/(a+b+c) deoarece valoarea de dispersie este aceeasi dacă prima linie cu un în vreuna din coloane este de tip a şi este diferită dacă prima astfel de linie este de tip b sau c. De notat că această probabilitate este aceeaşi cu Sim(C, C2). 20

Dispersia de tip Min (Minhashing) Dacă repetăm experimentul cu o noua permutare a liniilor de un număr mare de ori, să zicem 00, obţinem o signatură constând din 00 de numere de linii pentru fiecare coloană. Similaritatea acestor liste (fracţiune a poziţiilor în care ele sunt egale) va fi foarte apropiată de similaritatea coloanelor. 2

Dispersia de tip Min (Minhashing) Observaţie importantă: nu trebuie să permutam fizic liniile, ceea ce ar duce la multe treceri prin întreaga cantitate de date. În schimb citim liniile într-o ordine oarecare şi dispersăm fiecare linie (numărul acesteia) utilizând (să zicem) 00 de funcţii de dispersie diferite. 22

Dispersia de tip Min (Minhashing) Pentru fiecare coloană memorăm cea mai mică valoare a funcţiei de dispersie a unei linii în care acea coloană are un, independent pentru fiecare dintre cele 00 de funcţii de dispersie. După parcurgerea tuturor liniilor vom avea pentru fiecare coloană primele linii în care coloana are dacă liniile ar fi fost permutate în ordinea data de fiecare dintre cele 00 de functii de dispersie. 23

24 Exemplu Functii Tabela Signaturi 5 5 4 2 7 5 6 2 6 3 6 7 7 4 2 3 3 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 4 2 2 2

Exemplu Similaritati Signaturi -3 2-4 -2 3-4 Col-Col 0,75 0,75 0 0 Sig-Sig 0,67,00 0 0 2 2 2 4 Deci signaturi similare => 2 2 Coloane similare. Aici diferentele sunt mai mari datorita dimensiunii tabelei (prea mica) 25

Dispersia senzitiva la localizare (eng: Locality-Sensitive Hashing - LSH) Problema: avem signaturile fiecarei coloane în memoria centrală iar signaturi similare inseamna cu mare probabilitate coloane similare, Pot fi totuşi atât de multe coloane încât a face ceva care este proportional cu pătratul numărului de coloane, chiar şi în memoria centrală, este prohibitiv. 26

Dispersia senzitiva la localizare Dispersia senzitivă la localizare (DSL, LSH în engleză) este o tehnică destinată a fi utilizată în memoria centrală pentru a aproxima mulţimea de perechi de coloane similare cu o complexitate mult mai mică decat cea pătratică. Scopul: în timp proporţional cu numărul de coloane să se elimine cea mai mare parte a perechilor de coloane din mulţimea posibilelor perechi similare. 27

Etape Este deci o metoda de a micsora numarul de perechi de signaturi care se compara pentru similaritate. Etapele sunt:. Considerăm signatura ca fiind o coloană de întregi. 2. Partiţionăm liniile signaturilor în benzi, să spunem l benzi de câte r linii fiecare. 28

Etape 3. Dispersăm coloanele din fiecare banda în intrări ale unei tabele de dispersie. O pereche de coloane este o perechecandidat dacă ambele sunt dispersate în aceeaşi intrare în vreo bandă. 4. Dupa identificarea candidatelor se verifică fiecare pereche candidat (Ci, Cj) examinând pentru similaritate Sig(Ci) şi Sig(Cj). 29

Exemplu Pentru a vedea efectul DSL să considerăm date cu 00.000 de coloane şi signaturi constând din 00 de întregi fiecare. Signaturile ocupă 40Mb de memorie, nu atât de mult la standardele actuale. Să presupunem că vrem perechile care sunt 80% similare. Vom examina signaturile în loc de coloane, deci în mod real vom identifica coloanele ale caror signaturi sunt 80% similare deci nu chiar acelaşi lucru. 30

80% Dacă doua coloane sunt 80% similare atunci probabilitatea ca ele să fie identice în una dintre benzile de 5 întregi este (0,8) 5 = 0,328. Probabilitatea ca ele ele să nu fie identice în nici una dintre cele 20 de benzi este (- 0,328)20 = 0,00035. Astfel toate mai puţin aproximativ /3000 dintre perechile cu signaturi 80% similare vor fi identificate ca şi candidate. 3

40% Acum, să presupunem că doua coloane sunt doar 40% similare. Atunci probabilitatea ca ele să fie identice într-o bandă este (0,4) 5 = 0,0 Probabilitatea ca ele să fie identice în cel puţin una dintre cele 20 de benzi nu este mai mare ca 0,2 (<=20*0,0) Astfel, putem ignora cel putin 4/5 dintre perechi care nu vor deveni candidate dacă 40% este similaritatea tipică a coloanelor. 32

Concluzie În fapt, cele mai multe perechi vor fi cu mult mai puţin decât 40% similare astfel încât realmente eliminăm o parte importantă a perechilor de coloane care nu sunt similare. 33

Dispersia k-min Dispersia Min ne cere să dispersăm fiecare număr de linie de k ori dacă vrem signaturi de k întregi. În loc de asta, în cazul dispersiei k-min dispersăm fiecare linie o singură data şi, pentru fiecare coloana luăm ca signatură numerele primelor k linii în care acea coloană are un. 34

Dispersia k-min Pentru a vedea de ce similaritatea acestor signaturi este aproape aceeaşi cu similaritatea coloanelor din care derivă să examinam figura: Sig Sig2 0 00 de 00 de 0...... 0 0 35

Dispersia k-min In figura sunt signaturile Sig şi Sig2 pentru coloanele C şi respectiv C2. S-a presupus ca liniile au fost permutate în ordinea valorilor funcţiei de dispersie. Liniile de tip d (în care nici o coloana nu are ) sunt omise. Astfel, vedem doar liniile de tip a, b şi c şi indicăm că o linie este în signatura printr-un. 36

Dispersia k-min Să presupunem că c b astfel încât situaţia tipică (pentru k = 00) este cea din figura: cele 00 de linii pentru prima coloană includ unele linii care nu sunt printre cele 00 ale celei de-a doua coloane. Atunci o estimare a similarităţii lui Sig şi Sig2 poate fi calculată astfel: Sig Sig2 = 00a / (a+c) 37

Dispersia k-min Justificare: în medie, primele 00 de linii din C2 care sunt şi în C este a/(a + c). De asemenea: Sig Sig2 = 00 + 00c / (a + c) Motivul este că toate cele 00 de linii din Sig sunt în reuniune. În plus, liniile din Sig2 care nu sunt în Sig sunt de asemenea în reuniune, iar acestea sunt în medie în număr de 00c/(a+c). 38

Dispersia k-min Astfel, similaritatea lui Sig cu Sig2 este: Sig Sig2 / Sig Sig2 = a / (a + 2c) Observăm că dacă c este apropiat ca valoare de b atunci similaritatea signaturilor este apropiată de similaritatea coloanelor. În fapt, dacă două coloane sunt foarte similare, atunci b şi c sunt ambele mici comparate cu a şi similarităţile signaturilor şi coloanelor trebuie să fie apropiate. 39

DSL Hamming În cazul în care coloanele nu sunt rare ci au aprox. 50% de nu avem nevoie de dispersie Min; O colecţie aleatoare de linii serveşte in acest caz ca signatură. DSL Hamming construieşte o serie de matrici, fiecare având jumătate din numărul de linii ale precedentei, aplicând operatorul SAU (OR) la câte două linii succesive din matricea precedentă 40

DSL Hamming Nu exista mai mult de log n matrici, unde n este numărul de linii. Numărul total de linii în toate matricile este 2n şi pot fi calculate toate într-o singură trecere prin matricea originală, stocandu-le pe cele mari pe disc. 4

DSL Hamming În fiecare matrice, se aleg ca perechi candidat acele coloane care: Au o densitate de să zicem intre 20% şi 80% E posibil să fie similare bazat pe testul DSL 42

DSL Hamming Observam ca plaja de densitate 20% - 80% ne garantează că doua coloane care sunt cel puţin 50% similare vor fi considerate împreună în cel puţin o matrice, în afara cazului nefericit în care densitatea lor relativă se schimbă din cauza operaţiei OR care combină doi de într-unul singur. 43

DSL Hamming O a doua trecere prin datele originale confirmă care dintre candidate sunt întradevăr similare. Aceasta metodă exploateaza o idee care poate fi folositoare şi în alte parţi: coloanele similare au un număr similar de, deci nu are rost compararea coloanelor al caror număr de este foarte diferit 44

Bibliografie J.D.Ullman - CS345 --- Lecture Notes, Capitolul 3 (Overview of Data Mining, Association-Rules, A-Priori Algorithm) http://infolab.stanford.edu/~ullman/cs345-notes.html 45

Sfârşitul capitolului 8 46