Menu
CoddyTech

Условная вероятность

Часть раздела Статистика для машинного обучения путешествия по Machine Learning на Coddy. Урок 17 из 64.

Половина из этих 10 писем — спам. Но если вы знаете, что в письме есть ссылка, важны только письма со ссылкой:

10 писем в виде ячеек в двух группах. Рамка выделяет 4 письма со ссылкой, 3 из них — спам; среди 6 писем без ссылки 2 — спам

Доля внутри этой группы — это условная вероятность спама при наличии ссылки, P(spam | link). Подсчитайте оба значения, затем разделите на условие:

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())

Будет напечатано:

0.5
0.75

Условие, которое ты уже знаешь, указывается под чертой: на него делят. Так работает спам-фильтр: вероятность того, что письмо является спамом, при условии, что известны слова в письме.

challenge icon

Задание

Средне

На рынке в mornings.csv записали данные за 50 дней: утреннее sky (clear, cloudy или foggy) и rain — yes, если позже прошёл дождь. Какое небо лучше всего предсказывает дождь?

  1. Для каждого значения неба в skies выведите вероятность дождя при таком небе.
  2. Выведите вероятность дождя в любой день.
  3. Выведите лучшую подсказку: небо с самой высокой вероятностью.

Для более короткого журнала, округлите до 2 знаков после запятой:

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

Попробуйте сами

import pandas as pd

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

# Напишите свой код ниже
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Статистика для машинного обучения

Потренируйтесь самостоятельно: Онлайн-компилятор Python