Naive Bayesen bidezko spam iragazketa

**Naive Bayes spam iragazketa** zabor-posta (spam) tratatzeko oinarrizko teknika bat da. Erabiltzailearen posta elektronikoaren beharretara egokitu daiteke, eta spam antzematen zabor-detekzio faltsuaren tasa txikia izaten du, erabiltzaileentzat orokorrean onargarria izaten dena. Spama iragazteko modu zaharrenetariko bat da, 1990eko hamarkadan jatorria duena.

Naive Bayes sailkatzaileak mezu elektroniko iragazteko dauden teknika estatistiko ezagunak dira. Normalean spam mezuak identifikatzeko hitz-zaku bereizgarri bat erabiltzen dute, testu-sailkapenean arrunta den teknika.

Naive Bayes sailkatzaileek korrelazio bat bilatzen dute zenbait token (orokorrean hitzak edo beste batzuetan beste gauza batzuk), eta spam diren edo ez diren mezu elektronikoekin; eta ondoren, Bayes-en teorema erabiltzen dute mezu elektronikoa spama den edo ez denaren probabilitatea kalkulatzeko.

## Historia 
Bayesiar algoritmoak erabiltzeagatik ezaguna den lehen programa Jason Rennieren iFile izan zen, 1996an kaleratu zena. Programa korreoa karpetetan ordenatzeko erabili zen. Hala ere, Bayesiar iragazkiak ez ziren ezagunak izan 1998ra arte, spam-iragazki Bayesiarren lehen argitalpen akademikoa Sahami et al.egileena izan zen urte horretan. Lan hori geroago spam iragazki komertzialetara hedatu zen. Hala eta guztiz ere, 2002. urtean, Paul Graham-ek positibo faltsuen tasa neurri handian gutxitu zuen, spam-iragazki bakar gisa erabili ahal izateko moduan. 

Oinarrizko teknikaren aldaerak hainbat ikerketa-lanetan eta software komertzialeko produktuetan inplementatu dira gero. SpamBayes ,  Bogofilter eta ASSP , spam iragazketa Bayesiarrak erabiltzen dituzte eta funtzionalitate batzuetan posta zerbitzariaren softwarearen barruan egoten da. CRM114, askotan Bayesiar iragazkitzat hartzen dena, ez zen sortu Bayes iragazki moduan erabiltzeko asmoarekin, baina "unigram" ezaugarria barneratzen du erreferentzia gisa.

## Prozesua 
Hitz partikularrak agerpen probabilitate desberdinak eduki ditzakete spam-mezuetan eta benetako mezuetan. Esate baterako, posta-erabiltzaile gehienek "Viagra" hitza spam mezuetan maiz aurkituko dute, baina beste mezu elektroniko batzuetan gutxitan topatuko dute. Iragazkiak probabilitate hauek ez ditu aldez aurretik ezagutzen eta lehendabizi entrenatu egin behar da berak ikas dezan ea hitza spam izan daitekeen edo ez. Iragazkia entrenatu ahal izateko, erabiltzaileak berak adierazi behar du mezu bat spam den edo ez. Iristen diren mezu berrien hitzak iragazkiaren datu basean gordeko dira, hitzarekin batera probabilitate bat gordeko da eta horren balioa automatikoki doitzen joango da hitza mezuetako testuetan agertzen den heinean. Adibidez, spam iragazki bayesiar batek normalean spam probabilitate altu bat ikasiko dute "Viagra", "hongos", "oferta" edo "refinance" hitzetarako, baina oso probabilitate txikia izango du bakarrik mezu pertsonaletan agertzen diren hitzetarako, esaterako lagunen izenentzat edota familiako kideentzat.

Iragazkia entrenatu ondoren, hitzen probabilitateak (probabilitate-funtzioak bezala ere ezagutuak) erabili egiten dira hitz multzo zehatz bat duen mezu bati dagokion kategoria kalkulatzeko. Posta elektronikoan agertzen den hitz bakoitza parte hartzen du mezu bat spam izateko probabilitatean, edo bakarrik hitz interesgarrienak. Ekarpen horri ondorengo probabilitatea deritzo eta Bayesen teorema erabilita kalkulatzen da. Orduan, spam izateko probabilitatea mezuko hitz guztien gainean kalkulatzen da eta totalak markatutako zifra bat gainditzen badu, adibidez % 95, iragazkiak mezu elektronikoa spam bezala markatuko du.

Spama iragazteko beste edozein teknikarekin bezala, spam gisa markatutako mezuak automatikoki zakarrontzira mugitu edo zuzenean ezabatu daitezke. Software batzuek koarentena mekanismo bat inplementatzen dute denbora bat definitzeko, denbora honetan erabiltzaileak softwarearen erabakia berrikusteko aukera izango du.

Hasierako entrenamendua orokorrean findu daiteke softwarearen erabaki okerrak identifikatzen direnean (positibo faltsuak edo negatibo faltsuak). Horrek ahalbidetzen du softwareak modu dinamikoan spamaren izaerari etengabean moldatzea.

Spam-iragazki batzuk konbinatu egiten dituzte Bayesiar iragazkiaren emaitzak beste heuristiko batzuekin (edukiei buruzko aurredefinitutako arauak, bilaketa espezifikoa mezuaren barruan eta abar), horrela, iragazte-zehaztasun handiagoa lortzen da, baina batzuetan beste alor batzuetara egokitzeko gaitasuna galtzen da.

## Oinarri matematikoa 
Bayesiar posta-iragazkiek Bayesen teorema erabiltzen dute. Bayes-en teorema hainbat aldiz erabiltzen da spam-aren testuinguruan:

* lehen aldiz, mezua spam izateko probabilitatea kalkulatzeko, jakinda emandako hitz bat mezuan agertzen dela;
* bigarren aldiz, mezua spam izateko probabilitatea kalkulatu ahal izateko, bere hitz guztiak kontuan hartuta (edo horien azpimultzo garrantzitsu bat);
* batzuetan hirugarren aldiz, hitz arraroei aurre egiteko.

### Hitz jakin bat duten mezuak spam izateko probabilitatea kalkulatzea 
Suposatu dezagun mezu susmagarriak "erreplika" hitza duela bere edukiaren barruan. Posta elektronikoak jasotzera ohituta dauden pertsona gehienek badakite mezu hau spam mezu bat izan daitekela, erloju marka ospetsu baten kopia faltsu bat saltzeko proposamen bat hain zuzen ere. Spamak detektatzeko softwareak, ordea, ez ditu ezagutzen gertakari horiek; egin dezaken guztia konputazio probabilitateak dira.

Softwareak erabiltzen duen Bayes-en teorema zehazten duen formula hau da:

:\Pr(S|W) = \frac{\Pr(W|S) \cdot \Pr(S)}{\Pr(W|S) \cdot \Pr(S) + \Pr(W|H) \cdot \Pr(H)}

non:

* \Pr(S|W) mezu bat spam bat izateko duen probabilitatea da, "erreplika" hitza bertan dagoela jakinda;
* \Pr(S)mezu bat spam izateko duen probabilitate orokorra;
* \Pr(W|S) "erreplika" hitza spam mezu batean agertzeko probabilitatea da;
* \Pr(H)Edozein mezu spam ez izateko duen probabilitatea da ("ham" da, ham mezu bat oro har, "nahi" den posta elektronikoa, momenturen batean, bertara harpidetuz edo zerbait deskargatzerakoan jasotzen hasten zaren mezuak dira eta ez dira spam kontsideratzen hasieran erabiltzaileak hau jasotzeko baimena ematen duelako).
* \Pr(W|H) "erreplika" hitzak "ham" mezu batean agertzeko duen probabilitatea da.

### Hitz bat spam izateko joera 
Estatistikek  erakusten dutenez, mezu elektroniko bat spama izateko egungo probabilitatea% 80 da gutxienez:

: \Pr(S) = 0.8 ;  \Pr(H) = 0.2

Hala eta guztiz ere, bayesiar spam detektatzaile software gehienek, suposatzen dute ez dagoela *a priori* arrazoirik sarrerako mezuak spam izateko, "ham" mezu bat izan ordez, eta bi kasuetarako %50eko probabilitate berdina ezartzen dute:

: \Pr(S) = 0.5 ;  \Pr(H) = 0.5

Hipotesi hau erabiltzen duten iragazkiak "ez partzialak" bezala ezagutzen dira, sarrerako mezu elektronikoei buruzko aurreiritzirik ez dute. Suposizio honek formula orokorra sinplifikatzeko aukera ematen du:

:\Pr(S|W) = \frac{\Pr(W|S)}{\Pr(W|S) + \Pr(W|H)}

Hau funtzionalki "zenbateko portzentaia dauka "erreplika" hitzak spam mezu batean agertzeko?" galdetzearen baliokidea da.Kantitate honi "erreplika" hitzaren "spamcity" (edo "spaminess") deritzo eta kalkulatzeko aukera dago. Formula honetan erabilitako zenbakiaren balioa \Pr(W|S)hurbildua da ikaskuntza fasean "erreplika" hitza duten mezuen spam bezala identifikatuta dauden mezuen maiztasunarekin. Era berean, \Pr(W|H)balioa "erreplika" hitza duen mezu batek ham mezua izateko maiztasunari hurbiltzen da ikasketa fasean. Hurbilketa horiei zentzua emateko ikasi diren mezuen multzoa handia eta adierazgarria izan behar da. Halaber, komenigarria da ikasketa mezuen multzoa %50ean orekatuta egotea, bai spam diren mezuekin bai ham konsideratzen diren mezuekin, hau da, spam mezuen eta spam ez diren mezuen datu multzoek tamaina bera edukitzea Jakina, mezua spama edo ham den zehaztea soilik "erreplika" hitzaren presentziarekin oinarrituta erroretarako joera dauka, beraz, spam bayesiar softwareak hainbat hitz kontuan hartzen saiatzen da eta haien spamcity-ak konbinatzen ditu, determinatzeko mezu bat spam izateko probabilitate globala. 
### Banakako probabilitateen konbinaketa 
Bayesiar spam iragazkien algoritmo gehienak hertsiki baliozkoak (ikuspuntu probabilistikotik) diren formuletan oinarritzen dira soilik mezuan agertzen diren hitzak gertakari independenteak badira. Baldintza hau ez da orokorrean betetzen (adibidez, ingelesa bezalako hizkuntza naturaletan, adjetibo bat aurkitzeko probabilitatea baldintzatuta dago izen bat edukitzearen probabilitatearekin), baina idealizazio erabilgarria da, batez ere, hitz banakoen arteko korrelazio estatistikoak normalean ez direlako ezagunak izaten. Oinarri honetan, Bayes-en teorematik abiatuz honako formula hau lor daiteke:

:p = \frac{p_1 p_2 \cdots p_N}{p_1 p_2 \cdots p_N + (1 - p_1)(1 - p_2) \cdots (1 - p_N)}

non:

* p mezu susmagarria spam izateko probabilitatea;
* p_1, p(S|W_1) probabilitatea da, lehen hitz bat duen spam bat jakitea da (adibidez "erreplika");
* p_2, p(S|W_2) probabilitatea da, bigarren hitz bat duen spam bat jakitea da (adibidez "erlojuak");
* etc. . .
* p_N, p(S|W_N)probabilitatea da. n-garren hitz bat duen spam bat jakitea da (adibidez "etxea").

Paul Grahamek 2002an bere artikulu batean formula hau erreferentziatu zuen. Lehen iruzkin batzuk esaten zuten Grahamek bere formulak ezerezetik atera zituela  baina Grahamek horrezkero aipatu zuen bere jatorria,  formula horren azalpen zehatz bat eta oinarri bezala hartutako idealizazioak barneratzen zituena.

Formula honetan oinarritzen diren spama iragazteko softwareak batzuetan ezagunak dira Naive Bayes sailkatzaileak bezala. *p* -ren emaitza normalean alderatu egiten da muga bezala zehaztutako zenbaki batekin erabakitzeko mezua spam den edo ez. *P* muga hori baino baxuagoa bada, mezua spam ez bezala kontsideratu daiteke, aldiz, *P* muga baino handiagoa bada, spam posible bezala joko dugu mezua.

### Formularen beste adierazpen bat probabilitate indibidualak konbinatzeko 
Orokorrean *p* ez da aurreko formularen bitartez zuzenean kalkulatzen floating-point underflow-arengatik. Horren ordez, *p* kalkulatua izan daiteke logaritmoen domeinuan ekuazio originala modu honetan berridatziz:

: \frac{1}{p} - 1 = \frac{(1-p_1)(1-p_2)\dots(1-p_N)}{p_1 p_2 \dots p_N} 

Logaritmoak bi aldeetan hartuta:

:  \ln \left ( \frac{1}{p} - 1  \right ) = \sum_{i=1}^N \left[ \ln(1-p_i) - \ln p_i \right]

Utzi \eta = \sum_{i=1}^N \left[ \ln(1-p_i) -\ln p_i \right] Hori dela eta, 

: \frac{1}{p} - 1 = e^\eta 

Hortik, probabilitate konbinatua kalkulatzeko formula alternatiboa:

: p = \frac{1}{1 + e^\eta} 

### Hitz arraroentzako tratamendua 
Ikaskuntza fasean inoiz ezagutu ez den hitzik agertzen den kasuetan, zenbakitzailea eta izendatzailea zero dira, bai formula orokorrean eta bai spamcity formulan. Softwareari ezagutzen ez dituen hitzak iristen bazaizkio erabaki dezake hitz horiek deskartatu edo ez.

Oro har, ikaskuntza fasean gutxi agertzen diren hitzek arazoak eragin ditzakete, errore bat izango litzatekelako guztiz fidatzea emandako hauetaz jasotako informazioaz. Irtenbide sinple bat fidagarriak ez diren hitzak kontuan ez hartzea izango litzateke.

Berriz Bayes-en teorema aplikatuz, eta suposatuz hitz zehatz bat ("erreplika") duten spam edo ez spam posta elektronikoen arteko sailkapena ausazko aldagai bat beta banaketarekin dela, zenbait programek zuzendutako probabilitate bat erabiltzen dute:

:\Pr'(S|W) = \frac{s \cdot \Pr(S) + n \cdot \Pr(S|W)}{s + n }

non:

* \Pr'(S|W)Mezua spam izateko probabilitate zuzendua da; hitz jakin bat daukala jakinda;
* s sarrerako spam mezuaren informazio ez esanguratsuari ematen diogun *indarra da*;
* \Pr(S) edozein sarrerako mezu bat spam izateko probabilitatea da;
* n Hitz honen ikaskuntza fasean zehar izan dituen agerraldi kopurua;
* \Pr(S|W) Hitz honen spamcitya da.

(Manifestazioa:  )

Probabilitate zuzendu hau konbinazio formulan spamcity-aren ordez erabiltzen da.

\Pr(S)berriz 0,5 bezala har daiteke sarrerako korreoarekin susmo txarrak izatea sahiesteko. 3 *s*-rentzat balio ona da, honek esan nahi du ikasitako corpusak gutxienez 3 mezu izan behar dituela hitz horrekin, modu honetan spamcity balioa fidagarriagoa izango da, lehenetsitako balioarekin baino.Formula hau hedatu daiteke, non *n* zero den kasuan (eta non spamicity balioa ez den definitzen) , eta ebaluatzen du kasu honetan Pr(S)-rentzat. 
### Beste heuristiko bat 
Alde batera utz daitezke "eta", "batzuk", edo "da" bezalako hitz neutroak, edo beste hizkuntza batzuetako hitz baliokideak. Oro har, bayesiar iragazki batzuk spamtasun-balioa 0,5tik gertu duten hitzak baztertzen dituzte, gutxi laguntzen baitute erabaki on bat hartzeko. Kontuan hartzen diren hitzak spamtasun-balioa 0.0 baliotik gertu dutenak dira (mezu pertsonaletan agertzen ohi diren hitzak), edo 1.00 baliotik gertu (spam mezu batek izan ohi dituen hitzak). Metodo bat izan daiteke, esate baterako, aztertu beharreko mezuan, |0.5 - *pI*| formulako balio absolutu handiena duten hamar hitzak mantentzea.

Zenbait software-produktuk kontuan hartzen dute ea hitz jakin bat aztertutako mezuan hainbat aldiz agertzen den, baina beste batzuek ez.

Software produktu batzuek zenbait *patroi* erabiltzen dituzte (hitz sekuentzia bat), hitz soilen ordez. Adibidez, hiru hitzetako "testuinguru-leiho" batekin "Viagra ona da" hitz sekuentziaren spamtasuna kalkulatzen dute, "Viagra", "ona" eta "da" hitzen spamtasuna banaka kalkulatu ordez. Metodo horrek sentiberagoa da testuinguruarekin eta Bayesiar zarata hobe kentzen du, hori guztia datu-basearen tamaina handiago bat kudeatu beharraren truke lortzen da.

### Metodo mistoak 
Badaude beste era batzuk hitz desberdinentzat banakako probabilitateak konbinatzeko, planteamendu "naive" bat erabili ordez. Metodo hauek sarrerako datuen propietate estatistikoetaz egiten dituzten hipotesietan desberdinak dira. Hipotesi desberdin horien arabera formula guztiz desberdinak lortzen dira banakako probabilitateak konbinatzeko.

Adibidez, banakako probabilitateak khi-karratuen banaketa jarraitzen dutela kontuan hartuz, 2 *N* askatasun-mailekin, formula hau erabil daiteke:

:p = C^{-1}(-2 \ln(p_1 p_2 \cdots p_N), 2N) \, 

non *C* -1 chi-karratu funtzioaren alderantzizkoa den .

Probabilitate indibidualak diskriminazio Markoviarrezko teknikekin ere konbinatu daitezke.

## Eztabaida 
### Abantailak 
Bayesiar spam iragazkien abantaila nagusietako bat erabiltzaile batean oinarriturik entrenatu daitekela da.

Erabiltzaile batek jasotzen duen spama sarritan erlazionatuta dago berak nabigatzean egindako jarduerekin. Adibidez, erabiltzaile bat harpidetu egin ahal izan da berak spama kontsideratzen duen interneteko buletin batera. Interneteko albiste buletin hau posible da albiste buletin guztietan agertzen diren amankomunak diren hitzak aurkitzea, esaterako albiste buletinaren izena eta bere iturria den posta elektroniko helbidea. Bayesiar spam iragazki batek azkenean probabilitate handiago bat esleitzen du erabiltzailearen patroi zehatzetan oinarrituta dagoena.

Erabiltzaile batek jasotzen dituen posta pertsonalak desberdinak izateko joera dute. Adibidez, ingurune korporatibo batean, sarritan aipatzen da enpresaren izena eta bezeroaren edo bezeroen izenak. Iragazkiak probabilitate txikiagoa esleituko dio izen horiek dauzkaten spam posta elektronikoei.

Hitzen probabilitatea desberdina da erabiltzaile bakoitzarentzat eta bilakatzen joan daitezke denbora pasatzen den heinean, ikaskuntza zuzengarriaren bitartez iragazkiak posta elektroniko bat oker sailkatzen duenean.

Emaitza bezala, bayesiar spam iragazki baten zehaztasuna sarritan hobea da entrenatu ondoren aurre definitutako erregelekin baino.

Ondo espezializatu daiteke zabor-detekzio faltsuak saihesteko, non posta elektroniko pertsonala spam bezala oker sailkatzen den. Adibidez, mezu elektronikoak "Nigeria" hitza badu, "Nigeriar iruzurrean" maiz erabiltzen dena, aurretik zehaztutako arauak erabiltzen duen iragazki batek zuzenean baztertu dezake. Bayesiar iragazki batek "Nigeria" hitza nahigabeko hitz posible bezala markatuko luke, baina beste hitz garrantzitsu batzuk ere kontuan hartuko lituzke, orokorrean mezu elektroniko pertsonalena. Adibidez, ezkontide baten izenak biziki adierazten du mezua ez dela spam, beraz garrantzi handiagoa emango dio hitz honi "Nigeria" hitzari baino.

### Desabantailak 
Aplikazioaren arabera, bayesiar iragazkiak, bayesiar intoxikazioak jasan ditzakete, spammerrak erabiltzen duten teknika bat da, iragazkien eraginkortasuna degradatzeko asmotan bayesiar iragazkiak erabiltzen duten spam iragazkientzat. Bayesiar intoxikazioak praktikatzen dituen spammer batek mezu elektronikoak bidaliko ditu testu pertsonal asko izango dituztena (albiste pertsonaletatik lortuak edo iturri literarioak.

Spammer taktika bat spam mezuetan aleatorioki kaltegarriak ez diren hitzak txertatzea da, normalean spamarekin lotzen ez direnak, modu honetan posta elektronikoaren spam puntuazioa jeitsi egiten da, orduan, Bayesiar spam iragazki horretatik igarotzea errezagoa izango da. Hala eta guztiz ere, adibidez, Paul Graham-en eskeman probabilitate esanguratsuenak baino ez dira erabiltzen, beraz, testua betetzea spamarekin ez erlazionatutako hitzekin ez du eraginik izango antzemateko probabilitatean era nabarmenean.

Spam mezuetan normalean kantitate handietan agertzen diren hitzak baita eraldatu egin daitezke spammerren bitartez.

Adibidez, «Viagra» hitza «Viaagra» edo «V! Agra» hitzen ordez ordezkatu daitezke spam mezuaren barruan. Mezuaren hartzaileak oraindik aldatutako hitzak irakur ditzake, hitz hauek arraroa da lehenagotik bayesiar iragazkitik igarotzea, beraz hauen ikaskuntza zaila da. Oro har, spam teknika honek ez du oso ondo funtzionatzen, eratorritako hitz hauek azkenean ezagunak egiten direlako iragazkiarentzat hitz normalak bezala. 

Bayesiar iragazkiak garaitzeko erabilitako beste teknika bat testua irudiekin ordezkatzea da, bai mezuan bertan txertatuz edo esteka baten bitartez. Mezuaren testu guztia, edo haren parte bat, testua marrazten den kuadrotxo batengatik ordezkatu egiten da. Spama bilatzen duen posta iragazkiak ez da gai izaten kuadro hau analizatzeko, honek "Viagra" bezalako hitz sentikorrak eduki ditzake. Hala ere, posta-bezero askok segurtasun arrazoiengatik estekatutako irudien bistaratzea desaktibatzen dutenez, spammerrak urrutiko irudiei estekak bidaltzen dizkiei, helburu gutxiagori heldu daitezkenak. Gainera, irudiaren byte tamaina testu baliokidearen tamaina baino handiagoa da, beraz, spammerrek banda zabalera gehiago behar dute mezuetan irudiak zuzenean bidaltzeko. Zenbait iragazkik mezu bat spam dela erabakitzeko joera izaten dute haren eduki gehiena grafikoak badira. Google -k Gmail-eko OCR (Optical Character Recognition) bat posta elektroniko sistemarako erabiltzen duen konponbidea da tamaina handia duen irudi bakoitzatentzat, bere barruko testua aztertuz.  

## Bayesiar iragazkien aplikazio orokorrak 
Nahiz eta Bayesiar iragazkiak spamak identifikatzeko asko erabiltzen diren, teknika honek ia beste edozein datu mota ere sailkatu (edo "kluster") dezake. Zientzian, medikuntzan eta ingeniaritzan erabilia da. Adibidez, helburu orokorrekoa den AutoClass izeneko programa sailkatzailea, hasieran izarrak sailkatzeko erabiltzen zen, izarren izaera espektralaren arabera.

## Erreferentziak 
## Ikus, gainera 
* Anti-spam teknikak
* Bayesiako intoxikazioak
* Posta elektronikoen iragazketa
* Markoviar diskriminazioa
* Mozilla Thunderbird posta bezeroa Bayes iragazkien jatorrizko berrerabilpenarekin  

## Kanpo estekak