Data Mining
Clusterizare
-proiect-
Statistică privind promovabilitatea la primul examen pentru fiecare școală
de conducători auto și pentru fiecare instructor auto de pregătire practică,
raportat la anul 2013
Andreea Tudorache,
Master BDSA
Grupa 1092
Profesor coordonator: Felix Titus Furtună
București
-2019-
1
Pentru realizarea proiectului am utilizat un set de date preluat de pe site-ul
[Link] Am ales ca domeniu de studiu pentru realizarea
analizei o statistică privind promovabilitatea la primul examen pentru fiecare școală de
conducători auto și pentru fiecare instructor auto de pregătire practică, raportat la anul 2013.
Detaliat, am folosit următoarele informații: județul în care se află școala auto, denumirea școlii,
instructor, numărul candidaților examinați, numărul candidaților admiși și procentul ce
reprezintă cât la sută dintre candidații examinați au promovat examenul.
Prin analiza efectuată am observat procentul persoanelor care au promovat examenul,
în funcție de județ, școală auto și instructor.
Am lucrat în Oracle Data Mining, pe serverul [Link], cu user dm2, pass stud2,
numele proiectului: proiect_promovabilitate_at.
Școala de conducători auto în România
Permisul de conducere pentru mașinile din categoriile B și BE se poate obține de la
împlinirea vârstei de 18 ani, în timp ce pentru cvadriciclurile din categoria B1 este suficientă
vârsta de 16 ani, potrivit legislației rutiere. Câteva modificări la modul de obținere a permisului
s-au făcut anul trecut, astfel că, de exemplu, candidații trebuie să știe că probele de examen se
înregistrează audio și video. Pentru a conduce în mod legal un autovehicul din categoria B sau
BE ori pentru un cvadriciclu (categoria B1) este necesar, potrivit Codului rutier, să deținem un
permis de conducere corespunzător.
Am preluat datele de pe [Link] și le-am importat în
Oracle Data Mining.
2
Figure 1 - Datele importate
Construire model K-means
K-Means este un algoritm de clasificare nesupervizată bazat pe o idee simplă, pornind
de la un număr prestabilit de grupe. Ideea constă în a define, de la început, k centrii de grupă,
câte unul pentru fiecare grupă. Modul în care sunt aleși acești centrii este important, deoarece
influențează numărul de iterații ulterioare. După alegerea inițială a centrilor urmează un proces
iterativ de ajustare a pozițiilor acestora, astfel încât fiecare centru să grupeze în jurul său cele
mai apropiate instanțe.
Figure 2 - Construire model K-means
3
Am ales să creez un număr de 5 clusteri, iar pentru aceasta am utilizat funcția
euclidiană, criteriul de diferențiere fiind variația.
Figure 3 - Construire model K-means
În construirea clusterelor am folosit toate variabilele, mai puțin cele non-numerice, pe
care le-am ignorat.
Figure 4 - Ignorarea datelor non-numerice
4
Histograme K-means
Există o multitudine de histograme în funcție de câte clastere avem, putând fi analizată,
astfel, orice combinație. Pentru exemplificare am ales:
1. Cluster 3, variablia procent
Figure 5 - Cluster 3, variabila procent
Pentru figura de mai sus, în care am evidențiat variabila procent în clusterul 5, media a
ieșit în valoare de 35.0539.
5
2. Cluster 9, variabila nr_candidati_admisi
Figure 6 - Cluster 9, variabila nr_candidati_admisi
3. Comparație între clusterul 7 (roșu) și clusterul 8 (albastru)
Figure 7 - Comparație între clusterele 7 și 8
6
4. Comparație între clusterul 10 (roșu) și clusterul 3 (albastru)
Figure 8 - Comparație între clusterele 10 și 3
În figura de mai sus se poate observa o comparație între clusterele 10 și 3. Astfel,
în cadrul histogramei care ilustrează procentul se poate observa valoare controidului, atât
pentru valorile din clusterul 10, cât și pentru cele din clusterul 3. Aceasta valoare este una
dintre cele mai importante, deoarece reprezintă media valorilor din componența clusterului.
Construire Algoritm O-Cluster
Algoritmul O-Cluster face parte din categoria algoritmilor de clusterizare de tip grid.
Acesta reprezintă p implementare perfecționată a algoritmului OptiGrid și se bazează pe
conceptul de proiecție a datelor (contracting projection) într-un spațiu unidimensional sau
bidimensional. Algoritmul construiește recursive partiții ale datelor cu ajutorul unor plane
despărțitoare, care traversează setul de date în zone de mica densitate. Aceste zone, denumite
văi (valleys), sunt intercalate de zone de densitate mare, denumite vârfuri (peaks).
Specificații și utilizări O-Cluster:
propune utilizarea testelor statistice pentru validarea calității planelor
despărțitoare;
7
operează pe un set mai mic de date, obținute ca eșantion la setul de bază
– acest lucru este implementat cu ajutorul unui buffer, a cărui
dimensiune poate fi parametrizată.
Figure 9 - CLUS_OC_1_1654
Figure 10 - Construire cluster CLUS_OC_1_1654
Am setat numărul de clustere 5, iar senzitivitatea 1, pentru a obține o împărțire de mică
densitate.
8
Figure 11
Histograme O-Cluster
1. Cluster 9, variablia procent
Figure 12 - Cluster 9, variabila procent (OC)
9
2. Comparație între clusterul 3 (roșu) și clusterul 4 (albastru)
Figure 13 - Comparație între clusterele 3 și 4 (OC)
Aplicare model K-means
K-means Oracle este implementat ca un algoritm de învățare, având 2 faze:
faza e construire a ierarhiei conform modelului algoritmic;
faza de aplicare a modelului, care, pe baza unor metrici calculate în faza de
construire, repartizează instanțele în clustere.
Aplicarea modelului se poate face și pentru instanțe care nu au fost utilizate în faza de
contruire a modelului.
Metricile calculate în faza de construire a modelului sunt următoarele:
scoruri probabilistice de apartenență la clustere pentru fiecare instanță din setul
de date folosit la construirea modelului, folosind teorema Bayes;
algoritmul calculează pentru fiecare cluster centroidul, histograme pentru fiecare
variabilă și reguli de descriere a clusterului (reguli de apartenență la cluster);
scoruri probabilistice la nivel de clustere (nivel de încredere) pe baza regulilor de
apartenență.
Pe baza acestor caracteristici, modelul Oracle K-means poate funcționa atât ca un model
descriptiv, cât și ca un model de predicție.
10
CLUS_KM_1_1640
Figure 14 - CLUS_KM_1_1640
Figure 15
În urma rulării workflow-ului, valorile obținute în nodul Apply sunt evidențiate mai jos:
11
Figure 16
Mai departe, am realizat o interogare SQL prin care am pus condiția ca
“CLUS_KM_1_1667_CLID” să fie egală cu clusterul 8.
Figure 17 - Interogare SQL
12
Figure 18
Adăugăm o nouă setare, și anume ca numărul de caracteristici pe care vrem să îl aibă
modelul să fie egal cu numărul de variabile.
În continuare, pentru analizarea modelului, am creat un Feature Build și am verificat
output-ul obținut.
Figure 19 - Creare Feature Build
13
Figure 20
Figure 21
14
Valorile coeficientului pe care le-am obținut pot fi observate în imaginea următoare.
Figure 22
15
Pe baza filtrului pe care am ales să îl aplic am obținut un nou set de date, pentru care
FEAT_NMF_1_1673_FEID este egal cu 1.
Figure 23 - Afișare date cu filtru aplicat
16
Aplicare model extragerea caracteristicilor esențiale (FE)
Figure 24
Următorul grafic este realizat pe baza filtrului mențioant anterior.
Figure 25- Grafic
17
În continuare, am realizat un grafic în care am ales datele unde
FEAT_NMF_1_1673_FEID este diferit de 4 și am grupat datele rămase în funcție de județ.
Figure 26 – Grafic
Figure 27 - Grafic rezultat direct din output
18
Flow-ul final arată astfel:
Figure 28 - Flow
19