计算高维函数轮廓的算法

时间:2017-06-02 23:59:31

标签: algorithm

我把它发布在另一个堆栈交换的东西上,但实际上认为这可能是一个更相关的位置......

我想有效地估计曲线C(F_bar),使得F(x,y,z,w,...)= F_bar = const,其中F(。)是许多输入的函数。

有谁知道这样的算法?

1 个答案:

答案 0 :(得分:0)

我不确定曲线 - 或其他任何东西 - 在大量维度上会非常有用。曲线是1维的,并且与N维中的轮廓的明显类比是表面,其在N维中将是N-1维对象。此外,随着维度变得越来越大,事情变得复杂和令人惊讶。例如,参见https://stats.stackexchange.com/questions/99171/why-is-euclidean-distance-not-a-good-metric-in-high-dimensions中的答案和参考资料。

有了这个警告,我想到了两个想法:

1)修复f(x,y,w,z ......)中除了两个变量之外的所有变量。这样你只剩下两个变量,所以你有两个变量的函数,你可以为它做一个完美的普通等值线图。

2)在大量随机选择的点处找到f(x,y,w,z ...)的值。运气好的话有些会超过F_bar而有些会低于它。假设你的函数是连续的,如果你选择一个值高于F_bar的点和一个值低于F_bar的点,那么它们之间的某个位置就有一个点,其中f()等于F_bar。如果您选择三个点,其中一个位于F_bar的一侧而另外两个位于F_bar的另一侧,则这三个点描述一个平面,并且有一个轮廓贯穿该平面,其中f()相等到F_bar。