如何在数据中找到拆分,以便每个拆分根据函数 f 具有相等的权重

数据挖掘 机器学习 数据挖掘 统计数据
2022-01-25 16:47:39

我有一个权重函数 f,它输出样本 s 的数字权重。我还有一组有序的样本 S,其中每个样本 s 在集合 S 中的权重变化很大。

如何创建 n 个拆分点,以便每个拆分的权重大致相同?我可以使用什么样的方法、算法或模型来实现这一目标?

1个回答

一个经典的优化问题!您可以使用线性规划/优化来找到一个好的分割。n 个样本s 中的每一个都具有权重f(s),我们希望将它们分成m个折叠。您可以使用技巧来线性化 L1 目标,也可以将二次规划用于 L2 目标函数。在这种情况下,二次规划模型更容易定义。让我们将定义为将样本i放入折叠j的二元决策,而是理想的每折叠平均重量。那么这是我们的目标函数:Sxijμ

最小j=1m(i=1nxijf(i)μ)2

在以下约束条件下:

j=1mxij=1 for all以确保每个样本准确分配一个i{1..n}

xij{0,1}将其转换为二元决策变量

根据您的数据集的大小和您使用的求解器,这可能是一个繁重的优化,但是有很多贪婪的启发式方法会让您很快关闭。