IniziaInizia gratis

Filtro antispam bayesiano

Ottimo lavoro con l’esercizio precedente! Ora affrontiamo il famoso teorema di Bayes e usiamolo per un compito semplice ma importante: rilevare lo spam.

Mentre scorri la posta in arrivo, hai notato che molte delle email su cui preferiresti non perdere tempo contengono frasi esclamative, come "BUY NOW!!!". Ti viene quindi in mente che la presenza di tre punti esclamativi consecutivi possa essere un buon predittore di spam! Hai quindi preparato un DataFrame chiamato emails con due variabili: spam, che indica se l’email è spam, e contains_3_exlc, che indica se contiene la stringa "!!!". L’anteprima dei dati è la seguente:

     spam    contains_3_excl
0    False             False
1    False             False
2    True              False
3    False             False
4    False             False

Il tuo compito è calcolare la probabilità che l’email sia spam dato che contiene tre punti esclamativi. Procediamo passo dopo passo! Ecco la formula di Bayes come riferimento:

$$P(A|B) = \frac{P(B|A) * P(A)}{P(B)}$$

Questo esercizio fa parte del corso

Analisi dei dati bayesiana in Python

Visualizza il corso

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# Calculate and print the unconditional probability of spam
p_spam = ____[____].____
print(____)
Modifica ed esegui il codice