在数据分析和机器学习中,KL散度(Kullback-Leibler Divergence)是一种衡量两个概率分布之间差异的方法,常用于比较预测分布与真实分布之间的距离。虽然它不是对称的,但它仍然是一个非常有用的工具。今天就来聊聊如何用Python 3轻松实现KL散度的计算!🌟
首先,你需要准备两个概率分布列表或数组。假设我们有两个离散分布P和Q,可以通过以下代码计算KL散度:
```python
import numpy as np
def kl_divergence(p, q):
return np.sum(np.where(p != 0, p np.log(p / q), 0))
示例分布
p = np.array([0.4, 0.6])
q = np.array([0.5, 0.5])
kl_distance = kl_divergence(p, q)
print(f"KL散度为: {kl_distance}")
```
这段代码定义了一个函数`kl_divergence`,它接受两个参数`p`和`q`,分别代表两个概率分布,并返回它们之间的KL散度值。使用NumPy可以高效地处理大规模数据集。
记住,KL散度值越小,表示两个分布越接近哦!📊📈
python 机器学习 数据分析 KL散度