조건부 확률
Coddy Machine Learning 여정의 머신러닝을 위한 통계 섹션에 포함된 레슨. 64개 중 17번째.
이 이메일 10개 중 절반은 스팸입니다. 하지만 이메일에 링크가 있다는 것을 알게 되면, 링크가 있는 이메일만 중요합니다:
해당 그룹 내의 비율은 링크가 주어졌을 때 스팸일 조건부 확률, 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이미 알고 있는 조건은 선 아래에 옵니다. 그 조건으로 나눕니다. 스팸 필터는 이런 방식으로 작동합니다. 이메일에 포함된 단어가 주어졌을 때 스팸일 확률입니다.
챌린지
중급한 시장에서 mornings.csv에 50일간의 기록을 남겼습니다. 아침의 sky(clear, cloudy 또는 foggy)와 rain을 기록했으며, 나중에 비가 왔으면 yes입니다. 어떤 하늘이 비를 가장 잘 예측할까요?
skies의 각 하늘에 대해, 그 하늘일 때 비가 올 확률을 출력하세요.- 날짜와 관계없이 비가 올 확률을 출력하세요.
- 가장 좋은 단서를 출력하세요. 즉, 확률이 가장 높은 하늘입니다.
기록이 더 짧을 때의 결과입니다. 소수점 이하 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"]
# 아래에 코드를 작성하세요
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
머신러닝을 위한 통계의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러