Skip to main content

Spam and Bayes' theorem

I divide my email into three categories: A1 = spam. A2 = low priority, A3 = high priority.

I find that: P(A1) = .7
P(A2) = .2
P(A3) = .1
Let B be the event that an email contains the word "free".
P(B|A1) = .9
P(B|A2) = .01
P(B|A3) = .01
I receive an email with the word "free". What is the probability that it is spam?

Comments

  1. 1. The law of total probability:
    P(B) = sum_{j=1}^{k} P(B|Aj) * P(Aj)
    with A1 -> Ak: a partition of the sample space omega

    2. Bayes' Theorem:
    P(Ai|B) = P(B|Ai) * A{Ai) / sum_{j} P(B|Aj) * P(Aj)

    Hence:
    P(A1|B) = P(A1B)/P(B) = P(B|A1) * P(A1) / sum_{j} P(B|Aj) * P(Aj)
    = 0.995

    ReplyDelete

Post a Comment

Popular posts from this blog

Pytorch and Keras cheat sheets

Sigmoid, tanh, ReLU functions. What are they and when to use which?

If you are working on Deep Learning or Machine Learning in general, you have heard of these three functions quite frequently. We know that they can all be used as activation functions in neural networks. But what are these functions and why do people use for example ReLU in this part, sigmoid in another part and so on? Here is a friendly introduction to these functions and a brief explanation of when to use which. Sigmoid function Output from 0 to 1 Exponential computation (hence, slow) Is usually used for binary classification (when output is 0 or 1) Almost never used (e.g., tanh is a better option) Tanh function A rescaled logistic sigmoid function (center at 0) Exponential computation Works better than sigmoid ReLU function (Rectified Linear Unit) and its variants Faster to compute Often used as default for activation function in hidden layers ReLU is a simple model which gives 0 value to all W*x + b < 0. The importance is that it introduces t...

Python Tkinter: Changing background images using key press

Let's write a simple Python application that changes its background image everytime you click on it. Here is a short code that helps you do that: import os, sys import Tkinter import Image, ImageTk def key(event): print "pressed", repr(event.char) event.widget.quit() root = Tkinter.Tk() root.bind_all(' ', key) root.geometry('+%d+%d' % (100,100)) dirlist = os.listdir('.') old_label_image = None for f in dirlist: try: image1 = Image.open(f) root.geometry('%dx%d' % (image1.size[0],image1.size[1])) tkpi = ImageTk.PhotoImage(image1) label_image = Tkinter.Label(root, image=tkpi) label_image.place(x=0,y=0,width=image1.size[0],height=image1.size[1]) root.title(f) if old_label_image is not None: old_label_image.destroy() old_label_image = label_image root.mainloop() # wait until user clicks the window except Exception, e: # Skip a...