Mis vahe on Naives Bayes klassifikaatoril (eeldusel, et pidevmuutujatel on Gaussi jaotus) ja Gaussi protsessi klassifikaatoril?


Vastus 1:

Neil on ühine joon, et kui need on paigaldatud, pakuvad nad ennustavat jaotust.

Naives Bayes klassifikaatorite puhul on ennustav jaotus järgmine:

y^=argmaxkp(ck)Πp(xick) \hat{y} = argmax_{k} p(c_k) \Pi p(x_i | c_k)

See tuleneb Bayesi reeglist ja eeldusest, et omadused on sõltumatud. Prioreid saab hõlpsasti kindlaks määrata, lugedes iga klassi andmete osa ja p (x_i | c_k) on tavaliselt modelleeritud kui midagi lihtsat, näiteks gaussi jaotus, millel on iga klassi iga tunnuse keskmine ja dispersioon. Arvutuslikust seisukohast tähendab selle mudeli sobitamine ühekordset andmete edastamist, kus te lihtsalt loete asju. Arvutuslikust aspektist hõlmab selle mudeli abil ennustamine Gaussi funktsiooni hindamist mitu korda, mis on teie omaduste arv korrutatuna klasside arvuga, seejärel mõned korrutised ja argmax. See on väga lihtne. Nii lihtne, et see ei pruugi olla piisav mudel korrelatiivsete tunnustega, tunnuste erineva impordiga andmekogude jaoks (pange tähele hüperparameetrite puudumist tunnuste kaalumiseks) jne.

Gaussi protsessi binaarsete klassifikaatorite jaoks on ennustav jaotus (nagu Bishop arutas PRML-is) järgmiselt:

p(tN+1=1tN)=p(tN+1=1aN+1)p(aN+1tN)daN+1p( t_{N+1} = 1 | \mathbb{t}_N) = \int p(t_{N+1} = 1 | a_{N+1}) p(a{N+1} | \mathbb{t}_N) da_{N+1}

kus

p(tN+1=1aN+1)=σ(aN+1)p(t_{N+1} = 1 | a_{N+1}) = \sigma(a_{N+1})

ja

p(aN+1)=N(0,CN+1)p(\mathbb{a}_{N+1}) = \mathcal{N}(0,C_{N+1})

ja

CN+1=k(xn,xm)+νδn,mC_{N+1} = k(x_n,x_m) + \nu \delta_{n,m}

Nendele võrrandite lugemisel tekkida võivatele küsimustele vastamiseks ...

Mis see k on? Sellele küsimusele vastamine hõlmab suurema osa teie küsimusele antud vastusest. k on teie valitud kerneli funktsioon. Niisiis hõlmab teie mudel nüüd teie andmekogumist koosneva iga näidisepaari tööd, mis muudab suuremates andmekogudes skaleerimise arvutuslikult intensiivsemaks kui Naive Bayes, kus te lihtsalt skannite oma andmed üle, kui olete vajaliku statistika kokku loendanud. Kerneli funktsioonidel võivad olla ka hüperparameetrid, mida saate arukalt valida või optimeerida (võib-olla maksimeerida teie antud andmete logi tõenäosuse). Miks siis vaeva näha seda tööd tegema? Tuumad võivad anda üsna rikkaliku idee „sarnasusest nende andmetega, mida olen varem näinud“. See erineb üsna palju Naive Bayesist, kus loobute mõttest, et funktsioonidel võib olla üksteisega pistmist ja kus konkreetne andmepunkt saab levikut mõjutada ainult klassi (või muu parameetrid, kui te ei kasuta Gaussi mudelit). Tuumad on laiem teema, millest saate lugeda, et saada rohkem teavet selle kohta, mida nad Gaussi protsessides teevad.

Mis on

aN+1\mathbb{a}_{N+1}

? See on funktsiooni vektor

aa

rakendatakse meie treeningandmete vektorile koos andmepunktiga, et lõpus ennustada. See on funktsioon, mida me ei täpsusta, vaid tutvustame selle kohta Gaussi protsessi. See on vastupidine mittepaksuvale

aN+1a_{N+1}

mis tähistab meie ennustatava valimi rakendamist.

Miks on

p(aN+1)p(\mathbb{a}_{N+1})

eeldatakse nulli keskmist? See on osa sõnastusest ja ma pole päris kindel, miks. Mulle on rohkem tuttav Gaussi protsesside kasutamine regressiooniks, mitte klassifitseerimiseks (mis on loomulikum idee IMHO) ja sellises seadistuses saate oma eesmärkidest keskmise lahutada, et muuta see keskväärtuseks.

Mis see on

δ\delta

? Dirac-delta funktsioon, nii et mõelge sellele terminile skaleeritud identiteedimaatriksina.

Kas see on lahutamatu jälgitav? Tegelikult mitte ja kasutada on palju lähendusi. Scikit-learning teostus ütleb, et ta kasutab selleks Laplace'i lähendamist.

See on kahendklassifikaator, eks, kui ma tahan, et mul oleks k klassi? Jah, siis kasutaksite midagi sellist nagu üks-vastu-puhkus, nagu seda tehakse skikiti õppimise rakenduses.