Ham or Spam?

B-niveau
Kort

Forløbet kræver kendskab til:

Tidsforbrug: Ca. 2 x 90 minutter.

Formål

Formålet med dette forløb er at forstå, hvordan man kan lave et simpelt spamfilter ved hjælp af metoden, som kaldes for Naiv Bayes klassifier.

I dette forløb skal vi se på, hvordan man kan lave et simpelt spamfilter. Vi har et datasæt med \(35000\) mails, som fordeler sig mellem spam (det vil sige, at mailen ikke skal vises i mail-boxen) og ham (non-spam) på denne måde:

Antal
Spam \(11150\)
Ham \(23850\)
Samlet antal mails \(35000\)

Desuden har vi oplysninger om emailens oprindelse (Danmark, Europa uden Danmark, USA og anden oprindelse), afsenders mailadresse (firma, Google, Hotmail og anden) samt indhold (dating, spil og andet). Målet er, at man ud fra disse oplysninger gerne automatisk vil kunne afgøre, om det er spam, eller om det er ham.

Træningsdata består af

Oprindelse
DK Europa USA Andet
Spam \(20 \%\) \(30 \%\) \(35 \%\) \(55 \%\)
Ham \(80 \%\) \(70 \%\) \(65 \%\) \(45\%\)
Antal \(10000\) \(12000\) \(8000\) \(5000\)

og

Mail Indhold
Firma Google Hotmail Andet Dating Spil Andet
Spam \(10 \%\) \(20 \%\) \(60 \%\) \(80 \%\) \(80 \%\) \(90 \%\) \(12.5 \%\)
Ham \(90 \%\) \(80 \%\) \(40 \%\) \(20 \%\) \(20\%\) \(10\%\) \(87.5\%\)
Antal \(17000\) \(6450\) \(5400\) \(6150\) \(4325\) \(4975\) \(25700\)

Introduktion

Læs afsnittet Introduktion i noten om Naiv Bayes klassifier.

NoteOpgave 1
  • Hvis man blot modtager en mail fra en Hotmail-konto, vil man da tænke, at det er spam eller ham?

  • Hvis man blot modtager en tilfældig mail, vil man da tænke, at det er spam eller ham?

  • Forklar hvorfor det kan være svært at afgøre, om det er spam, hvis man modtager en mail fra Danmark, som er sendt fra en firma-mail, og hvor indhold er relateret til dating.

Notation

Læs afsnittet Notation i noten om Naiv Bayes klassifier.

NoteOpgave 2
  • Indfør selv stokastiske variable \(X_1\), \(X_2\), \(X_3\) og \(Y\) og angiv udfaldsrummet for hver af dem.

Binær Bayes klassifier

Læs afsnittet Binær Bayes klassifier i noten om Binær Bayes klassifier.

NoteOpgave 3
  • Opstil posterior forholdet

    \[ \frac{P(Y = \textrm{spam} \mid X_1=x_1, X_2=x_2, X_3=x_3)}{P(Y = \textrm{ham} \mid X_1=x_1, X_2=x_2, X_3=x_3)}\]

    og forklar det smarte, der er sket ved at bruge Bayes formel.

  • Redegør for betydningen af forholdet, og forklar hvorfor man ser på, om det er over eller under \(1\).

Naiv Bayes klassifier

Læs afsnittet Naiv Bayes klassifier i noten om Naiv Bayes klassifier.

NoteOpgave 4

Angiv den antagelse (modelforudsætning), som anvendes ved Naiv Bayes klassifikation, og forklar hvad det gør for beregningen af sandsynlighederne fra opgave 3.

NoteOpgave 5

Bestem prior forholdet

\[\frac{P(Y=\textrm{spam})}{P(Y=\textrm{ham})}\]

og beregn på den baggrund vægten

\[w_0 = \ln \left ( \frac{P(Y=\textrm{spam})}{P(Y=\textrm{ham})} \right )\]

NoteOpgave 6

Bestem alle betingede sandsynligheder

\[P(X_i=x_i \mid Y=\textrm{spam}) \quad \textrm{og} \quad P(X_i=x_i \mid Y=\textrm{ham})\]

for hver enkelt information givet, at det er henholdsvis spam og ham (i alt 22 sandsynligheder), og forklar idéen bag én af disse udregninger.

NoteOpgave 7

For hver af de 11 informationer bestemmes forholdet mellem sandsynlighederne

\[ \frac{P(X_i=x_i \mid Y=\textrm{spam})}{P(X_i=x_i \mid Y=\textrm{ham})}\]

NoteOpgave 8

Forklar, hvordan man kommer fra resultaterne i opgave 7 til vægte og udregn vægtene hørende til hver af informationerne (i alt 11).

NoteOpgave 9

Forklar, hvad der sker ved at benytte logaritmen på udtrykket fra opgave 3 og 4, hvor man ellers ganger faktorer sammen.

NoteOpgave 10

Afgør ud fra de vægte, som du har beregnet i opgave 8, hvilke informationer der taler for spam, og hvilke der taler for ham.

NoteOpgave 11

Afgør ved at beregne scoren \(S\), om man vil tænke, at en mail er ham eller spam i følgende to situationer:

  • Mailens oprindelse er andet, den er sendt fra en hotmail-konto og omhandler ikke dating eller spil.
  • Mailen er en firma-mail fra Danmark med indhold relateret til dating.

Delvis facitliste

Facitliste.