我应该如何对这些元素进行分组,以使总体差异最小化?

2024-03-28 19:17:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一组元素,例如

x= [250,255,273,180,400,309,257,368,349,248,401,178,149,189,46,277,293,149,298,223]

我想把它们分成n组A,B,C。。。使所有组方差之和最小化。每个组不需要有相同数量的元素。你知道吗

我想在python或R优化方法


Tags: 方法元素数量方差
1条回答
网友
1楼 · 发布于 2024-03-28 19:17:06

我会将这些数字按递增顺序排序,然后使用动态规划来计算相邻元素组之间的边界。例如,如果唯一的限制是每个数字必须正好在一个组中,则从左到右进行操作。在每个阶段,对于i=1..n,计算出一组边界,该边界产生迄今为止为i组所看到的元素之间的最小方差。对于i=1,没有选择。对于i>;1,请考虑最后一组边界的每个可能位置,并查找先前计算的答案,以确定此边界之前的项目在i-1组中的最佳分配,并使用此处先前计算的数字计算出先前i-1组方差的贡献。你知道吗

(我没有做过代数,但我相信如果你有A组和B组,其中平均值(A)<;平均值(B),但A中有A元素,B中有B元素,这样A>;B,你可以通过在组之间交换来减少方差。因此,较低的方差必须来自按排序顺序写出元素时相邻的组)。你知道吗

相关问题 更多 >