我试图计算10维空间中9点的凸包。通过the接口,我调用scipy.spatial.ConvexHull(points)并获取QH6214 qhull input error: not enough points(9) to construct initial simplex (need 12)
我认为凸壳的定义是很好的定义,不管它的维数。这里发生什么事情?我可以调用一个不同的函数来解决这个问题吗?
发布于 2014-10-20 00:39:21
也许在计算船体之前将点投影到一个超平面上就能做到这一点。
例如,使用来自sklearn.decomposition.PCA工具箱的主组件分析类scikit-learn来减少维数。
vertices = np.random.randn(9, 10)
from sklearn.decomposition import PCA
model = PCA(n_components=8).fit(vertices)现在,您可以使用model.transform和model.inverse_transform将顶点来回转换为投影。
proj_vertices = model.transform(vertices)
hull_kinda = ConvexHull(proj_vertices)
hull_kinda.simplices这输出如下所示
array([[6, 4, 3, 8, 0, 7, 5, 1],
[2, 4, 3, 8, 0, 7, 5, 1],
[2, 6, 3, 8, 0, 7, 5, 1],
[2, 6, 4, 8, 0, 7, 5, 1],
[2, 6, 4, 3, 0, 7, 5, 1],
[2, 6, 4, 3, 8, 7, 5, 1],
[2, 6, 4, 3, 8, 0, 5, 1],
[2, 6, 4, 3, 8, 0, 7, 1],
[2, 6, 4, 3, 8, 0, 7, 5]], dtype=int32)现在使用model.inverse_transform在你的10个维度中得到简单的结果。
https://stackoverflow.com/questions/26408110
复制相似问题