istra ivanje podataka - ve be 5 · klasi kacija - mere za ocenu modela zadatak klasi kacija u...
TRANSCRIPT
Klasi�kacija - mere za ocenu modelaZadatak
Klasi�kacija u programskom jeziku PythonZadatak
Istraºivanje podataka
Veºbe 5
19. März 2019
Istraºivanje podataka
Klasi�kacija - mere za ocenu modelaZadatak
Klasi�kacija u programskom jeziku PythonZadatak
Outline
1 Klasi�kacija - mere za ocenu modela
2 Zadatak
3 Klasi�kacija u programskom jeziku Python
4 Zadatak
Istraºivanje podataka
Klasi�kacija - mere za ocenu modelaZadatak
Klasi�kacija u programskom jeziku PythonZadatak
Outline
1 Klasi�kacija - mere za ocenu modela
2 Zadatak
3 Klasi�kacija u programskom jeziku Python
4 Zadatak
Istraºivanje podataka
Klasi�kacija - mere za ocenu modelaZadatak
Klasi�kacija u programskom jeziku PythonZadatak
Klasi�kacija - mere za ocenu modela
preciznost = Broj slogova £ija klasa je dobro predvi�ena modelomUkupan broj slogova
(eng.
accuracy)
stopa gre²ke = Broj slogova £ija klasa nije dobro predvi�ena modelomUkupan broj slogova
(eng. error rate)
Istraºivanje podataka
Klasi�kacija - mere za ocenu modelaZadatak
Klasi�kacija u programskom jeziku PythonZadatak
Klasi�kacija - mere za ocenu modela
problem skupa podataka sa neuravnoteºenim klasama
alternativne mere
pri binarnoj klasi�kaciji, retka klasa se ozna£ava kao pozitivna
a ve�cinska klasa kao negativna
Istraºivanje podataka
Klasi�kacija - mere za ocenu modelaZadatak
Klasi�kacija u programskom jeziku PythonZadatak
Klasi�kacija - matrica konfuzije
Dodeljena klasa
+ -
Stvarna
klasa
+ TP FN
- FP TN
TP (eng. true positive) - broj instanci pozitivne klase koje je
model pravilno klasi�kovao
FN (eng. false negative) - broj instanci pozitivne klase koje je
model pogre²no klasi�kovao
FP (eng. false positive) - broj instanci negativne klase koje je
model pogre²no klasi�kovao
TN (eng. true negative) - broj instanci negativne klase koje je
model pravilno klasi�kovao
Istraºivanje podataka
Klasi�kacija - mere za ocenu modelaZadatak
Klasi�kacija u programskom jeziku PythonZadatak
Klasi�kacija - mere za ocenu modela
stopa stvarno pozitivnih ili osetljivost (eng. true positive rate,
sensitivity) TPR = TPTP+FN
stopa stvarno negativnih ili speci�£nost (eng. true negative
rate, speci�city) TNR = TNFP+TN
stopa laºno pozitivnih (eng. false positive rate) FPR = FPFP+TN
stopa laºno negativnih (eng. false negative rate)
FNR = FNTP+FN
Istraºivanje podataka
Klasi�kacija - mere za ocenu modelaZadatak
Klasi�kacija u programskom jeziku PythonZadatak
Klasi�kacija - mere za ocenu modela
preciznost (eng. precision) p = TPTP+FP
odziv (eng. recall) r = TPTP+FN
F1 uzima u obzir preciznost i odziv F1 =2rpr+p = 2
1
r+ 1
p
harnomijska sredina preciznosti i odzivabliºa je manjoj vrednosti
Istraºivanje podataka
Klasi�kacija - mere za ocenu modelaZadatak
Klasi�kacija u programskom jeziku PythonZadatak
Klasi�kacija - mere za ocenu modela
ROC kriva (receiver operating characteristic curve)
gra�£ki prikaz kompromisa izme�u TPR i FPRx osa - FPR ili 1-speci�£nosty osa - TPR ili osetljivost
Istraºivanje podataka
Klasi�kacija - mere za ocenu modelaZadatak
Klasi�kacija u programskom jeziku PythonZadatak
Klasi�kacija - mere za ocenu modela
Istraºivanje podataka
Klasi�kacija - mere za ocenu modelaZadatak
Klasi�kacija u programskom jeziku PythonZadatak
Klasi�kacija - ROC kriva
Interpretacija odre�enih ta£aka
(TPR=0 i FPR=0)
(TPR=1 i FPR=1)(TPR=1 i FPR=0)
AUC (eng. area under the ROC curve) - povr²ina ispod ROC
krive
Istraºivanje podataka
Klasi�kacija - mere za ocenu modelaZadatak
Klasi�kacija u programskom jeziku PythonZadatak
Klasi�kacija - ROC kriva
Interpretacija odre�enih ta£aka
(TPR=0 i FPR=0) - model svakoj instanci dodeljuje negativnuklasu
(TPR=1 i FPR=1)(TPR=1 i FPR=0)
AUC (eng. area under the ROC curve) - povr²ina ispod ROC
krive
Istraºivanje podataka
Klasi�kacija - mere za ocenu modelaZadatak
Klasi�kacija u programskom jeziku PythonZadatak
Klasi�kacija - ROC kriva
Interpretacija odre�enih ta£aka
(TPR=0 i FPR=0) - model svakoj instanci dodeljuje negativnuklasu(TPR=1 i FPR=1)
(TPR=1 i FPR=0)
AUC (eng. area under the ROC curve) - povr²ina ispod ROC
krive
Istraºivanje podataka
Klasi�kacija - mere za ocenu modelaZadatak
Klasi�kacija u programskom jeziku PythonZadatak
Klasi�kacija - ROC kriva
Interpretacija odre�enih ta£aka
(TPR=0 i FPR=0) - model svakoj instanci dodeljuje negativnuklasu(TPR=1 i FPR=1) - model svakoj instanci dodeljujepozitivnu klasu
(TPR=1 i FPR=0)
AUC (eng. area under the ROC curve) - povr²ina ispod ROC
krive
Istraºivanje podataka
Klasi�kacija - mere za ocenu modelaZadatak
Klasi�kacija u programskom jeziku PythonZadatak
Klasi�kacija - ROC kriva
Interpretacija odre�enih ta£aka
(TPR=0 i FPR=0) - model svakoj instanci dodeljuje negativnuklasu(TPR=1 i FPR=1) - model svakoj instanci dodeljujepozitivnu klasu(TPR=1 i FPR=0)
AUC (eng. area under the ROC curve) - povr²ina ispod ROC
krive
Istraºivanje podataka
Klasi�kacija - mere za ocenu modelaZadatak
Klasi�kacija u programskom jeziku PythonZadatak
Klasi�kacija - ROC kriva
Interpretacija odre�enih ta£aka
(TPR=0 i FPR=0) - model svakoj instanci dodeljuje negativnuklasu(TPR=1 i FPR=1) - model svakoj instanci dodeljujepozitivnu klasu(TPR=1 i FPR=0) - idealan model
AUC (eng. area under the ROC curve) - povr²ina ispod ROC
krive
Istraºivanje podataka
Klasi�kacija - mere za ocenu modelaZadatak
Klasi�kacija u programskom jeziku PythonZadatak
Outline
1 Klasi�kacija - mere za ocenu modela
2 Zadatak
3 Klasi�kacija u programskom jeziku Python
4 Zadatak
Istraºivanje podataka
Klasi�kacija - mere za ocenu modelaZadatak
Klasi�kacija u programskom jeziku PythonZadatak
Zadatak
Proceniti performanse dva klasi�kaciona modela, M1 i M2. Skup
podataka sadrºi 26 binarnih atributa, ozna£enih od A do Z.
Tabela prikazuje posteriorne verovatno�ce za pozitivnu klasu
dobijene primenom modela na skup podataka. Nacrtati ROC krive.
Istraºivanje podataka
Klasi�kacija - mere za ocenu modelaZadatak
Klasi�kacija u programskom jeziku PythonZadatak
Zadatak
Istraºivanje podataka
Klasi�kacija - mere za ocenu modelaZadatak
Klasi�kacija u programskom jeziku PythonZadatak
Outline
1 Klasi�kacija - mere za ocenu modela
2 Zadatak
3 Klasi�kacija u programskom jeziku Python
4 Zadatak
Istraºivanje podataka
Klasi�kacija - mere za ocenu modelaZadatak
Klasi�kacija u programskom jeziku PythonZadatak
Klasi�kacija u programskom jeziku Python
biblioteke
pandas - obezbe�uje strukture podataka za rad sa relacionimili ozna£enim podacima.scikit-learn - biblioteka za ma²insko u£enje
Istraºivanje podataka
Klasi�kacija - mere za ocenu modelaZadatak
Klasi�kacija u programskom jeziku PythonZadatak
Klasi�kacija: podela na skup za treniranje i testiranje
model_selection.train_test_split - podela skupa podataka nadeo za treniranje modela i deo za testiranje
train_size - veli£ina skupa za treniranjeako je realan broj onda je procenat instanci u trening skupu
ako je ceo broj onda je broj instanci u trening skupu
test_size - veli£ina skupa za testiranje, default=0.25ako je realan broj onda je procenat instanci u test skupu
ako je ceo broj onda je broj instanci u test skupu
shu�e - da li se vr²i me²anje instanci u skupu pre podele,default=Truerandom_state - seme za generisanje slu£ajnih brojevastratify - strati�kovana podela, navodi se lista oznaka klasa
Istraºivanje podataka
Klasi�kacija - mere za ocenu modelaZadatak
Klasi�kacija u programskom jeziku PythonZadatak
Klasi�kacija: drveta odlu£ivanja u scikit-learn
Klasa tree.DecisionTreeClassi�er
neki parametri
criterion - kriterijum za podelu : gini, entropy , default=ginimax_depth - maksimalna dubina drveta: ako nije zadata, drvose ²iri do £istih listova ili dok £vorovi imaju vi²e odmin_samples_split instanci.min_samples_split - minimalan broj instanci u £voru da bido²lo do podele £vora : default=2
Istraºivanje podataka
Klasi�kacija - mere za ocenu modelaZadatak
Klasi�kacija u programskom jeziku PythonZadatak
Klasi�kacija: drveta odlu£ivanja u scikit-learn
neki parametri
min_samples_leaf - minimalan broj instanci u listu: default=1max_leaf_nodes - maksimalan broj listovamin_impurity_decrease - minimalno smanjenje ne£isto�ce. �vor�ce biti podeljen ako je smanjenje ne£isto�ce ve�ce ili jednako odzadate vrednosti.
Istraºivanje podataka
Klasi�kacija - mere za ocenu modelaZadatak
Klasi�kacija u programskom jeziku PythonZadatak
Klasi�kacija: drveta odlu£ivanja u scikit-learn
neki atributi
classes_ - oznake klasafeature_importances_ - zna£ajnost atributatree_ - drvo odlu£ivanja
Istraºivanje podataka
Klasi�kacija - mere za ocenu modelaZadatak
Klasi�kacija u programskom jeziku PythonZadatak
Klasi�kacija: drveta odlu£ivanja u scikit-learn
metode
�t(x,y) - za pravljnje drveta odlu£ivanja na osnovu skupa (x,y)predict(x) - za predvi�anje klase za xpredict_proba(x) - vra�ca verovatno�cu klasa za x. Predvi�enaverovatno�ca klase je procenat instanci te klase u listu.Redosled klasa odgovara onome u atributu classes_.
Istraºivanje podataka
Klasi�kacija - mere za ocenu modelaZadatak
Klasi�kacija u programskom jeziku PythonZadatak
Klasi�kacija: drveta odlu£ivanja u scikit-learn
tree.export_graphviz - funkcija za izvoz drveta odlu£ivanja u
dot format
decision_treeout_�lefeature_names - imena atributa radi lep²eg prikazatest-uslova, default=Noneclass_names - imena klasa radi prikaza imena najzastupljenijeklase, default=None�lled - svakoj klasi se dodeljuje boja i £vorovi se boje premanajzastupljenijom klasi, default=Noneimpurity - prikaz ne£isto�ce £vora, default=Truerounded - prikaz £vora sa zaobljenih uglovima, default=False
dot - jezik za opis grafova
Graphviz - softver za prikaz grafa
Istraºivanje podataka
Klasi�kacija - mere za ocenu modelaZadatak
Klasi�kacija u programskom jeziku PythonZadatak
Klasi�kacija: mere performansi
confusion_matrix(y_true, y_pred) - matrica konfuzije
accuracy_score(y_true, y_pred, normalize=True) -
preciznost, ako je normalize=False vra�ca broj ta£no
klasi�kovanih instanci
precision_score(y_true, y_pred, average) - preciznost
recall_score(y_true, y_pred, average) - odziv
f1_score(y_true, y_pred, average)
classi�cation_report(y_true, y_pred) - tekstualni izve²taj sa
glavnim merama za klasi�kaciju
Istraºivanje podataka
Klasi�kacija - mere za ocenu modelaZadatak
Klasi�kacija u programskom jeziku PythonZadatak
Klasi�kacija: mere performansi
opcije za average
average=None, rezultat je skor za svaku klasuaverage=binary, vra�ca rezultat samo za klasu navedenu prekoparametra pos_labelaverage=micro, mera se ra£una globalno, brojanjem ukupnihtp, fn i fp instanci.average=macro, ra£una meru za svaku klasu posebno i vra�casrednju vrednostaverage=weighted, ra£una meru za svaku klasu posebno ivra�ca srednju vrednost ponderisanu podr²kom.
Istraºivanje podataka
Klasi�kacija - mere za ocenu modelaZadatak
Klasi�kacija u programskom jeziku PythonZadatak
Klasi�kacija: mere performansi
roc_curve(y_true, y_score, pos_label=None)
samo za skup podataka sa 2 klasepos_label - oznaka pozitivne klasevra�ca nizove: fpr, tpr, thresholds
Istraºivanje podataka
Klasi�kacija - mere za ocenu modelaZadatak
Klasi�kacija u programskom jeziku PythonZadatak
Outline
1 Klasi�kacija - mere za ocenu modela
2 Zadatak
3 Klasi�kacija u programskom jeziku Python
4 Zadatak
Istraºivanje podataka
Klasi�kacija - mere za ocenu modelaZadatak
Klasi�kacija u programskom jeziku PythonZadatak
Zadatak
Skup podataka klasi�kacija.txt sadrºi podatke o osobama koje su
donirale krv. Koriste¢i alat IBM SPSS Modeler izvr²iti klasi�kaciju
primenom drveta odlu£ivanja (algoritam C5.0) nad skupom. Ciljni
atribut je Class. Model ozna£iti sa model1.
U teku¢em mesecu je nesta²ica krvi zbog £ega ¢e volonteri li£no
morati da zovu registrovane davaoce krvi kako bi ²to pre prikupili
dovoljno krvi. Napraviti model koji bi volonterima bio od pomo¢i u
odabiru koga da zovu. Dobijeni model ozna£iti sa model2.
Istraºivanje podataka
Klasi�kacija - mere za ocenu modelaZadatak
Klasi�kacija u programskom jeziku PythonZadatak
Zadatak
Podatke o dobijenim modelima (preciznost i matrice konfuzije na
trening i test skupu) sa£uvajte u html datotekama. U komentarima
opisati dobijene modele i navesti koji su atributi najzna£ajniji za
pravljenje modela. Navesti koje ste sve parametre postavili, koje
vrednosti ste zadali i za²to.
Radni tok eksportovati i dodeliti mu ime u formatu
SPSS_klasi�kacija_vasBrojIndeksa. Odgovore pi²ite u datoteku
sa nazivom SPSS_klasi�kacija_vasBrojIndeksa_odgovori.
Istraºivanje podataka
Klasi�kacija - mere za ocenu modelaZadatak
Klasi�kacija u programskom jeziku PythonZadatak
Zadatak
Opis atributa skupa:
Recency : broj meseci od poslednje donacije krvi
Frequency : ukupan broj donacija
Monetary : ukupna krv donirana u cm3
Time : broj meseci od prve donacije
Class: da li je donor krvi u teku¢em mesecu (1 - da, 0 - ne)
Istraºivanje podataka