У чым розніца паміж класіфікатарам Naive Bayes (пры ўмове размеркавання Гаўса па бесперапынных пераменных) і класіфікатарам працэсаў Гаўса?


адказ 1:

У іх агульнае тое, што яны забяспечваюць прагнастычнае размеркаванне пасля карэкціроўкі.

Для класіфікатараў Naive Bayes размеркаванне прагнозаў мае выгляд:

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

Гэта вынікае з правіла Байеса і здагадкі, што характарыстыкі незалежныя. Прыярытэты можна лёгка вызначыць, падлічыўшы долю дадзеных з кожнага класа, і p (x_i | c_k) звычайна мадэлюецца як нешта простае, напрыклад, размеркаванне Гаўса з сярэднім і дысперсіяй кожнай характарыстыкі для кожнага класа. З пункту гледжання вылічэнняў, адаптацыя гэтай мадэлі ўключае ў сябе адзін праход праз дадзеныя, дзе вы проста падлічваеце рэчы. З пункту гледжання вылічэння, прагназаванне гэтай мадэлі ўключае ў сябе шматлікую ацэнку Гаўсавай функцыі, то ёсць яе колькасць функцый, памножаную на колькасць класаў, а таксама некаторыя множання і аргмакс. Гэта вельмі проста. Настолькі проста, што гэта можа быць не дастатковай мадэллю для набораў дадзеных з карэляванымі прыкметамі, розным значэннем функцый (звярніце ўвагу на адсутнасць гіперпараметраў для функцый узважвання) і г.д.

Для бінарных класіфікатараў гаўсаўскага працэсу прагнастычны размеркаванне (як абмяркоўвалася ў біскупскім ПРМЛ) мае выгляд:

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}

дзе

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

і

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

і

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

Каб адказаць на некаторыя пытанні, якія могуць узнікнуць пры чытанні гэтых раўнанняў ...

Што такое k Адказ на гэтае пытанне ўключае ў сябе большасць адказаў на ваша пытанне. k - абраная вамі функцыя ядра. У вашай мадэлі зараз вы павінны працаваць над кожнай парай узораў з вашага набору дадзеных. Гэта робіць маштабаванне вялікіх набораў дадзеных больш вылічальна інтэнсіўна, чым для Naive Bayes, дзе вы проста сканіруеце свае дадзеныя, як толькі вы падлічылі неабходную статыстыку. Функцыі ядра таксама могуць мець гіперпараметры, якія вы можаце інтэлектуальна выбраць ці аптымізаваць (магчыма, каб максімальна павялічыць верагоднасць рэгістрацыі вашых дадзеных у \ theta). Дык навошта наогул працаваць? Ядра могуць даць даволі поўнае ўяўленне пра "падабенства з дадзенымі, якія я бачыў раней". Гэта вельмі адрозніваецца ад Naive Bayes, у якім вы адхіляеце ідэю, што асаблівасці могуць мець адносіны адзін да аднаго, і ў якой пэўная кропка дадзеных можа ўплываць толькі на размеркаванне, уздзейнічаючы на ​​сярэдняе значэнне і дысперсію параметраў свайго класа (ці іншага). калі вы не выкарыстоўваеце мадэль Гаўса). Ядры - гэта больш поўная тэма, пра якую можна прачытаць, каб атрымаць больш поўнае ўяўленне пра тое, як працуюць Гаўсавыя працэсы.

Што ёсць

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

? Гэта вектар функцыі

aa

прымяняецца да а-вектару нашых трэнінгавых дадзеных з пунктам дадзеных, які трэба прагназаваць у канцы. Гэта функцыя, якую мы не канкрэтызуем, але ўводзім у ёй працэс Гаўса. У адрозненне ад гэтага, гэта не тлушч

aN+1a_{N+1}

Гэта дадатак да ўзору, які мы прагназуем.

Чаму так

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

мяркуецца як нулявая сярэдняя? Гэта частка фармулёўкі, і я не ведаю, чаму. Я больш знаёмы з выкарыстаннем працэсаў Гаўса для рэгрэсіі, чым для класіфікацыі (што, на мой погляд, з'яўляецца больш натуральнай ідэяй), і ў такіх умовах вы можаце адняць сярэдняе значэнне ад сваіх мэтаў да нуля.

Што гэта?

δ\delta

? Функцыя Delta Dirac. Падумайце пра гэты тэрмін як маштабаваную матрыцу ідэнтычнасці.

Ці зразумела гэта інтэграл? На самай справе, і ёсць шмат набліжэнняў, якія можна выкарыстоўваць. У рэалізацыі Scikit-Learn для гэтага выкарыстоўваецца набліжэнне Лапласа.

Гэта бінарны класіфікатар, што рабіць, калі я хачу мець класы k? Так, вы б выкарыстоўвалі нешта накшталт сістэмы «адзін супраць астатняга», падобную на рэалізацыю Scikit-Learn.