用scipy模拟多变量凸包上的随机点



我有一个包含10000行和10列的数据。我研究的第一个目标是计算;凸包";基于此数据。包装";scipy";可以很容易地做到这一点,我可以得到顶点,不同超平面的参数,比如:b0+b1.x1+b2.x2+……+b10.x10=0,其中:(b0,b1,…,b10(是凸包的一个面的参数(我可以知道它上的顶点(。

from scipy.spatial import ConvexHull, convex_hull_plot_2d
import numpy as np
fit_hull = ConvexHull(data)
V = fit_hull.vertices
parameters = fit_hull.equations

我的问题是:在知道所有这些的情况下,我如何均匀地模拟:凸包上的随机点?

这很困难,因为在超平面上模拟随机点很简单,但在这里,它是一个以小平面的顶点为界的超平面(例如,有3个变量:要创建一个小平面,我需要三个点,所以它将是一个三角形(。

非常感谢

有一个美好的一天(来自法国(

  • 对凸包进行Delaunay镶嵌。在二维图中,这些是三角形,在三维图中,它们是四面体,你可以得到它们的面积/体积。

  • 随机选取一个三角形/四面体,概率由归一化面积/体积给定。

  • 在此三角形/四面体中均匀地拾取一个点。

最新更新