- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有大量对象,我计算出每对对象之间有 4 个百分比的差异。
例如:O1 和 O2 有区别:a12、b12、c12 和 d12 51、78、22、93。
我希望标记差异小于某个阈值的“接近”对象。 (我还不知道这 4 项措施的每一项有多“重要”。)
聚类分析是解决这个问题的合适方法吗?任何有关 Python 算法和初学者教程的指南都会非常有帮助。
最佳答案
这可能不是聚类分析问题。
基本区别是您是否按照某些连通性标准对所有点进行分组(这不是聚类),或者算法是否根据数据本身动态确定聚类的标准(这是聚类)?
典型聚类分析的定义问题是聚类定义仅基于数据。也就是说,算法在同一进程中创建集群以及这些集群的定义。或者,换句话说,当您开始聚类时,您向算法提供数据,但不给它阈值。
由于您已经有了阈值,因此这不是通常所说的聚类。即使您有多个阈值可供选择,也只需对数据进行分组,因为您的阈值将决定并比较分组。
这里的警告正是您所说的“阈值”的含义以及您想要如何应用它。如果你想找到建立小于某个阈值的连接点链的所有点,那么它不是聚类。相反,如果您希望阈值定义点之间的非线性度量,则将应用正常的聚类算法(尽管具有非常不寻常的度量 - 所以这可能不是您想要的方法)。
另一个需要注意的是,人们所说的“集群”可能有不同的含义,我想我使用的是通常的数据分析定义,尽管人们当然也以其他方式使用这个词。例如,请参阅 scipy.cluster 中的算法。 .
<小时/>至于采取什么方法,到目前为止您还没有描述足够的细节来回答这个问题。例如,您想用中位数替换最接近的对吗?或者遵循邻居的连接链?等等。也许类似于 KDTree 对你有用。
关于python - 聚类分析的适用性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26059209/
我是一名优秀的程序员,十分优秀!