假设我有一袋弹珠。每个大理石都有几个属性(颜色、直径、表面粗糙度、重量)。
我知道各种大理石属性和重量之间存在统计关系。我试图通过仅削减其他参数(例如,选择颜色和直径范围以达到预期结果)来优化权重分布(最大化/最小化均值或方差)。切割可以是单端的(例如,diameter > x
或diameter < y
; 不必在x
and之间y
,但这是一个奖励)。
我没有解析闭式方程。相反,我有大量离散样本。我可以为整个种群或基于预先指定的削减的子种群以数字方式计算权重分布。
数学上,权重分布可以认为是以下形式的联合 PDF:
在哪里是大理石的重量,和是其他属性。找使得以下矩和最小化(例如,最小化平均权重):
蛮力方法包括的值并计算感兴趣的矩和,直到最优值是成立。这种矩阵计算涉及重叠子问题。在二维或三个维度(2 或 3 个参数)中,避免重叠是直接的(例如,通过使用前缀和/加权和)。这种技术对于 N 维变得笨拙。
是否有众所周知的算法或一组算法可以实现这一点?
编辑:2020 年 8 月 26 日
函数 f 由在计算开始之前可用的固定数量的规定样本构成。为每个可用的参数(, ...)选择多个 bin 和/或 bin 大小。创建一个 ( ) 维矩阵(基于选定的 bin/大小),并且随着每个样本被处理以构建联合 PDF(归一化常数单独保留),计数会增加。f[w][x0]...[xn]
对于单端切割,可以计算从低或高索引开始到每个维度的最大索引的累积总和(甚至是加权累积总和)。例如,从低索引开始并以累积的方式向上工作,我们在每次迭代中固有地进行削减,我们只保留x_i
小于某个值的值(其中i
维度或参数从到)。i
0
n
对于两个参数(二维)f
变成一个矩阵。实现计算的最快方法是使用动态编程方法,其中x
保留一个单独的矩阵。对于 的每个元素x
,我们计算对应于 的相同索引的累积和f
。所以在二维中,计算变为x[i][j] = x[i-1][j] + x[i][j-1] - x[i-1][j-1] + f[i][j]
。随着迭代的进行, on 可以跟踪f
给定切割的总和的最大值或最小值(索引i
和j
)。反转索引的遍历顺序允许在另一个方向进行单端切割(“四个角”可以使用 2 个参数,切割低于或高于每个参数的特定值)。
我推导出了一个公式,将上述内容扩展到四个维度,现在涉及 16 个术语(不是一项微不足道的任务)。我正在寻找对 N 维的概括,或另一种方法。