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
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Calculate and print the unconditional probability of spam
p_spam = ____[____].____
print(____)