Documente Academic
Documente Profesional
Documente Cultură
Obiective
- Probleme tipice pentru extragerea cunostintelor din baze de date
- Metode de extragere de cunostinte
- Etapele procesului de extragere de cunostinte din baze de date
- Pre-procesarea datelor
1. Introducere.
Problema: Un magazin vrea sa-si mareasca incasarile prin identificarea potentialilor clienti
valorosi pentru a le furniza oferte personalizate. De asemenea se doreste pozitionarea
produselor pe rafturi in functie de posibilitatea ca mai multe produse sa fie cumparate
impreuna.
Solutia: Se construieste un model de clasificare pentru a gasi clientii care cu o probabilitate
de 75% pot cheltui mai mult de 1000$ in anul urmator. Apoi se construieste un model de
asociere pe baza cosurilor de cumparaturi pentru a determina ce produse se achizitioneaza
impreuna.
Problema: O agentie guvernamentala doreste metode mai precise prin care sa se evidentieze
posibile activitati frauduloase pentru investigatii ulterioare.
Solutia: Se construiesc modele de clasificare, clusterizare si detectia anomaliilor pentru a
evidentia cazurile suspicioase.
Modelele de extragere de cunostinte din baze de date au la baza una din cele doua metode
de invatare: supervizata si nesupervizata. Invatarea supervizata este folosita pentru a prezice o
valoare. Invatarea nesupervizata este folosita pentru a gasi structuri si relatii in cadrul datelor,
fara a stabili dinainte ipoteze de lucru. Modelele de clasificare si de importanta atributelor
apartin invatarii supervizate, iar cele de segmentare si asociere invatarii nesupervizate.
2
2. Etapele procesului de extragere de cunostinte din baze de date.
Procesul de extragere de cunostinte din baze de date este unul iterativ si interactiv compus
din mai multe etape.
Din punct de vedere practic etapele unui astfel de proces se pot detalia astfel:
- definirea problemei in termeni specifici domeniului de implementat („business”), dar si
in termeni „data mining”;
- achizitionarea si pregatirea datelor de intrare;
- construirea modelului si aplicarea lui;
- evaluarea rezultatelor si folosirea celor semnificative.
Problema de rezolvat trebuie definita in mod clar si cu destule detalii, atat din punct de
vedere al domeniului ales, dar si din punct de vedere al elementelor necesare aplicarii unei
metode de extragere de cunostinte.
De exemplu, in cadrul unei companii, se vrea identificarea clientilor „valorosi”, care au o
mare probabilitate sa renunte la serviciile companiei („churn customers”). Se stie ca pentru o
companie este mult mai dificil si costisitor de a recastiga un client pierdut decat sa mentina
unul existent. De asemeni, nu trebuie fidelizati toti clientii, doar cei „valorosi” (cheltuie o suma
substantiala pe serviciile firmei). Astfel, trebuie definite criteriile dupa care un client este
valoros sau nu pentru companie.
3
Dupa ce sunt definite toate conditiile domeniului, trebuie definita problema in totalitate:
„Trebuie construita o lista cu clientii care au probabilitate mare sa renunte la serviciile
companiei, dar care se prezice a fi clienti valorosi. Gasirea unor oferte pentru acesti clienti
astfel incat sa ramana fideli companiei.”
O regula generala ar fi colectarea unui volum cat mai cuprinzator de date, apoi in functie de
metoda si algoritmul de analiza ales, se filtreaza si se transforma aceste date intr-un format
dorit. Trebuie eliminate informatiile care dezvaluie identitatea anumitor entitati (denumiri de
persoane sau firme, numere de telefon, email sau adrese). Aceasta eliminare se face din doua
considerente: una de confidentialitate (legala si morala) si una de generalitate (metodele nu se
aplica unor date specifice).
Continuand exemplul de mai sus, privind fidelizarea clientilor unei companii (de ex banci),
se presupune ca datele provin din 3 surse:
- date demografice statistice intr-o locatie (varste, venituri, regiuni);
- date demografice specifice in alta locatie (lista clientilor bancii cu produsele si serviciile
furnizate);
- tranzactiile in alta locatie.
In aceasta etapa se colecteaza si se integreaza datele din cele trei locatii intr-un depozit
central. Se pot recodifica o parte din date (de ex formatul datelor calendaristice), transforma o
alta parte (daca am data nasterii sa deduc varsta), curata (eliminarea inregistrarilor cu valori
null pentru anumite coloane) etc.
In general, colectarea si prepararea datelor consuma peste 50% din timpul si efortul in
cadrul unui proiect „data mining”.
Pentru orice problema trebuie aleasa o metoda sau mai multe, un algoritm sau mai multi,
care sa se aplice datelor pre-procesate pentru obtinerea rezultatelor dorite. Este dificil de stiut in
avans care metoda sau algoritm este optim pentru o anumita problema, astfel incat se
construiesc si se testeaza mai multe metode / algoritmi.
Nici un model nu este perfect, deci nu se cauta neaparat modelul cu cele mai exacte
rezultate, ci modelul a caror tipuri de eroare sunt acceptabile pentru obiectivele problemei de
rezolvat.
De exemplu, daca se considera problema creditarii clientilor unei banci, un model predictiv
trebuie sa minimizeze erorile de tipul „no risk”, deoarece daca erorile de acest tip sunt foarte
costisitoare pentru banca (bani incredintati cu sanse mici de recuperare). Un acelasi model
predictiv poate sa accepte un oarecare numar de erori de tipul „high risk”. Adica, un potential
client sa fie etichetat ca fiind „riscant”, in realitate el fiind un client sigur. Si acest tip de eroare
produce oarecare cost (client nemultumit de refuzul bancii), dar acest cost este unul gestionabil.
4
2.4 Evaluarea rezultatelor si folosirea celor semnificative.
Dupa aplicarea unui metode si construirea modelului, datele obtinute sunt inregistrate in
formate specifice algoritmului de analiza utilizat. Aceste rezultate trebuie validate si evaluate.
Acest lucru se face in prima faza prin algoritmi de evaluare specifici fiecarui model aplicat, iar
apoi trebuie prezentati operatorului uman (analistul).
Daca se considera exemplul de mai sus, in urma aplicarii modelului rezulta un table cu id-
urile clientilor de tip „churn”, precum si detaliile cu probabilitatile de a renunta la serviciile
companiei.
Aceste date trebuie corelate cu restul informatiilor (de ex din tabelul de clienti) si trebuie
prezentate analistului pentru a se lua masuri concrete care sa impiedice actiunea prevazuta (de
ex oferte semnificative pentru produsele/serviciile dorite de clientii respectivi).
3. Pre-procesarea datelor.
De obicei, algoritmii „data mining” lucreaza cu valori discrete („binned”) ale atributelor.
Discretizarea reprezinta procesul prin care se grupeaza valori asemanatoare impreuna pentru a
reduce numarul de valori distincte pentru un anumit atribut.
Deciziile pentru numarul de valori discrete pentru un anumit atribut, valorile asignate pentru
fiecare interval, sunt luate fie automat de aplicatie fie sunt specificate de utilizator. Acest proces
trebuie executat de un expert care sa inteleaga semnificatia datelor de discretizat, dar si a
problemei de rezolvat.
5
Exista mai multe modalitati de discretizare care pot fi aplicate in functie de modelul aplicat:
- specificarea explicita: se specifica limitele intervalelor de discretizare pentru fiecare
atribut; astfel pentru date numerice se specifica limitele inferioare si superioare pentru
fiecare interval; pentru atributele de tip categoric se specifica pentru fiecare interval ce
valori sa contina;
- pentru atributele de tip categorie se poate utiliza metoda celor mai frecvente N elemente
(„top N”); astfel pentru un N dat, se determina cele mai frecvente N elemente, iar restul
se clasifica in „cealalta” categoric;
- pentru atributele numerice se poate folosi metoda discretizarii echidistante; se sorteaza
valorile numerice, iar apoi acestea se impart in numarul specificat de intervale.
Se considera tabelul de clienti si urmatoarele atribute ale caror valori trebuie discretizate:
6
In urma procesului de discretizare pentru atributele de tip categorie WORKCLASS si
EDUCATION, MARITAL_STATUS, OCCUPATION valorile arata astfel:
7
Tot in aceasta etapa de pre-procesare, datele de intrare sunt stocate fizic intr-un anumit
format, pentru a fi recunoscut de algoritmul de analiza. In general exista doua formate:
- tranzactional sau cazul multi-inregistrare („multi-record case”);
- netranzactional sau cazul mono-inregistrare („single-record case”);
Datele tranzactionale (multi-inregistrare) sunt stocate intr-o tabela cu urmatoarea structura:
- SequenceId – valoare intreaga pentru a asocia valorile intr-o tabela tranzactionala
- Attribute_Name – numele atributului specificat prin sir de caractere
- Value – valoare intreaga pentru atribut (se aplica in prealabil procesul de discretizare
daca e nevoie);
Datele mono-inregistrare stocheaza fiecare caz sub forma unei inregistrari. Aceasta nu
necesita o cheie unica de identificare, dar aceasta se recomanda pentru relationarea cu datele de
iesire.
4. Exercitii.
Puteti folosi SQL si PL/SQL.
1) Conectati-va la schema DMxx. Extrageti clientii din CUSTOMERS intr-un tabel
CUST_EXT dupa urmatoarele criterii:
- clientii din US;
- se vor extrage urmatoarele coloane:
CUST_ID
CUST_GENDER
CUST_YEAR_OF_BIRTH
CUST_MARITAL_STATUS
CUST_CITY
CUST_STATE_PROVINCE
COUNTRY_ID
CUST_INCOME_LEVEL
CUST_CREDIT_LIMIT
8
3) Creati si populati tabelul CUST_DM_BIN cu valorile discretizate pentru urmatoarele
atribute:
GENDER, INCOME_ID, MARITAL_STATUS - dupa valorile existente
AGE – dupa intervalele 0-24, 25-39, 40-59, 60-70, peste 80
STATE_PROVINCE – dupa grupuri de cate 5 provincii, ordonate alfabetic
CREDIT_LIMIT – stabiliti 10 limite astfel incat valorile sa fie distribuite
echidistant