减少(方差)| 我的体重之间的差距

数据挖掘 采样 方差 加权数据
2022-02-20 02:05:47

我有 ML 准备好的样本。每个样本都有一个重量。

权重分布在[0-1]

我的问题出现了,因为有很多样本是0.001, 0.00x 很多样本是0.997, 0.99x

我将根据这些权重对数据进行抽样。0.99x 的样本会掩盖数据集中的其他样本,而 0.00x 的样本将具有 0 显着性。

我正在寻找的解决方案是对那些权重的某种功能,可以稍微平衡它们/减少那些巨大的差距(因此减少方差)并且仍然保持它们的顺序

So if 0.997 turned into 0.88, 0.996 will turn into something < 0.88

例如:

[0.01, 0.1, 0.4, 0.6, 0.8, 0.997]

我想要类似的东西:

[0.15, 0.2, 0.42, 0.6, 0.78, 0.9](只是一个例子)

1个回答

试试 softmax 函数:

weights = [0.01, 0.1, 0.4, 0.6, 0.8, 0.997]

temperature = 1
weights = np.array(weights) / temperature
new_weights = np.exp(weights) / np.exp(weights).sum() # softmax function

您可以调整温度超参数。值越高 - “new_weights”越接近 - 但仍保留顺序