26

Istra ivanje podataka - Ve be 7 - University of Belgrade · Izdvajanje terma iz teksta u biblioteci scikit-learn Naivni Bajesovski klasi katori u biblioteci scikit-learn Uputstvo

  • 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