istra ivanje podataka - ve be 5 · klasi kacija - mere za ocenu modela zadatak klasi kacija u...

34

Upload: others

Post on 10-Mar-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Istra ivanje podataka - Ve be 5 · Klasi kacija - mere za ocenu modela Zadatak Klasi kacija u rogramskpom jeziku Python Zadatak Klasi kacija - mere za ocenu modela stopa stvarno pozitivnih

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

Page 2: Istra ivanje podataka - Ve be 5 · Klasi kacija - mere za ocenu modela Zadatak Klasi kacija u rogramskpom jeziku Python Zadatak Klasi kacija - mere za ocenu modela stopa stvarno pozitivnih

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

Page 3: Istra ivanje podataka - Ve be 5 · Klasi kacija - mere za ocenu modela Zadatak Klasi kacija u rogramskpom jeziku Python Zadatak Klasi kacija - mere za ocenu modela stopa stvarno pozitivnih

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

Page 4: Istra ivanje podataka - Ve be 5 · Klasi kacija - mere za ocenu modela Zadatak Klasi kacija u rogramskpom jeziku Python Zadatak Klasi kacija - mere za ocenu modela stopa stvarno pozitivnih

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

Page 5: Istra ivanje podataka - Ve be 5 · Klasi kacija - mere za ocenu modela Zadatak Klasi kacija u rogramskpom jeziku Python Zadatak Klasi kacija - mere za ocenu modela stopa stvarno pozitivnih

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

Page 6: Istra ivanje podataka - Ve be 5 · Klasi kacija - mere za ocenu modela Zadatak Klasi kacija u rogramskpom jeziku Python Zadatak Klasi kacija - mere za ocenu modela stopa stvarno pozitivnih

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

Page 7: Istra ivanje podataka - Ve be 5 · Klasi kacija - mere za ocenu modela Zadatak Klasi kacija u rogramskpom jeziku Python Zadatak Klasi kacija - mere za ocenu modela stopa stvarno pozitivnih

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

Page 8: Istra ivanje podataka - Ve be 5 · Klasi kacija - mere za ocenu modela Zadatak Klasi kacija u rogramskpom jeziku Python Zadatak Klasi kacija - mere za ocenu modela stopa stvarno pozitivnih

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

Page 9: Istra ivanje podataka - Ve be 5 · Klasi kacija - mere za ocenu modela Zadatak Klasi kacija u rogramskpom jeziku Python Zadatak Klasi kacija - mere za ocenu modela stopa stvarno pozitivnih

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

Page 10: Istra ivanje podataka - Ve be 5 · Klasi kacija - mere za ocenu modela Zadatak Klasi kacija u rogramskpom jeziku Python Zadatak Klasi kacija - mere za ocenu modela stopa stvarno pozitivnih

Klasi�kacija - mere za ocenu modelaZadatak

Klasi�kacija u programskom jeziku PythonZadatak

Klasi�kacija - mere za ocenu modela

Istraºivanje podataka

Page 11: Istra ivanje podataka - Ve be 5 · Klasi kacija - mere za ocenu modela Zadatak Klasi kacija u rogramskpom jeziku Python Zadatak Klasi kacija - mere za ocenu modela stopa stvarno pozitivnih

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

Page 12: Istra ivanje podataka - Ve be 5 · Klasi kacija - mere za ocenu modela Zadatak Klasi kacija u rogramskpom jeziku Python Zadatak Klasi kacija - mere za ocenu modela stopa stvarno pozitivnih

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

Page 13: Istra ivanje podataka - Ve be 5 · Klasi kacija - mere za ocenu modela Zadatak Klasi kacija u rogramskpom jeziku Python Zadatak Klasi kacija - mere za ocenu modela stopa stvarno pozitivnih

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

Page 14: Istra ivanje podataka - Ve be 5 · Klasi kacija - mere za ocenu modela Zadatak Klasi kacija u rogramskpom jeziku Python Zadatak Klasi kacija - mere za ocenu modela stopa stvarno pozitivnih

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

Page 15: Istra ivanje podataka - Ve be 5 · Klasi kacija - mere za ocenu modela Zadatak Klasi kacija u rogramskpom jeziku Python Zadatak Klasi kacija - mere za ocenu modela stopa stvarno pozitivnih

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

Page 16: Istra ivanje podataka - Ve be 5 · Klasi kacija - mere za ocenu modela Zadatak Klasi kacija u rogramskpom jeziku Python Zadatak Klasi kacija - mere za ocenu modela stopa stvarno pozitivnih

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

Page 17: Istra ivanje podataka - Ve be 5 · Klasi kacija - mere za ocenu modela Zadatak Klasi kacija u rogramskpom jeziku Python Zadatak Klasi kacija - mere za ocenu modela stopa stvarno pozitivnih

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

Page 18: Istra ivanje podataka - Ve be 5 · Klasi kacija - mere za ocenu modela Zadatak Klasi kacija u rogramskpom jeziku Python Zadatak Klasi kacija - mere za ocenu modela stopa stvarno pozitivnih

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

Page 19: Istra ivanje podataka - Ve be 5 · Klasi kacija - mere za ocenu modela Zadatak Klasi kacija u rogramskpom jeziku Python Zadatak Klasi kacija - mere za ocenu modela stopa stvarno pozitivnih

Klasi�kacija - mere za ocenu modelaZadatak

Klasi�kacija u programskom jeziku PythonZadatak

Zadatak

Istraºivanje podataka

Page 20: Istra ivanje podataka - Ve be 5 · Klasi kacija - mere za ocenu modela Zadatak Klasi kacija u rogramskpom jeziku Python Zadatak Klasi kacija - mere za ocenu modela stopa stvarno pozitivnih

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

Page 21: Istra ivanje podataka - Ve be 5 · Klasi kacija - mere za ocenu modela Zadatak Klasi kacija u rogramskpom jeziku Python Zadatak Klasi kacija - mere za ocenu modela stopa stvarno pozitivnih

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

Page 22: Istra ivanje podataka - Ve be 5 · Klasi kacija - mere za ocenu modela Zadatak Klasi kacija u rogramskpom jeziku Python Zadatak Klasi kacija - mere za ocenu modela stopa stvarno pozitivnih

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

Page 23: Istra ivanje podataka - Ve be 5 · Klasi kacija - mere za ocenu modela Zadatak Klasi kacija u rogramskpom jeziku Python Zadatak Klasi kacija - mere za ocenu modela stopa stvarno pozitivnih

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

Page 24: Istra ivanje podataka - Ve be 5 · Klasi kacija - mere za ocenu modela Zadatak Klasi kacija u rogramskpom jeziku Python Zadatak Klasi kacija - mere za ocenu modela stopa stvarno pozitivnih

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

Page 25: Istra ivanje podataka - Ve be 5 · Klasi kacija - mere za ocenu modela Zadatak Klasi kacija u rogramskpom jeziku Python Zadatak Klasi kacija - mere za ocenu modela stopa stvarno pozitivnih

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

Page 26: Istra ivanje podataka - Ve be 5 · Klasi kacija - mere za ocenu modela Zadatak Klasi kacija u rogramskpom jeziku Python Zadatak Klasi kacija - mere za ocenu modela stopa stvarno pozitivnih

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

Page 27: Istra ivanje podataka - Ve be 5 · Klasi kacija - mere za ocenu modela Zadatak Klasi kacija u rogramskpom jeziku Python Zadatak Klasi kacija - mere za ocenu modela stopa stvarno pozitivnih

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

Page 28: Istra ivanje podataka - Ve be 5 · Klasi kacija - mere za ocenu modela Zadatak Klasi kacija u rogramskpom jeziku Python Zadatak Klasi kacija - mere za ocenu modela stopa stvarno pozitivnih

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

Page 29: Istra ivanje podataka - Ve be 5 · Klasi kacija - mere za ocenu modela Zadatak Klasi kacija u rogramskpom jeziku Python Zadatak Klasi kacija - mere za ocenu modela stopa stvarno pozitivnih

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

Page 30: Istra ivanje podataka - Ve be 5 · Klasi kacija - mere za ocenu modela Zadatak Klasi kacija u rogramskpom jeziku Python Zadatak Klasi kacija - mere za ocenu modela stopa stvarno pozitivnih

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

Page 31: Istra ivanje podataka - Ve be 5 · Klasi kacija - mere za ocenu modela Zadatak Klasi kacija u rogramskpom jeziku Python Zadatak Klasi kacija - mere za ocenu modela stopa stvarno pozitivnih

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

Page 32: Istra ivanje podataka - Ve be 5 · Klasi kacija - mere za ocenu modela Zadatak Klasi kacija u rogramskpom jeziku Python Zadatak Klasi kacija - mere za ocenu modela stopa stvarno pozitivnih

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

Page 33: Istra ivanje podataka - Ve be 5 · Klasi kacija - mere za ocenu modela Zadatak Klasi kacija u rogramskpom jeziku Python Zadatak Klasi kacija - mere za ocenu modela stopa stvarno pozitivnih

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

Page 34: Istra ivanje podataka - Ve be 5 · Klasi kacija - mere za ocenu modela Zadatak Klasi kacija u rogramskpom jeziku Python Zadatak Klasi kacija - mere za ocenu modela stopa stvarno pozitivnih

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