Menu
CoddyTech

Probabilidade condicional

Parte da seção Estatística para ML do Journey de Machine Learning da Coddy. Lição 17 de 64.

Metade desses 10 e-mails é spam. Mas, depois que você sabe que um e-mail tem um link, só os que têm link importam:

10 e-mails representados como células em dois grupos. Um contorno destaca os 4 e-mails com um link, 3 deles spam; os 6 sem link incluem 2 spam

A proporção dentro desse grupo é a probabilidade condicional de spam dado um link, P(spam | link). Conte ambos e, em seguida, divida pela condição:

emails = pd.DataFrame({
    "link": ["yes", "no", "yes", "no", "no", "no", "yes", "no", "no", "yes"],
    "spam": ["yes", "no", "yes", "no", "no", "yes", "no", "no", "yes", "yes"],
})
spam = emails["spam"] == "yes"
link = emails["link"] == "yes"
print(spam.mean())
print((spam & link).sum() / link.sum())

Isso imprime:

0.5
0.75

A condição que você já conhece fica abaixo da linha: você divide por ela. Um filtro de spam funciona assim: a chance de ser spam, dados os termos de um e-mail.

challenge icon

Desafio

Médio

Um mercado registrou 50 dias em mornings.csv: o sky da manhã (clear, cloudy ou foggy) e rain, yes se choveu mais tarde. Qual céu é o melhor indicativo?

  1. Para cada céu em skies, imprima a chance de chuva dado esse céu.
  2. Imprima a chance de chuva em qualquer dia.
  3. Imprima o melhor indicativo: o céu com a maior chance.

Para um registro mais curto, com 2 casas decimais:

Rain after a clear morning: 0.25
Rain after a cloudy morning: 0.33
Rain after a foggy morning: 0.75
Rain on any day: 0.45
Best clue for rain: foggy

Experimente você mesmo

import pandas as pd

days = pd.read_csv("mornings.csv")
skies = ["clear", "cloudy", "foggy"]

# Escreva seu código abaixo
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Estatística para ML

Pratique por conta própria: Compilador de Python online