Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
Naivni Bajesovski klasi�katoriIzdvajanje terma iz teksta u biblioteci scikit-learn
Naivni Bajesovski klasi�katori u biblioteci scikit-learnUputstvo za seminarske radove
Istraºivanje podataka
Veºbe 7
2. April 2019
Istraºivanje podataka
Naivni Bajesovski klasi�katoriIzdvajanje terma iz teksta u biblioteci scikit-learn
Naivni Bajesovski klasi�katori u biblioteci scikit-learnUputstvo za seminarske radove
Outline
1 Naivni Bajesovski klasi�katori
2 Izdvajanje terma iz teksta u biblioteci scikit-learn
3 Naivni Bajesovski klasi�katori u biblioteci scikit-learn
4 Uputstvo za seminarske radove
Istraºivanje podataka
Naivni Bajesovski klasi�katoriIzdvajanje terma iz teksta u biblioteci scikit-learn
Naivni Bajesovski klasi�katori u biblioteci scikit-learnUputstvo za seminarske radove
Outline
1 Naivni Bajesovski klasi�katori
2 Izdvajanje terma iz teksta u biblioteci scikit-learn
3 Naivni Bajesovski klasi�katori u biblioteci scikit-learn
4 Uputstvo za seminarske radove
Istraºivanje podataka
Naivni Bajesovski klasi�katoriIzdvajanje terma iz teksta u biblioteci scikit-learn
Naivni Bajesovski klasi�katori u biblioteci scikit-learnUputstvo za seminarske radove
Naivni Bajesovski klasi�katori
Uslovna verovatno¢a
P(C |A) = P(A,C )P(A)
Bajesova teorema
P(C |A) = P(A|C ) ∗ P(C )P(A)
Istraºivanje podataka
Naivni Bajesovski klasi�katoriIzdvajanje terma iz teksta u biblioteci scikit-learn
Naivni Bajesovski klasi�katori u biblioteci scikit-learnUputstvo za seminarske radove
Naivni Bajesovski klasi�katori
Pretpostavka o nezavisnosti izmeu atributa
P(C |A1,A2, ...,An) =∏n
i=1 P(Ai |C ) ∗ P(C )P(A)
Odreivanje klase
Ĉ = arg maxC
n∏i=1
P(Ai |C ) ∗ P(C )
Istraºivanje podataka
Naivni Bajesovski klasi�katoriIzdvajanje terma iz teksta u biblioteci scikit-learn
Naivni Bajesovski klasi�katori u biblioteci scikit-learnUputstvo za seminarske radove
Zadatak 1
Dati su podaci :
Boja Veli£ina Vrsta Osoba Naduvan
ut Mali Duguljast Odrasla Tut Mali Duguljast Dete Tut Mali Okrugao Dete T
Ljubi£ast Veliki Okrugao Odrasla Tut Veliki Okrugao Dete Fut Veliki Duguljast Dete F
Ljubi£ast Mali Okrugao Dete FLjubi£ast Veliki Duguljast Odrasla F
Istraºivanje podataka
Naivni Bajesovski klasi�katoriIzdvajanje terma iz teksta u biblioteci scikit-learn
Naivni Bajesovski klasi�katori u biblioteci scikit-learnUputstvo za seminarske radove
Zadatak 1
Kori²¢enjem naivnog Bajesovog algoritma na osnovu prethodnodatih podataka klasi�kovati slede¢e instance i izra£unati preciznost.
Boja Veli£ina Vrsta Osoba Naduvan
Ljubi£ast Mali Okrugao Odrasla Tut Mali Okrugao Odrasla T
Ljubi£ast Veliki Okrugao Dete TLjubi£ast Veliki Duguljast Odrasla F
Istraºivanje podataka
Naivni Bajesovski klasi�katoriIzdvajanje terma iz teksta u biblioteci scikit-learn
Naivni Bajesovski klasi�katori u biblioteci scikit-learnUputstvo za seminarske radove
Zadatak 2
Dat je skup podataka:
Predvideti oznaku klase za test primer (A=0, B=1,C=0) koriste¢inaivan Bajesov pristup.
Istraºivanje podataka
Naivni Bajesovski klasi�katoriIzdvajanje terma iz teksta u biblioteci scikit-learn
Naivni Bajesovski klasi�katori u biblioteci scikit-learnUputstvo za seminarske radove
Naivni Bajes za klasi�kaciju teksta
Podaci su predstavljeni sa term-matricom: atributi su termi(re£i); broj atributa je veli£ina re£nika. Za svaki dokument isvaki term (re£) £uva se broj pojavljivanja tog terma u tomdokumentu. Umesto broja pojavljivanja terma moºe da sekoristi td-idf mera.
Istraºivanje podataka
Naivni Bajesovski klasi�katoriIzdvajanje terma iz teksta u biblioteci scikit-learn
Naivni Bajesovski klasi�katori u biblioteci scikit-learnUputstvo za seminarske radove
Naivni Bajesovski klasi�katori
Svakoj klasi c se dodeljuje vektor parametaraΘc = (Θc1,Θc2, ...,Θcn), gde je n broj terma (atributa), a Θciverovatno¢a da se term i pojavi u instanci koja pripada klasi c .
Θci =Nci+αNc+α∗n
Nci broj pojavljivanja terma (re£i) i u dokumentima klase cNc ukupan broj pojavljivanja svih re£i u klasi c
Istraºivanje podataka
Naivni Bajesovski klasi�katoriIzdvajanje terma iz teksta u biblioteci scikit-learn
Naivni Bajesovski klasi�katori u biblioteci scikit-learnUputstvo za seminarske radove
Naivni Bajesovski klasi�katori
klasi�kacija dokumenta d sa termina 〈t1, t2, ...tnd〉
ĉ = arg maxc
P(c)nd∏i=1
P(ti |c) = arg maxc
P(c)nd∏i=1
Θci
radi lak²eg izra£unavanja
ĉ = arg maxc
[logP(c) +nd∑i=1
logP(ti |c)]
Istraºivanje podataka
Naivni Bajesovski klasi�katoriIzdvajanje terma iz teksta u biblioteci scikit-learn
Naivni Bajesovski klasi�katori u biblioteci scikit-learnUputstvo za seminarske radove
Zadatak 3
Dati su podaci :
Id teksta re£i u dokumentu klasa�1 Chinese Beijing Chinese yes�2 Chinese Chinese Shanghai yes�3 Chinese Macao yes�4 Tokyo Japan Chinese no
Primenom naivnog Bajesa za klasi�kaciju teksta klasi�kovati tekstChinese Chinese Chinese Tokyo Japan ako je α = 1.
Istraºivanje podataka
Naivni Bajesovski klasi�katoriIzdvajanje terma iz teksta u biblioteci scikit-learn
Naivni Bajesovski klasi�katori u biblioteci scikit-learnUputstvo za seminarske radove
Outline
1 Naivni Bajesovski klasi�katori
2 Izdvajanje terma iz teksta u biblioteci scikit-learn
3 Naivni Bajesovski klasi�katori u biblioteci scikit-learn
4 Uputstvo za seminarske radove
Istraºivanje podataka
Naivni Bajesovski klasi�katoriIzdvajanje terma iz teksta u biblioteci scikit-learn
Naivni Bajesovski klasi�katori u biblioteci scikit-learnUputstvo za seminarske radove
Izdvajanje terma iz teksta
sklearn.feature_extraction.text
CountVectorizer - pretvara kolekciju tekst dokumenata uterm-matricu sa brojem pojavljivanja terma u dokumentuT�dfVectorizer() - pretvara kolekciju tekst dokumenata umatricu sa tf-idf atributimaT�dfTransformer() - pretvara matricu sa brojem pojavljivanja umatricu sa tf-idf atributima
Istraºivanje podataka
Naivni Bajesovski klasi�katoriIzdvajanje terma iz teksta u biblioteci scikit-learn
Naivni Bajesovski klasi�katori u biblioteci scikit-learnUputstvo za seminarske radove
Izdvajanje terma iz teksta
tf-idf : term-frequency - inverse document frequency
tf - term-frequency (u klasi�kacija teksta: frekvencija re£i )
tf-idf je tf*idf, smanjuje uticaj terma koji se £esto javlja udatom korpusu
formulatf − idf (t, d) = tf (t, d) ∗ idf (t)
idf (t) = log[n/df (t)] + 1
t - termd - dokumentn - ukupan broj dokumenatadf(t) - broj dokumenata koji sadrºe term tzbog 1 u idf(t) term koji se javlja u svim dokumentima ne¢e upotpunosti biti ignosrisan
Istraºivanje podataka
Naivni Bajesovski klasi�katoriIzdvajanje terma iz teksta u biblioteci scikit-learn
Naivni Bajesovski klasi�katori u biblioteci scikit-learnUputstvo za seminarske radove
Izdvajanje terma iz teksta
parametri (T�dfVectorizer i CountVectorizer)
input - ²ta je ulaz (`�lename`, `�le`, `content`)(default=`content`)lowercase - sva slova ¢e biti pretvorena u mala pre izdvajanja(default=True)stop_words - re£i koje ¢e biti uklonjene (default=`english`)max_df - ignori²e re£i koje imaju dokument-frekvenciju iznadzadatog praga (zadaje se procenat ili broj dokumenata)(default=1.0)min_df -gnori²e re£i koje imaju dokument-frekvenciju ispodzadatog praga (zadaje se procenat ili broj dokumenata)(default=1.0)binary - term koji se javlja u dokumentu ima vrednos 1 umestobroja pojavljivanja (default=False)
Istraºivanje podataka
Naivni Bajesovski klasi�katoriIzdvajanje terma iz teksta u biblioteci scikit-learn
Naivni Bajesovski klasi�katori u biblioteci scikit-learnUputstvo za seminarske radove
Izdvajanje terma iz teksta
parametri (T�dfVectorizer i T�dfTransformer)
norm - l1, l2 ili None (default=`l2`)
l2 - zbir kvadrata elemenata vektora je 1 (proizvod dvavektora je njihova kosinusna sli£nost)l1 - zbir elemenata vektora je 1
use_idf -(default=True)
atributi samo T�dfVectorizer
vocabulary_ - re£nik sa re£ima kao klju£evima, a vrednosti suindeksi odgovaraju¢ih atributa
Istraºivanje podataka
Naivni Bajesovski klasi�katoriIzdvajanje terma iz teksta u biblioteci scikit-learn
Naivni Bajesovski klasi�katori u biblioteci scikit-learnUputstvo za seminarske radove
Izdvajanje terma iz teksta
metode�t - u£i re£nik�t_transform - u£i re£nik i vra¢a term matricutransform - pretvara tekstove u term matricuget_feature_names - vra¢a imena atributa (T�dfVectorizer iCountVectorizer)get_stop_words - vra¢a stop re£i (T�dfVectorizer iCountVectorizer)
Istraºivanje podataka
Naivni Bajesovski klasi�katoriIzdvajanje terma iz teksta u biblioteci scikit-learn
Naivni Bajesovski klasi�katori u biblioteci scikit-learnUputstvo za seminarske radove
Izdvajanje terma iz re£nika
sklearn.feature_extraction.DictVectorizer - transformi²ere£nike sa podacima u obliku atribut-vrednost u vektore.
kada su vrednosti atributa niske primenjuje se kodiranjejedan-od-cmetode
�t�t_transformget_feature_namestransform
Istraºivanje podataka
Naivni Bajesovski klasi�katoriIzdvajanje terma iz teksta u biblioteci scikit-learn
Naivni Bajesovski klasi�katori u biblioteci scikit-learnUputstvo za seminarske radove
Outline
1 Naivni Bajesovski klasi�katori
2 Izdvajanje terma iz teksta u biblioteci scikit-learn
3 Naivni Bajesovski klasi�katori u biblioteci scikit-learn
4 Uputstvo za seminarske radove
Istraºivanje podataka
Naivni Bajesovski klasi�katoriIzdvajanje terma iz teksta u biblioteci scikit-learn
Naivni Bajesovski klasi�katori u biblioteci scikit-learnUputstvo za seminarske radove
Naivni Bajesovski klasi�katori
sklearn.naive_bayes.MultinomialNB
parametri
alpha - (default=1.0)�t_prior - da li u£i verovatno¢e klasa (default=True)class_prior - verovatno¢e klasa (default=None)
Istraºivanje podataka
Naivni Bajesovski klasi�katoriIzdvajanje terma iz teksta u biblioteci scikit-learn
Naivni Bajesovski klasi�katori u biblioteci scikit-learnUputstvo za seminarske radove
Naivni Bajesovski klasi�katori
atributi
class_count_ - broj instanci po klasamafeature_count_ - broj terma po klasi
Istraºivanje podataka
Naivni Bajesovski klasi�katoriIzdvajanje terma iz teksta u biblioteci scikit-learn
Naivni Bajesovski klasi�katori u biblioteci scikit-learnUputstvo za seminarske radove
Naivni Bajesovski klasi�katori
metode�t(x, y) - pravi modelpredict(x) - odreuje klase instancamapredict_proba(X) - vra¢a procenjenu verovatno¢u za testinstance
Istraºivanje podataka
Naivni Bajesovski klasi�katoriIzdvajanje terma iz teksta u biblioteci scikit-learn
Naivni Bajesovski klasi�katori u biblioteci scikit-learnUputstvo za seminarske radove
Naivni Bajesovski klasi�katori
sklearn.naive_bayes.GaussianNB
P(xi |C ) =1√2πσ2c
e(− (xi − µc)2
2σ2c)
parametri
priors - verovatno¢e klasa (default=None)
atributi
class_count_ - srednja vrednost atributa za svaku klasusigma_ - varijansa atributa za svaku klasu
metode
�t(x, y) - pravi modelpredict(x) - odreuje klase instancamapredict_proba(X) - vra¢a procenjenu verovatno¢u za testinstance
Istraºivanje podataka
Naivni Bajesovski klasi�katoriIzdvajanje terma iz teksta u biblioteci scikit-learn
Naivni Bajesovski klasi�katori u biblioteci scikit-learnUputstvo za seminarske radove
Outline
1 Naivni Bajesovski klasi�katori
2 Izdvajanje terma iz teksta u biblioteci scikit-learn
3 Naivni Bajesovski klasi�katori u biblioteci scikit-learn
4 Uputstvo za seminarske radove
Istraºivanje podataka
Naivni Bajesovski klasi�katoriIzdvajanje terma iz teksta u biblioteci scikit-learn
Naivni Bajesovski klasi�katori u biblioteci scikit-learnUputstvo za seminarske radove
Obrada teksta na engleskom jeziku
1 eliminacija stop re£i2 svoenje re£i na koren pomo¢u Porterovog stemera
https://tartarus.org/martin/PorterStemmer/
3 pravljenje term matrice
Istraºivanje podataka
https://tartarus.org/martin/PorterStemmer/
Naivni Bajesovski klasifikatoriIzdvajanje terma iz teksta u biblioteci scikit-learn Naivni Bajesovski klasifikatori u biblioteci scikit-learnUputstvo za seminarske radove