Data Mining

19
UNIVERSITATEA TEHNICĂ GH. ASACHI IAŞI FACULTATEA DE AUTOMATICĂ ŞI CALCULATOARE Data Mining Inteligenţă artificială - referat - Bălăiţă Rareş, Hulea Mircea, Olariu Cristian - 2002/2003 -

description

data-mining

Transcript of Data Mining

  • UNIVERSITATEA TEHNIC GH. ASACHI IAI FACULTATEA DE AUTOMATIC I CALCULATOARE

    Data Mining

    Inteligen artificial - referat -

    Bli Rare, Hulea Mircea, Olariu Cristian

    - 2002/2003 -

  • Data Mining este o tehnologie noua si puternica cu un mare potential in ajutorarea companiilor de a se concentra asupra celor mai importante informatii din depozitul lor imens de date. Data Mininga fost definite ca : Analiza automata a unor seturi de date largi si complexe cu scopul de a descoperi tipare semnificante sau tendinte care altfel ar trece neobservate. Elementele cheie care fac din uneltele Data Mining o forma distincta de software sunt : Analiza automata

    Data Mining automatizeaza procesul de cercetare amanuntita a datele din trecut cu scopul de a descoperi noi informatii. Aceasta este cea mai importanta diferenta intre data mining si statistica , unde , un model este divizat de un statistician pentru a trata o problema specifica de analiza. Tot aceasta diferenta face distinctie intre data mining si sistemele experte , unde , modelul este construit de un inginer din reguli extrase din experienta si munca unui expert.

    Fazele descoperirii automate , de asemenea , fac distictia de OLAP , intrebari simple si instrumente de raport , care sunt folosite pentru verificarea ipotezelor formulate de utilizator. Data Mining nu se bazeaza pe utilizator in definirea unei intrebari specifice , ci numai in formularea unui obiectiv cum ar fi identificarea revendicarilor frauduloase. Seturi de date largi sau complexe Una din atractiile data mining este aceea ca face posibila analiza unor seturi de date foarte largi intr-o perioada rezonabila de timp. Data Mining este de asemenea convenabila pentru problemele complexe care implica grupari de date relativ mici dar in care sunt multe campuri sau variabile de analizat. Oricum , pentru problemele simple si relativ mici , de analiza a datelor , pot exista solutii mai simple , mai ieftine sau mai eficiente. Descoperirea de tipare semnificante sau tendinte care altfel ar trece neobservate Obiectivul in data mining este de a descoperi relatii intre date ce ar putea oferi intelesuri utile. Instrumentele data mining pot scana bazele de date si pot identifica tipare , ascunse anterior , intr-un singur pas. Un exemplu , al descoperirii de tipar , este analiza datelor vanzarii cu amanuntul , pentru identificarea asa-ziselor produse fara legatura , care sunt adesea vandute impreuna. Alte probleme de descoperire a unui pattern(tipar) includ detectarea tranzactiilor frauduloase cu carti de credit , scaderea performantelor intr-o retea si identificarea datelor anormale care pot fi erori de introducere a datelor. Ultima semnificatie acestor tipare va fi evaluata de un expert in domeniu un manager de marketing sau un administrator de retea deci rezultatele trebuie sa se afle intr-o forma in care expertii sa o poata intelege.

    Instrumentele Data Mining , pot deasemenea automatiza procesul de gasire a informatiilor predictive in baze de date mari. Intrebari care in mod normal necesitau analize vaste , isi pot gasi acum raspunsul , rapid , din date. Un exemplu tipic de problema predictiva este cea a descoperii nivelului sectorului de piata tintit. Data Mining foloseste datele din ultimele oferte postale promotionale pentru a identifica tintele cele mai probabile ce pot maximiza profitul , la urmatoarele oferte . Alte probleme predictive includ prevenirea falimentului sau a altor forme ale acestuia si identificarea segmentelor de populatie care sa reactioneze in mod similar la diverse evenimente.

  • Tehnicile data mining pot renunta la beneficiile automatizarii platformelor sofware si

    hardware existente pentru a spori valoarea resurselor informationale existente , si pot fi implementate pe produse si sisteme noi odata ce aceste sunt disponibile on-line. Cand , aceste tehnici , sunt implementate pe sisteme de procesare client/server sau paralele de mare performanta , pot analiza baze de date masive si pot da raspunsuri la intrebari cum ar fi : Care clienti sunt mai pasibili sa raspunda la viitoarea mea oferta postala promotionala , si de ce?.

    Tehnologia Data Mining este pregatita pentru aplicatii deoarece ea este sustinuta de 3 tehnologii care acum sunt suficient de dezvoltate , cum ar fi :

    1. Colectii de date masive 2. Computere multi-procesor puternice 3. Algoritmi de cautare a datelor

    Bazele de date comerciale se dezvolta ajungand la niveluri fara precedent , in special in sectorul cu amanuntul. Nevoia continua de motoare computationale imbunatatite , poate acum fi satisfacuta printr-o maniera eficienta de cost , cu tehnologia multi-procesoare paralele. Algoritmii de data mining incorporeaza tehnici care au existat de cel putin 10 ani , dar numai recent au fost implementati ca instrumente dezvoltate , sigure , usor de inteles , care in mod consistent folosesc metode statistice mai vechi.

    Componentele principale ale tehnologiei data mining s-au aflat sub dezvoltare de decenii , in domenii de cercetare ca statistica , inteligenta artificiala si invatarea masinilor inteligente. In prezent , dezvoltarea acestor tehnologii in concordanta cu motoarele de baze de date relationale de inalta performanta si vastele eforturile de integrare a datelor , fac ca acestea sa fie foarte practice pentru domeniile de depozitare a datelor.

    Cheia intelegerii diferitelor fatete ale data mining este distingerea intre aplicatiile , operatiile , tehnicile si algoritmii data mining.

    Aplicatii Piata bazelor de date Clasificarea clientilor Retinerea clientilor

    Detectia fraudei Verificarea creditului

    Analiza site-urilor web

    Operatii Clasificare si predictie Clustering

    Analiza asocierilor Prevederea

    Tehnici Retele neuronale Arbori de decizie

    Algoritmi vecin apropiat Bayesian naiv

    Analiza de cluster

    Aplicatii

    O aplicatie data mining este o implementare a tehnologiei data mining ce rezolva un task specific sau o problema de cercetare. Exemple ale ariilor de aplicatie includ : companie farmaceutica isi poate analiza puterea de vanzare si rezultatele , din perioada recenta

    , pentru a imbunatati obiectivele medicilor sai si pentru a determina ce activitati de piata vor avea cel mai mare impact in urmatoarele luni. Datele trebuie sa includa activitatea de piata a

  • competitiei , dar si informatii despre sistemul de ingrijire a sanatatii local. Rezultatele pot fi distribuite departamentului de vanzari printr-o retea WAN ( wide-area network) , ceea ce va determina ca reprezentatii departamentului sa revizuiasca recomandarile din perseptiva atributelor cheie din procesul de decizie. Analizele continue si dinamice a datelor depozitate , permit ca cele mai bune proceduri sa fie aplicate in situatiile de vanzari specifice.

    companie de carti de credit isi poate controla vastul depozit de date ce cuprind tranzactii ale

    clientilor pentru a identifica clientii care ar putea fi cei mai interesati de achizitionarea unui nou produs credit. Folosind un mic test prin posta , pot fi identificate atributele clientilor care denota interes pentru noul produs. Proiecte recente au indicat o scadere a costurilor de 20 ori pentru campaniile postale.

    companie diversificata de transport cu o mare putere de vanzare poate aplica data mining

    pentru a identifica cele mai bune planuri de viitor pentru serviciile sale. Folosind data mining pentru a analiza experienta propriilor clienti , aceasta companie poate construi o segmentare unica identificand atributele prospectelor de mare valoare. Aplicarea acestei segmentari unei baze de date a unei afaceri generale , cum ar fi cele oferite de Dun&Bradstreet , poate produce o lista a prospectelor cu prioritatile , dupa regiune.

    mare companie de bunuri de consum poate aplica data mining pentru a-si imbunatati

    procesul de vanzare cu amanuntul. Datele din panourile de consum , expedieri , si activitatea competitiei pot fi folosite pentru intelegerea motivelor schimbarii marcilor si a stocurilor. Prin intermediul acestei analize , fabricantul poate alege ce strategie promotionala se incadreaza cel mai bine in profilul segmentului de clienti tinta.

    Operatii

    O aplicatie care foloseste tehnologia data minig va implementa una sau mai multe operatii data mining (de multe ori numite task-uri). Fiecare operatie reflecta o modalitate diferita de distingere a tiparelor sau a orientarilor intr-un set complex de date. Clasificarea si predictia

    Clasificarea este operatia cel mai des folosita de catre instrumentele comerciale data mining. Este o operatie care ajuta organizatiile sa descopere anumite tipare in banci de date largi si complexe cu scopul de a rezolva probleme specifice de afaceri.

    Clasificarea este un proces de subdivizare a unui set de date cu referinta la un numar de specific de rezultate. De exemplu , daca vrem sa clasificam clientii in 2 categorii : mari si mici , facem referinta la ricul afacerii pentru fiecare. Categoria sau clasa in care este plasat fiecare client , este rezultatul clasificarii noastre.

    O metoda neprelucrata ar fi sa clasificam clientii dupa venitul lor ce se incadreaza deasupra sau dedesubtul unui prag. O abordare mult mai subtila ar fi aceea de a incerca sa gasim o relatie lineara intre 2 factori diferiti , cum ar fi venitul si varsta , pentru a diviza setul de date in doua grupari. Problemele de clasificare ale lumii reale , de obicei , implica mult mai multe dimensiuni si prin urmare necesita o delimitare intre clase diferite , mult mai complexa. Un exemplu de clasificare : O organizatie de servicii comerciale doreste sa identifice acei clienti care ar putea fi interesati de o noua oportunitate de investitie. In trecut a mai lansat pe piata un astfel de produs si detine date ce arata care din clintii sai au raspuns la oferta precedenta. Scopul

  • este de a intelege ce factori identifica pe clientii care au raspuns pozitiv la oferta , pentru ca efortul depus la marketing si la vanzari sa fie concentrat mai eficient. Exista , in inregistrarea clientilor , un camp care este setat ca fiind true sau false in functie de raspunsul clientului la oferta. Campul este denumit camp tinta sau variabila dependenta pentru clasificare. Scopul este de a analiza in ce mod alte atribute ale clientilor ( cum ar fi nivelul venitului , tipul job-ului , varsta , sexul , starea civila , vechimea clientului , si alte tipuri de investitii sau produse cumparate ) influenteaza clasa din care fac parte ( clasa indicata de campul tinta). Aceasta informatie va fi stocata in alte campuri din inregistrarea clintului. Campurile distincte incluse in analiza sunt denumite campuri sau variabile independente sau predictorii. Tehnici de clasificare : Modul in care instrumentele data mining analizeaza datele , si tipul de informatie pe care il ofera , depinde de tehnicile pe care le foloseste. Cele mai comune tehnici ale clasificarii sunt : arborii de decizie si retelele neurale. Daca este folosit un arbore de decizie vom avea un set de conditii ramificate care impart cu succes clientii in grupuri , definite de valorile din variabilele independente. Scopul este de a putea produce un set de reguli sau un model de un anumit fel , care poate identifica un procent ridicat de corespondenti. O conditie a arborelui de decizie poate fi formulata in felul urmator : clientii care sunt de sex masculin , sunt casatoriti , au venituri peste 50.000 $ si care sunt proprietari de locuinta , raspund ofertei noastre. Conditia va selecta un procent mult mai ridicat de clienti decat daca se aplica o selectie aleatoare a clientilor. In contrast , o retea neuronala identifica in ce clasa apartine un client , dar nu ne poate spune de ce. Factorii care determina clasificarea nu sunt disponibili pentru analiza , dar raman impliciti in retea. Un alt set de tehnici utilizate pentru clasificare sunt algoritmii celui mai apropiat vecin ( k-nearest neighbour algorithms ). Intelegerea si predictia : Tehnici sofisticate de clasificare ne ajuta sa descoperim tipare noi in seturi de date largi si complexe. Clasificarea este , prin urmare , un puternic ajutor in intelegerea unei probleme particulare , chiar daca acesta este ratele raspunsurilor la o campanie publicitara postala , sau influenta a diversi factori la probabilitatea ca un pacient sa se insanatoseasca de la cancer. In unele imprejurari , o intelegere imbunatatita este suficienta. Aceasta poate sugera initiative noi si poate procura informatii care imbunatatesc luarea deciziilor in viitor. Oricum , in multe cazuri motivul dezvoltarii unui model de clasificare precisa este de a imbunatati capabilitatea de predictie. De exemplu , stim ca , in trecut , 60% din clientii care sunt de sex masculin , sunt casatoriti , si au venituri peste 60.000$ au raspuns la promotie ( comparativ cu numai 3% din toti clientii vizati ). Prin urmare , exista o sansa mai mare ca sansa medie , ca noi clienti ce se incadreaza in profil , sa fie de asemenea interesati de produsul nostru. In practica , data mining poate descoperi relatii mult mai complexe ce implica numeroase variabile predictor , oferind astfel o segmentare mult mai rafinata a clientilor.

    Se spune ca un model de clasificare ar trebui sa fie realizat dupa date istorice , pentru care se cunoaste rezultatul pentru fiecare inregistrare. Acesta este apoi aplicat unui nou set de date neinregistrate , cu scopul de a prezice rezultatul pentru fiecare inregistrare.

    Exista diferente importante intre a clasifica date cu scopul de a intelege comportamentul clientilor existenti si a folosi acea clasificare pentru a prezice comportamentul viitor. Pentru seturi de date din trecut , este adesea posibil sa se produca un set de reguli sau o functie matematica care sa clasifice cu precizie fiecare inregistrare. De exemplu , daca continuati sa va perfectionati regulile , o sa ajungeti la o regula , pentru fiecare individ , de forma urmatoare : 100% dintre clientii numiti Smith care locuiesc pe strada Arcada 28 au raspuns la oferta noastra. O asemenea

  • regula ne ajuta foarte putin in clasificarea unui nou client. In acest caz , se spune ca modelul este supra-incarcat pentru setul de date.

    Construirea unui model predictiv bun , implica ocolirea supra-incarcarii prin testarea si armonizarea modelului , pentru a se asigura faptul ca poate fi generalizat noilor date. Clustering Clustering-ul este o operatie necontrolata. Este folosita acolo unde se doreste a se gasi grupuri de inregistrari similare in datele noastre , fara nici o alta preconditie pe care o implica acea asemanare. Clustering-ul este folosit pentru identificarea grupurilor de interes dintr-o baza de date a clientilor , care nu au mai fost recunoscute anterior. De exemplu , poate fi utilizata pentru a identifica similaritati in utilizarea telefonului clientilor , cu scopul de a inventa si a vinde noi servicii telefonice. Clustering-ul este obtinut , de obicei , prin utilizarea metodelor statistice , cum ar fi algoritmul de inteles-k ( k-means algorithm) , sau o forma speciala a retelei neuronale numita harta retea Kohonen. Oricare ar fi metoda utilizata , operatia de baza este aceeasi. Fiecare inregistrare este comparata cu un set de cluster-e existente , care sunt definite de centrul lor. O inregistrare este atribuita cluster-ului de care este cel mai aproape , si acesta , in schimb , schimba valoarea care defineste cluster-ul. Sunt facuti mai multi pasi pana cand un set de date sa-si reatribuie inregistrarile si sa-si modifice centrii cluster-ilor , pana la gasirea solutiei optime.

    De exemplu , cautand cluster-e printre cumparatorii din supermarket , ar putea fi nevoie de analiza mai multor factori , printre care numarul de vizite lunare , totalul cheltuielilor la o vizita , cheltuieli pe categorii de produse , timpul vizitei si metoda de plata.

    Clustering-ul este adesea interpretata ca un exercitiu de explorare inainte de continua in cautarea datelor cu tehnica clasificarii. Din acest motiv , o buna cunoastere vizuala este un ajutor in plus pentru cluster-ing : te face sa cunosti lucrul cu cluster-e , cu scopul de a recunoaste daca cluster-ele identificate au sens si daca te ajuta in contextul afacerii. Analiza asocierii si analiza secventiala

    Analiza asocierii este o forma necontrolata a data mining care cauta legaturi intre inregistrarile dintr-un set de date. Analiza asocierii este cateodata definita ca analiza cosului de consum , care este cea mai folosita aplicatie a sa. Scopul este de a descoperi , de exemplu , ce articol este cel mai des cumparat in acelasi timp , pentru a ajuta comerciantii cu amanuntul sa organizeze programe stimulente si sa-si aranjeze magazinele cat mai eficient. Sa consideram urmatorul exemplu cu berea si taria :

    500.000 tranzactii 20.000 tranzactii contin tarie (4%) 30.000 tranzactii contin bere (6%) 10.000 tranzactii contin si bere si tarie (2%)

    Caracterul general ( Support ) masoara cat de des articolele apar impreuna , sub forma unui procent din totalul tranzactiilor. In acest exemplu , berea si taria apar impreuna 2% din total (10.000/500.000). Increderea sau predictibilitatea (Confidence) masoara cat de mult depinde un articol de altul. Deoarece 20.000 tranzactii se refera la tarie si 10.000 la bere , cand oamenii cumpara tarie , in 50% din cazuri cumpara si bere. Increderea pentru urmatoarea regula este 50% : Cand oamenii cumpara tarie , cumpara de asemenea si bere in 50% din cazuri. Inversare regulii , enuntata

  • astfel : Cand oamenii cumpara bere , cumpara deasemenea si tarie in 1/3 din cazuri , are o incredere de 33,33% (calculata ca 10.000/30.000).

    Remarcati ca cele doua reguli au acelasi suport ( 2% calculat anterior ). Suportul nu este dependent de directia (sau implementarea) regulii; este dependent de setul de componente din regula.

    Daca nu cunoastem nimic despre ce altceva a mai fost cumparat , putem face urmatoarea afirmatie despre datele disponibile : Oamenii cumpara tarie 4% din timp. Oamenii cumpara bere 6% din timp. Aceste numere : 4% si 6% sunt numite increderea asteptata de a cumpara tarie sau bere , indiferent de celelalte cumparaturi. Diferenta de nivel (Lift) masoara raportul dintre increderea unei reguli si increderea asteptata ca al doilea produs sa fie cumparat. Lift este o masura a fortei unui efect. In exemplul nostru , increderea in regula de cumparare tarie-bere este 50% , in timp ce increderea asteptata este 6% , ca un client aleator va cumpara bere. Deci , diferenta de nivel oferita de regula tarie-bere este 8.33 (=50% / 60%). Regula tarie-bere ar fi putut fi exprimata in termenii Lift astfel: Oamenii care cumpara tarie sunt de 8.33 ori mai tentati sa cumpere si bere. Interactiunea dintre tarie si bere este foarte puternica. Un obiectiv cheie al unei asociatii sau a unui exercitiu data mining este de a gasi reguli care au o diferenta de nivel substantiala , ca aceasta. Chiar daca regulile cu incredere ridicata si factori suport sunt importante , cele cu nivele mai scazute pot descoperi tipare mai putin evidente care descopera noi oportunitati de marketing. O necesitate cheie pentru analiza asociativa o reprezinta capacitatea analizarii unor baze de date foarte mari. Numerele implicate pot fi descurajatoare: marii vazatori cu amanuntul monitorizeaza peste 100000 de linii de productie si efectueaza milioane de tranzactii pe saptamana.

    Analiza asociativa nu se limiteaza numai la aplicatiile pentru vanzari cu amanuntul. De exemplu,o companie de asigurari, o poate folosi pentru a vedea legaturile dintre cerintele pentru asigurare de sanatate in diferite conditii. Se poate folosi de asemenea analiza secventiala pentru a urmari, de-a lungul timpului, relatiile dintre cerinte.

    Analiza secventiala, uneori, este considerata ca o operatie separata de tip data mining, cu toate ca noi o grupam cu analiza asociativa. Analiza secventiala priveste mai mult legaturile dintre cumparari, decat relatiile care exista intre articole intr-o singura tranzactie. Analiza secventiala in mod normal furnizeaza reguli cum ar fi: 10 % dintre clientii care au cumparat un cort, au cumparat in timp de o luna un rucsac. Prognoza

    Clasificarea identifica un anume grup sau clasa din care provine articolul. O prezicere bazata pe un model de clasificare va fi, prin urmare, o consecinta distincta, identificand un client ca fiind raspunzator sau nu sau a unui pacient cu risc mai mare sau mai mic de a face infarct. Prognoza, pe de alta parte, se preocupa cu prezicerea unor valori continui cum ar fi valorile impartasite, nivelul stocului pietei, sau pretul din viitor a unei marfi cum ar fi petrolul.

    Prognoza este adesea facuta cu functii de regresiune metode statistice pentru examinarea relatiilor intre variabile pentru a prezice valoarea urmatoare. Pachetele statistice, cum sunt SAS si SPSS, furnizeaza o larga varietate de astfel de functii care pot manipula probleme din ce in ce mai complexe. Totusi, asemenea functii statistice de obicei necesita o cunostere semnificativa o tehnicilor folosite si a conditiilor initiale care se aplica implementarii lor. Uneltele datei mining pot de asemenea furniza functii pentru prognoza. In particular, retelele neuronale au fost folosite pe arii mari pentru prognoza stocurilor de pe piata.

    Se poate face o distinctie importanta intre doua tipuri diferite a problemei prognozei.

  • Problema mai simpla este prognozarea unei singure valoari continue bazate pe o serie de exemple neordonate. De exemplu, prezicerea venitului unei persoane bazandu-ne pe detalii personale. Multe dintre uneltele datei mining pot furniza aceasta forma de prezicere folosind, de exemplu, retelele neuronale, sau in unele cazuri, arbori de decizie.

    O problema mai complexa este prezicerea unei sau mai multor valori bazate pe tiparul secvential, cum este nivelul stocului pietei pentru urmatoarele 30 de zile bazat pe cifrele din 6 luni anterioare. Putine unelte ale datei mining suporta aceasta forma de prognoza. Suportul limitat pentru prognoza pe timp indelungat reflecta in parte complexitatea algoritmica marita a problemei, si partial nevoia de a pregati si a prezenta datele uneltei datei mining in mod corect si de a furniza iesirea in formatul dorit. Unde se suporta aceasta prognoza, de obicei este nevoie de analisti pentru a face mai multa preprocesare a datelor si postprocesare a rezultatelor. Tehnici

    O operatie de tip data mining se obtine folosind una dintr-un numar de tehnici sau metode. Fiecare tehnica poate ea insasi sa fie implementata in diferite moduri, folosind diferiti algoritmi.

    Algoritmi clustering

    Analiza clusterilor reprezinta un proces de identificare a relatiilor care exista intre articole pe baza asemanarilor si deosebirilor dintre ele. Spre deosebire de clasificare, clusteringul nu necesita identificarea in prealabil a unei variabile tinta.Un algoritm verifica gruparile potentiale din multimea datelor si incearca sa obtina o delimitare optima a articolelor bazandu-se pe acele

    grupari. Clusterele sunt de obicei plasate in jurul unui centru sau valoare medie. Modul initial de

    definire si reglare a centrelor variaza de la algoritm la algoritm. O metoda este de a incepe cu o multime aleatoare de centre, care sunt apoi reglate, adaugate si eliminate pe masura ce analiza avanseaza.

    Pentru a identifica articolele care provin dintr-un cluster, trebuie folosita un fel de masura care uniformizeaza asemanarile dintre articolele dintr-un cluster si deosebirile fata de articolele din alte clustere. Asemanarile si deosebirile dintre articole se masoara de obicei ca fiind distanta de la

  • ele la toate celelalte si la centrele clusterelor din spatiul multidimensional, unde fiecare dimensiune reprezinta una dintre variabilele care sunt comparate. Nearest Neighbour(cel mai apropiat vecin)

    Cel mai apropiat vecin (mai precis k-cel mai apropiat vecin, de asemenea k-NN) reprezinta o tehnica de prezicere potrivita pentru modelele de clasificare.

    Spre deosebire de alti algoritmi predictivi, datele de antrenare nu sunt scanate sau procesate pentru crearea unui model. In schimb, datele de antrenare reprezinta modelul. Cand se prezinta un nou caz sau instanta modelului, algoritmul cauta in toate datele pentru a gasi o submultime de cazuri care se aseamana cel mai mult el, si il foloseste pentru a prezice consecinta.

    Exista doua drivere principale in algoritmul k-NN: numarul celor mai apropiate cazuri ce vor fi folosite (k) si o metrica pentru a masura ce inseamna de fapt cel mai apropiat.

    Fiecare folosire a algoritmului k-NN necesita ceea ce numim valoare pozitiva intreaga a lui k. Aceasta determina cate cazuri deja existente au fost studiate cand se prezice un nou caz. K-NN se refera la o familie de algoritmi pe care ii putem intelege ca 1-NN, 2-NN, 3-NN, si asa mai departe. De exemplu 4-NN indica faptul ca algoritmul va folosi cele mai apropiate 4 cazuri pentru prezicerea unui caz nou.

    Dupa cum termenul cel mai apropiat implica, k-NN se bazeaza pe conceptul de distanta, si acesta necesita o metrica pentru a determina distantele. Toate metricile trebuie sa aiba ca rezultat un numar specific in ceea ce priveste comparatiile. Oricare metrica este folosita este atat arbitrara cat si extrem de importanta. Este arbitrara pentru ca nu exista nici o definitie de control a ceea ce reprezinta o metrica buna. Este importanta deoarece alegerea unei metrici afecteaza mult prezicerile. Aceasta inseamna ca este nevoie de un expert in afaceri pentru a ajuta la determinarea unei metrici bune. Pentru a clasifica un nou caz, algoritmul calculeaza distanta de la noul caz la fiecare caz (linie) din datele de antrenare. Pentru noul caz se prezice sa aiba aceeasi consecinta ca si consecinta predominanta din cazurile k apropiate din datele de antrenare. Un exemplu de risc pentru credit:

    Se considera o banca ce cauta sa minimizeze lipsurile de la imprumuturi. Ofiterii de la imprumuturi trebuie sa fie in masua sa identifice potentialele riscuri pentru credit din timpul ciclului de aprobare a imprumutului. Problema este una de clasificare simpla: a prezice daca un solicitant prezinta sau nu un risc mare sau mic pentru credit. Urmatorul tabel prezinta multimea de date de antrenare pentru aceasta problema. Pentru simplitate dimensiunea a fost limitata la 5 inregistrari o multime foarte mica de date.

    Aceasta multime de date contine informatii despre oameni carora institutia le-a imprumutat bani. Cel care i-a imprumutat a determinat daca fiecare solicitant a prezentat un risc mare sau mic pentru credit. Deoarece Riscul este ceea ce noi vrem sa prezicem , el reprezinta coloana

  • dependenta, care este de asemenea numita variabila tinta. Celelalte coloane folosite pentru a construi modelul sunt cunoscute ca fiind coloane independente. In acest exemplu ei includ nivel de datorie (Inalt sau scazut), nivelul venitului(inalt sau scazut), si starea civila(casatorit sau necasatorit). Coloana Nume va fi ignorata deoarece este foarte putin probabil ca numele unei persoane sa afecteze riscul sau pentru credit. In exemplul nostru, toate coloanele, cu exceptia coloanei Nume, au doua valori posibile. Restrangerea la doua valori este numai pentru a pastra exemplul simplu.

    Vom folosi k=3 sau 3-NN. Pentru masurarea distantei noastre vom folosi o metrica simpla care este calculata prin sumare de scorurile fiecarei coloane independente din cele trei, unde scorul pentru o coloana este 0 daca cele doua instante sunt aceleasi si 1 daca sunt diferite.

    Acum putem calcula distanta dintre Peter si Sue. Cele trei scoruri de pe coloana pentru Peter si Sue sunt 1,0, si 0 deoarece ele au valori diferite numai in coloana Datorie. Distanta dintre Peter si Sue suma acestor scoruri este egala cu 1. Daca cele doua cazuri au toate valori in comun,

    distanta lor este zero. Acest tabel insumeaza toate distantele dintre toate inregistrarile din multimea noastra de date

    de antrenare. Observati ca aceasta matrice este simetrica; este nevoie numai numerele de sub(sau deasupra) diagonalei cu zerouri. Totusi, prezentarea in acest mod face mai simpla observarea toturor distantelor pentru orice caz la o singura privire.

    Acum putem sa aplicam tehnica k-NN pentru a vedea cum clasifica datele noastre de antrenare. Amintiti-va ca am ales k=3, asadar ne intereseaza cei mai apropiati trei vecini ai lui Peter. Distantele din coloana 1 ii prezinta pe Peter, Sue, si Mary ca fiind cei mai apropiati trei vecini ai lui Peter pentru ca ei au cele mai mici scoruri de distanta.

    Dar cum poate Peter sa fie vecinul sau? Nu este cumva invalid, sa folosim informatiile pe care le avem despre Peter pentru a prezice consecintele pentru Peter ? Ei bine intr-un fel este, dar aceasta absolut nu difera de oricare alt model cand este testat cu datele de antrenare. Iata de ce este nevoie sa folosim intotdeauna o multime diferita de date de antrenare pentru a valida un model.

    Valorile Riscului pentru cei mai apropiati trei vecini ai lui Peter (Peter insusi, Sue si Mary) sunt Mic, Mic si respectiv Mare. Riscul prezis pentru Peter reprezinta valoarea care este cea mai frecventa printre cei k vecini, sau Mic, in acest caz.

    Cine sunt cei mai apropiati trei vecini ai lui Sue? Cu siguranta insasi Sue, dar in ceea ce-i priveste pe Peter, John si Fred, care sunt toti la aceeasi distanta (1) de Sue? Putem sa-i includem pe toti trei, sau sa-I excludem pe toti trei cu un vot proportional(2/3 fiecare in acest caz). Decizia este in intregime la latitudinea celor care implementeaza algoritmul. Pentru exemplul nostru, vom folosi 2/3 voturi pentru fiecare, rezultand voturile Mic(Sue insasi), 2/3 Mic, 2/3 Mare si 2/3 Mare, ajungand la un consens de Mic.

    Urmatorul tabel enumereaza prezicerile de la algoritmul 3-NN. Precizia pentru 3-NN cu multimea de antrenare este de 80 la suta. Rezultatele folosirii algoritmului 2-NN in acest caz vor fi exact aceleasi.

  • Deoarece atat valoarea lui k cat si metrica distantei au un impact extraordinar asupra calitatii

    modelului, este importan sa le alegem cu atentie. Care este valoarea buna pentru k? Algoritmul 1-NN incearca sa gaseasca un caz in multimea

    de antrenare care se potriveste cel mai bine cu cazul pe care incercam sa-l prezicem. Cand este gasit, valoarea prezisa este admisa ca fiind consecinta cazului care se potriveste. Pentru 1-NN precizia pentru multimea de antrenare va fi de 100 la suta dupa definitie. Totusi, 1-NN, datorita faptului ca el cauta numai o cea mai buna potrivire, este extrem de sensbil la zgomot si nu va reflecta niciodata nici un fel de tipar in date. Multi algoritmi comerciali incep cu 10 valoare default a lui k. Cea mai buna valoare pentru k va necesita cateva experimente cu datele la mana, comparand rezultatele pentru valori diferite a lui k in contrast cu o multime de date de test.

    k-NN nu face o trecere prin date pentru invatare. Din nefericire, acest lucru nu face k-NN-ul un algoritm in mod special eficient, in particular cu multimi mari de date de antrenare. Acest lucru se intampla datorita faptului ca procesarea este amanata pana cand se fac prezicerile. Apoi fiecare caz nou care este prezis necesita o trecere completa prin datele de antrenare pentru a calcula distanta dintre instanta tinta si fiecare instanta din multimea de antrenare. Algoritmul urmareste cele mai apropiate k instante asa cum procedeaza cu toata multimea de antrenare, prezicand o consecinta atunci cand trecerea se finalizeaza.

    In timp ce tehnica celui mai apropiat vecin are un concept simplu, selectia lui k si alegerea metricilor de distanta reprezinta provocari precise. Absenta oricarui proces real de antrenare face distinctie intre tehnica celui mai apropiat vecin si alte metode predictive. Atat k cat si metricile de distantatrebuiesc setate si ambele necesita o anumita experimentare. Constructorul modelului va trebui sa construiasca multiple modele, validandu-l pe fiecare cu multimi de test independente pentru a determina ce valori sunt potrivite. Retele Neuronale

    O diferenta cheie intre retelele neuronale si oricare alta tehnica este aceea ca retelele neuronale opereaza numai direct pe numere. Rezulta ca orice date nenumerice din coloanele independente sau independente trebuiesc convertite in numere inainte sa putem folosi datele intr-o retea neuronala.

    Urmatorul tabel prezinta mostra noastra a datelor pentru riscul pentru credit cu toate variabilele bivaloare transformate in valori de 0 si 1. Inalt din coloanele Datorie si Venit, Casatorit, si Mic din coloana Riscau fost toate inlocuite de 1. Scazut din coloanele Datorie si Venit, Necasatorit, Mare din coloana Risc au fost inlocuite de 0.Nu este necesara conversie coloanei numepentru ca nu este folosita ca o coloana independenta sau dependenta.

  • Luati in considerare, mai intai, o retea neuronala antrenata care poate fi folosita la prezicerea

    riscurilor mari si mici pentru problema noastra de clasificare ricul pentru credit. Aceasta retea contine sase noduri, care au fost marcate cu A pana la F. Nodurile spre stanga (A, B si C) sunt noduri de intrare si constituie nivelul de intrare. Nodurile de intrare corespund coloanelor cu variabile independente in problema ricului pentru credit.(Datorie, Venit, si Stare civila)

    Nodul spre dreapta (F) este nod iesire si formeaza nivelul de iesire. In acest caz exista numai un singur nod de iesire, corepunzator coloanei Risc, coloana dependenta. Dar tehnicile retea neuronala in general nu restrictioneaza numarul coloanelor de iesire. Faptului ca pot exista iesiri multiple reprezentand multiple preziceri simultane este un mod prin care retelele neuronale difera de multe alte tehnici de prezicere.

    Cele doua noduri din mijloc (D si E) sunt noduri ascunse si constituie un singur nivel ascuns. Numarul nodurilor ascunse si, din aceasta cauza, numarul nivelelor ascunse sunt setate la discretia utilizatorului. Numarul nodurilor ascunse creste adesea cu numarul de intrari si cu complexitatea problemei. Prea multe noduri ascunse poate duce la supraspecializare( unde reteaua a devenit atat de specilizata incat se potriveste perfect cu multimea de antrenare dar este putin cam neajutorata

  • pentru cazuri noi), si prea putine noduri ascunse poate avea ca rezultat modele de joasa precizie. Gasirea unui numar potrivit de noduri ascunse reprezinta o parte importanta a oricarui efort de data mining cu retele neuronale. Numarul de noduri intrari, ascunse si iesiri este cunoscut ca topologia retelei neuronale sau ca arhitectura retelei.

    Diagrama prezinta ponderile pe sagetile dintre noduri. In mod normal, nu exista ponderi pe sagetile care vin in nivelul intrare sau care ies din nivelul de iesire. Valorile celorlalte ponderi sunt determinate in timpul procesului de antrenare si invatare a retelei neuronale. Observati ca ponderile pot fi atat pozitive cat si negative. De obicei,algoritmii care folosesc o retea neuronala restrang ponderile la un interval ingust cum ar fi intre plu si minus 1 sau intre plus si minus 10.Cu toate ca ponderile sunt de obicei numere reale am folosit intregi pentru a simplifica calculele.

    Inima unui algoritm bazat pe retele neuronale implica o serie de operatii matematice care folosesc ponderile pentru a calcula o suma ponderata a intrarilor la fiecare nod. In plus, fiecare nod are de asemenea o functie de comprimare care transforma suma ponderata a intrarilor intr-o valoare de iesire. Pentru reteaua noastra neuronala vom folosi o foarte simpla functie de comprimare: Daca suma ponderata a intrarilor este mai mare decat 0, iesirea este 1, altfel iesirea este 0 Ecuatiile pentru valorile de iesire la nodurile D, E si F pot fi acum scrise dupa cum urmeaza:

    Urmatorul tabel prezinta datele monstra, cu trei variabile independente (Datorii, Venit si Stare Civila) transformate in numere, riscul actual si valorile calculate pentru nodurile D,E si F. Valoarea de iesire pentru F(1 din prima coloana) reprezinta valoarea prognozata a riscului pentru Peter. Ea este egala cu actuala valoare deci reteaua neuronala a facut o prezicere corecta in acest caz. De fapt, reteaua noastra face prognoze corecte pentru toate cele 5 linii din multimea de antrenare,dupa cum este prezentat in acest tabel:

    Gasirea combinatiei optime a ponderilor este o importanta problema de cautare. Un numar de tehnici de cautare au fost folosite pentru gasirea celei mai bune combinatii de ponderi. Cel mai

  • des utilizata este clasa de algoritmi numita gradient descent (reducere graduala). Un algoritm gradient descent porneste cu o solutie, de obicei un set de ponderi care au fost generate aleator. Apoi se prezinta retelei un caz din setul de invatare. Reteaua (initial cu ponderi aleatoare) este folosita pentru a calcula un rezultat, acesta este comparat cu rezultatul dorit si diferenta, numita eroare este la randul ei calculata. Apoi ponderile sunt modificate usor astfel incat daca se prezinta acelasi caz din nou, eroarea sa fie mai mica. Aceasta reducere graduala a erorii a dat numele clasei de algoritmi.

    Cel mai cunoscut algoritm gradient descent se numeste back-propagation (propagare inapoi). Acesta efectueaza prelucrarea invers, pornind de la nodul de iesire si calculand pe rand contributia fiecarui nod precedent la eroare. Astfel este posibila calcularea nu numai a contributiei fiecarui nod, ci si a fiecarei ponderi la eroare. In acest mod, eroarea este propagata inapoi prin toata reteaua, avand ca rezultat ajustari asupra fiecarei ponderi care a contribuit la eroare.

    Ciclul se repeta pentru fiecare caz din setul de invatare, efectuandu-se modificari usoare ale ponderilor dupa fiecare caz prelucrat. Cand intregul set de invatare a fost procesat, va fi procesat din nou. Fiecare parcurgere a intregului set se numeste epoca. Este posibil ca antrenarea retelei sa necesite sute sau chiar mii de epoci. In acest mod, chiar daca prelucrarea unui caz conduce la modificari minore ale ponderilor, la sfarsit modificarile sunt semnificative datorita efectului de acumulare.

    Algoritmii retelelor neuronale utilizeaza diferite reguli de oprire pentru a controla sfarsitul procesului de antrenare a retelei. Exemple de reguli uzual intalnite :

    Oprire dupa un numar specificat de epoci Oprire cand eroarea scade sub o valoare predefinita Oprire cand eroarea nu a mai fost redusa dupa un anumit numar de epoci

    Nave-Bayes

    Nave-Bayes este o tehnica de clasificare care este si predictiva si descriptiva. Ea analizeaza relatia dintre fiecare variabila independenta si variabila dependenta pentru a deriva o probabilitate conditionala pentru fiecare relatie.

    Nave-Bayes necesita o singura parcurgere a setului de invatare pentru a genera un model de clasificare, ceea ce o face sa fie cea mai eficienta tehnica de data-mining. Insa Nave-Bayes nu opereaza cu date continue, asa ca orice variabila, independenta sau dependenta, care contine valori continue trebuie sa fie incapsulata. De exemplu, daca una din variabilele independente este varsta, valorile trebuie transformate din valori specificate exact in categorii cum ar fi : pana in 20 de ani, intre 21 si 30 de ani, peste 60 de ani, etc.

    Folosirea tehnicii Nave-Bayes de clasificare este un proces destul de simplu. In timpul antrenarii, probabilitatea fiecarui rezultat (valoare a variabilei dependente) este calculata prin numararea aparitiilor acelui rezultat in setul de date pentru antrenare. Aceasta se numeste probabilitate precedenta. De exemplu, daca Good Risk apare de 2 ori cand sunt analizate 5 cazuri, atunci probabilitatea precedenta pentru Good Risk este 0.4. Putem gandi probabilitatea precedenta in urmatorul mod: Daca nu stiu nimic despre o persoana care solicita un imprumut, exista o probabilitate de 0.4 ca persoana sa reprezinte Good Risk. Pe langa probabilitatile precedente, Nave-Bayes calculeaza si frecventa aparitiei fiecarei variabile independente in combinatie cu fiecare variabila (rezultat) dependenta. Aceste frecvente sunt utilizate pentru a calcula probabilitatile conditionale care sunt combinate cu probabilitatea precedenta pentru a face predictiile.

    Sa consideram problema riscului de credit a carei scop este sa prezica daca solicitantul unui imprumut va fi Good sau Poor Risk. In exemplul nostru, toate coloanele atat cele independente, cat si cele dependente, sunt pe categorii, asa ca nu mai este necesara incapsularea unor valori in categorii prin gruparea lor.

  • Din datele existente, vom categorisi frecventa de aparitie pentru fiecare Risk (Good sau

    Poor) dupa fiecare valoare din coloanele cu variabile independente. De exemplu, in linia 3 avem 2 cazuri in care Income este High si Risk este Good si un caz in care Income este High si Risk este Poor.

    Putem calcula usor likelihood (probabilitatea) ca una din variabilele independente sa aiba o anumita valoare, cunoscandu-se nivelul de risc (Risk) folosind frecventa de aparitie (Count) si impartind la Total by Risk (pe ultima linie). De exemplu, probabilitatea ca Good Risk sa aiba High Income este 1.00 (vezi linia 3), deoarece ambele cazuri cu Good Risk au High Income. In acelasi mod, probabilitatea condiotionala ca Poor Risk sa aiba Low Income este 0.67, deoarece in 2 cazuri din 3 Poor Risk are Low Income (linia 4).

    Ultima linie este folosita si pentru a calcula probabilitatile precedente pentru Good si Poor Risk. Conform datelor din tabel, probabilitatea precedenta pentru Good este 0.40 (2 din 5 cazuri) iar prioritatea precedenta pentru Poor este 0.60 (3 din 5 cazuri).

    Daca se da un anumit caz, putem calcula un scor, legat de probabilitatea posterioara, pentru ambele valori ale Risk prin inmultirea probabilitatii precedente cu toate probabilitatile (likelihood) din tabelul anterior pentru variabilele independente (Teorema lui Bayes). Cel mai mare scor devine valoarea prezisa.

    De exemplu, prima linie (pentru Peter) in setul de antrenare are High Debt, High Income si

    Married este Yes. In primul tabel, probabilitatile (likelihood) asociate acestor valori pt. Good Risk sunt 0.5, 1.0 si 1.0 respectiv. Produsul acestor valori si al probabilitatii precedente pentru Good este 0.20 (0.5x1x1x0.4). Pentru Poor Risk probabilitatile sunt 0.33, 0.33 si 0.67. Cu o probabilitate precedenta pentru Poor Risk de 0.60, scorul pentru Poor este 0.044 (0.33x0.33x0.67x0.6). Deoarece scorul pentru Good este mai mare, prezicem ca Peter va avea Good Risk.

  • Al doilea tabel prezinta riscul actual, scorurile pentru Good Risk si Poor Risk si riscul prezis

    pentru toate cazurile. Cu toate rezultatele prezise corect, algoritmul are o acuratete de 100% pe acest set. Desi acesta este un semn bun, trebuie sa validam acest model prin incercarea prezicerii rezultatelor pentru date test separate, dar nu efectua acest pas in lucrarea de fata.

    Scorurile calculate pot fi usor convertite in probabilitati posterioare reale prin impartirea fiecarui scor la suma tuturor scorurilor pentru acel caz. De exemplu, probabilitatea ca Peter sa fie Good Risk este cca 82% (0.2 impartit la 0.244 = 0.2+0.044).

    Observam ca nu este nevoie sa cunoastem valorile pentru toate variabilele independente pentru a face o prezicere. De fapt, chiar daca nu cunoastem nici una din valori, tot putem face o prezicere folosind doar probabilitatea precedenta. Daca cunoastem doar valoarea pentru Income, putem folosi probabilitatile conditionale asociate cu Income pentru a modifica probabilitatile posterioare si sa facem o prezicere. Aceasta capacitate de a face preziceri folosind informatii partiale constituie un important avantaj al tehnicii Nave-Bayes.

    Folosirea teoremei lui Bayes in calcularea scorurilor in acest mod este valabila doar daca presupunem independenta statistica intre variabilele independente, cum ar fi Debt si Income (de aici si termenul nave). In ciuda faptului ca de obicei aceasta presupunere nu e corecta, algoritmul are rezultate bune in practica.

    Arbori de decizie

    Arborii de decizie reprezinta una din cele mai folosite tehnici de data-mining. Sunt usor de

    folosit, rezultatele sunt inteligibile de catre un utilizator obisnuit, se adreseaza unei game largi de probleme de clasificare si sunt eficienti in prelucrarea unui volum mare de date.

    Un algoritm pe baza de arbori de decizie imparte setul de date cu scopul de a construi un model care clasifica fiecare inregistrare in termeni de camp tinta sau variabila. Un exemplu este un arbore de decizie care imparte un set de date dupa cum clientii au cumparat sau nu un anumit produs.

    Cei mai utilizati algoritmi pe baza de arbori de decizie sunt CHAID, CART si C4.5. CHAID (Chi-square automatic interaction detection) and CART (Classification And Regression Trees) au fost dezvoltati de statisticieni. CHAID poate produce un arbore cu multiple sub-noduri pentru fiecare impartire. CART necesita mai putina pregatire a datelor decat CHAID, dar intotdeauna imparte setul de date in doar 2 parti. C4.5 vine din universul masinilor inteligente capabile de invatare si este bazat pe teoria informatiei.

    Pentru a genera un arbore de decizie dintr-un set de date de antrenare este necesar sa impartim datele progresiv in subseturi mai mici. Fiecare iteratie ia in considerare datele dintr-un singur nod. Prima iteratie prelucreaza nodul radacina, care contine toate datele. Iteratiile urmatoare lucreaza pe noduri derivate care vor contine sub-seturi de date.

    In fiecare iteratie este necesar sa alegem acea variabila independenta care imparte cel mai eficient datele. Aceasta inseamna ca subseturile produse trebuie sa fie cat mai omogene in raport cu variabila dependenta.

    Vom folosi un algoritm mai simplu, ID3 (un predecesor al lui C4.5) pentru a produce un arbore de decizie din setul nostru de date pentru riscul de credit. Algoritmul ID3 utilizeaza conceptul de entropie din teoria informatiei pentru a masura incertitudinea dintru-un set, in raport variabila dependenta. Entropia se masoara pe o scara de la 0 la 1. Daca un set este impartit 50-50 intre Good si Poor Risk, am fi in totalitate nesiguri daca o persoana aleasa la intamplare din set ar avea Good sau Poor Risk. In acest caz, entropia este 1. Daca tot setul ar avea Good Risk, n-ar exista nici o indoiala si entropia este 0.

  • Vom incepe prin a masura entropia intregului set de antrenare. Gasim proportia p1 de Good Risk si proportia p2 de Poor Risk in set. Formula lui Shannon pentru entropie este :

    Unde consideram

    daca p=0, si i parcurge subseturile de date. Exista 2 Good Risk si 3 Poor Risk in setul complet de antrenare, si, prin urmare :

    Apoi vom lua in considerare toate posibilitatile de a imparti setul - dupa Debt, Income,

    Married si vom calcula entropia celor doua subseturi pentru fiecare caz. Mai intai dupa Debt:

    Subsetul cu High Debt are un Good Risk si un Bad Risk. Prin urmare :

    Subsetul cu Low Debt are un Good Risk si doua Poor Risk, deci

    Deoarece exista 2 High Debt si 3 Low Debt, entropia medie (sau asteptata) pentru cele 2 subseturi rezultate in urma impartirii dupa Debt este

  • Cu alte cuvinte, impartind dupa Debt reduce entropia cu :

    Calcule similare arata ca impartind setul de antrenare dupa Income reduce entropia cu 0.41998, in vreme ce impartirea dupa Married reduce entropia cu 0.17095.

    Deci impartirea dupa Income este cea mai eficienta modalitate de a reduce entropia in setul de date de antrenare si, prin urmare, produce 2 subseturi care sunt cele mai apropiate ca omogenitate.

    Al doilea din aceste subseturi (Low Income) are numai Poor Risk. Intrucat este in totalitate omogen, entropia sa este 0 si nu mai este nimic de prelucrat pe acea ramura. Dar prima ramura contine atat Good cat si Poor Risk. Are o entropie de 0.91830 si trebuie sa fie impartit dupa o a doua variabila independenta. Ramane sa decidem daca aceasta este Debt sau Married.

    Mai intai sa consideram impartirea dupa Debt.

    Subsetul cu High Debt are un Good Risk si nici un Poor Risk. Este perfect omogen si are entropia 0.

    Subsetul cu Low Debt are un Good Risk si un Poor Risk. Este impartit in parti egale si are entropia 1.

    Intrucat exista o High Debt si doua Low Debts, entropia medie pentru cele 2 subseturi este:

    Cu alte cuvinte, impartirea subsetului cu High Income dupa Debt reduce entropia setului cu:

    Insa daca impartim dupa Married, obtinem doua subseturi complet omogene si astfel entropia e redusa la 0. De aceea vom alege impartirea dupa Married.

  • Nu mai este necesara nici o impartire si am obtinut un arbore de decizie care poate fi

    folosit pentru analiza a noi cazuri. Putem exprima aceasta sub forma unui set de reguli :