Amy 原创整理|资料核验:2026-11-06
SciPy文档把entropy的两种调用分得很清楚:只给pk时计算香农熵;再给qk时计算相对熵,也就是KL散度。交叉熵是相关但不同的量,文档给出的关系是CE(pk,qk)=H(pk)+D(pk|qk),不能把双输入调用的返回值直接当成交叉熵。
Amy原创教学示例:四个类别都以1/4的概率出现,并令预测分布也完全相同。在base=2时,两分布的KL散度是0,但真实分布的熵是2 bits,交叉熵也是2 bits。“分布完全一致”并不意味着交叉熵必定为0。这里是数学示例,不是真实模型评测。
还有两个容易影响报表的参数:函数在输入和不为1时会进行归一化;对数底数默认是自然常数e,单位为nats,设为2才是bits。因此比较不同报表前,要核对调用参数、归一化口径和单位。
Amy建议:在结果旁保存pk、qk各代表什么、类别顺序及base设置,再写指标名称。本文解释当日官方API文档,不是新版本发布消息,也不把这个函数等同于所有机器学习框架中的损失函数。
官方来源:
https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.entropy.html