gpt4 book ai didi

python - Pandas 中的标签平滑(软目标)

转载 作者:太空狗 更新时间:2023-10-30 02:09:03 25 4
gpt4 key购买 nike

在 Pandas 中有 get_dummies one-hot编码分类变量的方法。现在我想按照 Deep Learning 的第 7.5.1 节中的描述进行标签平滑处理。书:

Label smoothing regularizes a model based on a softmax with k output values by replacing the hard 0 and 1 classification targets with targets of eps / k and 1 - (k - 1) / k * eps, respectively.

在 Pandas 数据框中进行标签平滑处理的最有效和/或最优雅的方法是什么?

最佳答案

首先,让我们使用更简单的等式(ε 表示您从“真实标签”移动并分配给所有剩余标签的概率质量)。

1 -> 1 - ϵ
0 -> ϵ / (k-1)

你可以简单地使用上面的很好的数学属性,因为你所要做的就是

x -> x * (1 - ϵ) + (1-x) * ϵ / (k-1)

因此,如果您的虚拟列是a、b、c、d,就这样做

indices = ['a', 'b', 'c', 'd']
eps = 0.1
df[indices] = df[indices] * (1 - eps) + (1-df[indices]) * eps / (len(indices) - 1)

为了

>>> df
a b c d
0 1 0 0 0
1 0 1 0 0
2 0 0 0 1
3 1 0 0 0
4 0 1 0 0
5 0 0 1 0

返回

        a         b         c         d
0 0.900000 0.033333 0.033333 0.033333
1 0.033333 0.900000 0.033333 0.033333
2 0.033333 0.033333 0.033333 0.900000
3 0.900000 0.033333 0.033333 0.033333
4 0.033333 0.900000 0.033333 0.033333
5 0.033333 0.033333 0.900000 0.033333

正如预期的那样。

关于python - Pandas 中的标签平滑(软目标),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39335535/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com