3D数据点隔离策略

3
我有两组点,一组是分析数据,另一组将用于对分析数据进行后处理的结果。
黑色的分析数据是散乱的。 从+Z视角查看的散点分析数据点。 用于结果的点是红色的。 常规网格结果数据点。 下面是同一张图上的两组点: 输入图像描述 我的问题是:我将插值到红色点上,但是您可以看到有些红色点落在黑色数据集中的空洞区域内。插值会导致这些点出现非零值,但这些值在最终数据集中必须为零。
我一直在考虑几种策略,以使这些值归零。以下是一些无序的策略:
1. 找到一个凸包,其顶点仅包含黑色数据点,并且该凸集内只包含红色数据点。同时,该凸包的面积应最大化,同时满足这两个条件。
实现起来相当困难,主要是由于需要选择哪些黑色数据点应从迭代搜索凸包中排除。
  1. 对于只有一个值(如1或0)的数据集,可以添加一个额外的维度,以使两者都可以成为同一数据集的一部分,但仍然可以区分开来。使用kNN(最近邻)算法选择虚空中仅红色点。基本思想是,虚空中的红色点将具有n(6?)个最近邻居,这些邻居在它们自己的集合中。仅通过虚空边界分离的红色数据点将具有不同数量的邻居,最后,距边界至少一步的红色点将具有几乎全部为黑色数据集邻居。我看到的现有算法返回索引或数组掩码,两者都是很好的解决方案。我还没有尝试过实现这个。

  2. 从用于创建黑色数据集的SolidWorks模型中手动提取边界点。在许多方面都不可行。这必须逐层手动完成,并且我展示的图片仅代表实际完整集的一小部分。

  3. 通过对我视觉确认感兴趣的一部分红色数据点进行多次细化,手动创建掩码。也不可行。除非我已经没有其他选择了。

如果这是一个有明确解决方案的问题,那么我并没有看到它。我希望提出的解决方案2将是最好的选择,因为它看起来实现起来最有趣并且可以看到效果。无论如何,正如标题所说,我仍然在寻找解决这个问题的策略方向。唯一确定的是Python是正确的工具。
编辑:分析数据包含x、y、z和3个电场分量值Ex、Ey和Ez。黑色数据集中的空洞位于金属内部,因此没有电势变化,或者换句话说,电场值都为零。
这张图片展示了使用scipy的griddata进行线性插值的Ex分量的单个z层。黑色椭圆是中央赛道形空洞边界的粗略指示器。您可以看到椭圆内部有红色和蓝色(表示x方向的+和- E场),应该为零(在此图中为浅绿色)。完成的数据将用于跟踪带电粒子的轨迹,因此如果其中一条粒子的路径实际上穿过了空洞,则进行跟踪的软件只能告诉电势是否保持不变,即它知道路径穿过了固体金属,并且会放弃该路径。

enter image description here

如果真空中存在电场,粒子跟踪软件不知道有某些结构存在,会导致问题发生。

2
很好!但我不明白你的目标是什么。你能否用一两句话重新表述一下上面的图像有什么问题,以及你想要的结果是什么。我知道你正在尝试“隔离3D点”,但也许我对你为什么这样做以及你想要实现什么感到困惑。如果没有一个非技术性的概括描述你想要做什么,我就无法理解你提供的所有具体细节。 - Ultimater
1
一般而言,非技术性的描述是:我必须在另一个程序中使用这些数据。如果空白处的值不为零,其他软件程序将会产生错误的结果。 - Chris
1个回答

1
你可以使用大数据技术中的“支持向量机”来解决这个问题。按照你提到的方式分配0和1的分类,然后通过libsvm算法运行它。你应该能够使用这个模型对需要清零的点进行分类和识别,并以编程方式实现。

我意识到SVM和libsvm实现需要一定的学习曲线。如果这超出了你的努力预算,我很抱歉。


修剪,我在调查SVM时多次阅读了这篇文章:对于许多估计器,包括SVM,每个特征的数据集具有单位标准偏差对于获得良好的预测是重要的。你觉得这有意义吗?由于我只寻找空洞中点的索引,所以我应该将我的轴缩放为提供单位SD...沿着单个轴或3D点集的轴? - Chris
是的。这也属于“特征缩放”的一般术语。您空间中的每个维度都是一个“特征”。一个经典的例子是从平方英尺、卧室数量和房屋年龄预测房价。卧室通常在1-4之间;年龄为0-100岁;平方英尺为500-5,000。如果您可以使这些范围相差不到一个数量级,例如用千平方英尺表示面积,用十年表示年龄,那么许多算法会更好地收敛。 - Prune
一个简单的优化器是将所有东西缩放到Z分数:在每个特征或维度中,点距平均值多少个标准差?例如,如果您空间中的x值具有平均值为3和SD为5,则13的值会缩放为+2:高于平均值两个标准差。0将缩放为-0.6这种转换使大多数机器学习算法更容易准确地找到中心点或描述。 - Prune
考虑在房屋示例上进行k-means聚类:在我们的原始数据输入中,楼层空间将主导聚类:一个占地2,000平方英尺的1卧室房屋将非常接近一个占地2,000平方英尺的5卧室房屋;一个占地2,020平方英尺的1卧室房屋将明显远离两者。如果我们缩放楼层空间--除以1,000--那么1卧室房屋将非常靠近彼此...对于大多数目的来说,它们应该是这样的。 - Prune
1
我不知道这对你的具体问题有多大帮助。我怀疑你需要添加一个维度,用1和0类别标识“进”和“出”集合,然后使用具有高斯选项的算法来获得你所需的结果。希望这能帮到你。 - Prune
我感谢你的回答,我会继续阅读并尝试将其应用到我的问题上。由于分析点密度在分析数据图片的顶部显著降低,我将不得不进行某种形式的缩放。但是,我理解了你用房子的例子所阐述的思路。谢谢! - Chris

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接