逻辑回归之概率相关知识回顾
1 课程概览
本课回顾逻辑回归相关的概率知识,包括概率、联合概率、条件概率的概念和计算,以及极大似然估计的核心思想。通过堵车概率和盒子摸球的例子,讲解如何通过样本估计总体参数。
2 核心概念与定义
- 概率:事件发生的可能性。
- 联合概率:多个随机变量同时发生的概率(P(A,B) = P(A) × P(B))。
- 条件概率:在一个事件已发生的情况下,另一个事件发生的概率(P(B|A))。
- 极大似然估计:根据观测到的结果(样本)估计模型中未知参数的方法。
3 算法与模型详解
3.1 概率示例
北京堵车概率:
| 时间 | 堵车概率 |
|---|---|
| 早上 | 0.7 |
| 中午 | 0.3 |
| 晚上 | 0.4 |
3.2 联合概率
定义:两个或多个随机变量同时发生的概率
特点:
- 多个变量之间没有依赖关系
- 并列关系
- 概率相乘
示例:周一和周二早上都堵车的概率 $$P(\text{周一堵, 周二堵}) = 0.7 \times 0.7 = 0.49$$
说明:周一早上堵车对周二早上堵车没有影响
3.3 条件概率
定义:在一个事件已发生的情况下,另一个事件发生的概率
表示:P(B|A) - 在A发生的情况下发生B的概率
特点:
- 存在依赖关系
- 概率相乘
示例:周一早上堵车的情况下,周五堵车的概率 $$P(\text{周五堵}|\text{周一堵}) = 0.3 \times 0.7 = 0.21$$
3.4 联合概率 vs 条件概率
| 对比 | 联合概率 | 条件概率 |
|---|---|---|
| 定义 | 同时发生 | 条件下发生 |
| 关系 | 并列 | 依赖 |
| 表示 | P(A,B) | P(B|A) |
| 计算 | P(A) × P(B) | P(A) × P(B|A) |
3.5 条件概率的表示
P(B|A):在A发生的情况下发生B的概率
记忆方法:哪一个离你最近,就是发生的那一个
示例:
- P(B|A):A离B近,在A发生的情况下发生B
- P(A|B):B离A近,在B发生的情况下发生A
3.6 极大似然估计
定义:根据观测到的结果(样本)估计模型中未知参数的方法
核心思想:基于抽取样本的概率,预测总体数据的概率
示例1:班级男女比例
- 100人,不知道男女比例
- 抽10个样本:
- 全是男 → 预测全班都是男生
- 8男2女 → 预测80男20女
示例2:盒子摸球
- 盒子有100个球(红色和蓝色)
- 看不见,只能摸
- 通过摸球样本估计红蓝比例
特点:
- 不一定精准
- 无限接近正常值
4 数学原理与推导
4.1 联合概率
$$P(A, B) = P(A) \times P(B)$$
条件:A和B独立
4.2 条件概率
$$P(B|A) = \frac{P(A, B)}{P(A)}$$
$$P(A, B) = P(A) \times P(B|A)$$
4.3 极大似然估计
$$\hat{\theta} = \arg\max_{\theta} L(\theta|X)$$
其中 $L(\theta|X)$ 是似然函数:
$$L(\theta|X) = \prod_{i=1}^{n} P(X_i|\theta)$$
5 代码示例
import numpy as np
# 1. 联合概率示例
# 北京堵车概率
p_morning = 0.7 # 早上堵车概率
p_tuesday = 0.7 # 周二早上堵车概率
# 联合概率:周一和周二早上都堵车
p_joint = p_morning * p_tuesday
print(f"周一周二早上都堵车的概率: {p_joint}")
# 2. 条件概率示例
p_monday = 0.7 # 周一堵车概率
p_friday_given_monday = 0.3 # 周一堵车情况下周五堵车概率
# 条件概率
p_conditional = p_monday * p_friday_given_monday
print(f"周一堵车情况下周五堵车的概率: {p_conditional}")
# 3. 极大似然估计示例
# 模拟盒子摸球
np.random.seed(42)
# 假设盒子有100个球,70红30蓝
true_red_ratio = 0.7
box = np.random.choice(['红', '蓝'], size=100, p=[true_red_ratio, 1-true_red_ratio])
# 摸10个样本
samples = np.random.choice(box, size=10, replace=False)
red_count = np.sum(samples == '红')
blue_count = np.sum(samples == '蓝')
print(f"\n摸球结果: 红{red_count}个, 蓝{blue_count}个")
print(f"估计红球比例: {red_count/10}")
print(f"真实红球比例: {true_red_ratio}")
# 4. 多次抽样估计
estimates = []
for _ in range(1000):
samples = np.random.choice(box, size=10, replace=False)
red_count = np.sum(samples == '红')
estimates.append(red_count / 10)
print(f"\n1000次抽样估计的平均值: {np.mean(estimates):.3f}")
print(f"真实值: {true_red_ratio}")
输出示例:
周一周二早上都堵车的概率: 0.48999999999999994
周一堵车情况下周五堵车的概率: 0.21
摸球结果: 红7个, 蓝3个
估计红球比例: 0.7
真实红球比例: 0.7
1000次抽样估计的平均值: 0.701
真实值: 0.7
6 重难点与易错提醒
- ❗重点:联合概率是多个独立事件同时发生的概率。
- ❗重点:条件概率是一个事件在另一事件发生条件下的概率。
- ❗重点:极大似然估计是根据样本估计总体参数。
- ❗重点:联合概率和条件概率都是概率相乘。
- ⚠️易错:混淆联合概率和条件概率。
- ⚠️易错:P(B|A)的表示方向。
- 💡深入理解:极大似然估计是逻辑回归参数估计的基础。
7 课堂问答精选
Q: 联合概率和条件概率有什么区别?
A:
- 联合概率:多个随机变量同时发生的概率,变量之间独立,P(A,B) = P(A) × P(B)。
- 条件概率:在一个事件已发生的情况下,另一个事件发生的概率,存在依赖关系,P(B|A) = P(A,B) / P(A)。 两者都是概率相乘,但含义不同。
Q: 什么是极大似然估计?
A: 极大似然估计是根据观测到的结果(样本)估计模型中未知参数的方法。例如,不知道班级男女比例,通过抽样(如抽10个人,8男2女)估计全班比例为80男20女。虽然不一定精准,但无限接近正常值。
8 本课小结
- 概率:事件发生的可能性。
- 联合概率:多个独立事件同时发生,P(A,B) = P(A) × P(B)。
- 条件概率:条件下发生,P(B|A) = P(A,B) / P(A)。
- 极大似然估计:根据样本估计总体参数。
- 应用:逻辑回归参数估计的基础。
9 延伸思考与实践
- 实践:用Python模拟极大似然估计。
- 预习:逻辑回归原理。
- 思考:极大似然估计在逻辑回归中的作用?