使用python查找散点图的最佳拟合框?

使用python查找散点图的最佳拟合框?,python,scatter-plot,Python,Scatter Plot,我正在寻找解决此问题的最佳python库: 我有一个散点图,上面有数据点上的团块。这只是一系列x,y坐标对 我想要一个工具,可以查看我拥有的数据点,然后建议包含不同组的N个“框” 大概我可以通过选择要使用多少个框来选择更高或更低的粒度 有没有最适合解决这类问题的python库?我理解您的问题的方式是,您希望找到包含数据点云的框。 您将粒度标准定义为用于描述数据集的框数 我想你要找的是。算法非常简单。设n为集合中的数据点数量。基本上,该算法首先考虑n个组,每个组由一个点填充。然后,这是一个迭代过程

我正在寻找解决此问题的最佳python库:

我有一个散点图,上面有数据点上的团块。这只是一系列x,y坐标对

我想要一个工具,可以查看我拥有的数据点,然后建议包含不同组的N个“框”

大概我可以通过选择要使用多少个框来选择更高或更低的粒度


有没有最适合解决这类问题的python库?

我理解您的问题的方式是,您希望找到包含数据点云的框。 您将粒度标准定义为用于描述数据集的框数

我想你要找的是。算法非常简单。设n为集合中的数据点数量。基本上,该算法首先考虑n个组,每个组由一个点填充。然后,这是一个迭代过程:

  • 根据距离标准合并两个最近的组
  • 由于组集已更改,请更新组之间的距离
  • 返回合并步骤,直到达到特定数量的簇或特定距离阈值
您还可以构建dendogram。它是一个树状结构,将存储所有合并过程的历史记录,允许您检索1个集群和n个集群之间的任何粒度级别

Scipy中有一组专门用于此算法的函数。问题包括了这一点

获取集群是第一步,现在您可以构建框。让我们从所谓的数学角度来讨论这个问题。设C为簇,P1。。。Pn簇的点。如果矩形框很好,那么它可以由两个坐标点(xmin,ymin)和(xmax,ymax)定义,其中:

  • xmin=min(P.x P∈ (C)
  • ymin=最小值(P.y P∈ (C)
  • xmax=最大值(P.x P∈ (C)
  • xmax=最大值(P.y P∈ (C)
编辑


这种建造箱子的方法是最愚蠢的。如果你想要一些真正适合你的东西,你必须考虑构建每个集群的凸包。

当我读到你的问题时,我想到的第一件事是“层次集群”。这些盒子可以由它们所代表的簇来推断。你可以看看这个问题