gpt4 book ai didi

python - 如何计算聚类的量化误差?

转载 作者:行者123 更新时间:2023-11-28 17:10:08 26 4
gpt4 key购买 nike

我想使用量化误差来衡量聚类的质量,但找不到关于如何计算该指标的任何明确信息。

我找到的少数文档/文章是:

关于第三个链接(这是迄今为止我找到的最好的信息)我不知道如何解释计算(见下面的片段):

(#注解是我的,问号表示我不清楚的步骤)

def quantization_error(self):
"""
This method calculates the quantization error of the given clustering
:return: the quantization error
"""
total_distance = 0.0
s = Similarity(self.e) #Class containing different types of distance measures

#For each point, compute squared fractional distance between point and centroid ?
for i in range(len(self.solution.patterns)):
total_distance += math.pow(s.fractional_distance(self.solution.patterns[i], self.solution.centroids[self.solution.solution[i]]), 2.0)

return total_distance / len(self.solution.patterns) # Divide total_distance by the total number of points ?

问题:这种量化误差的计算是否正确?如果不是,计算步骤是什么?

如有任何帮助,我们将不胜感激。

最佳答案

冒着重复你已经知道的事情的风险,我将介绍基础知识。

回顾

量化 是我们通过将许多数据点中的每一个移动到一个方便的(最近的,通过某种度量)量子点来简化数据集的任何时候。这些量子点是一个小得多的集合。例如,给定一组 float ,将每个 float 四舍五入为最接近的整数是一种量化。

聚类是一种众所周知且经常使用的量化类型,我们使用数据点本身来确定量子点。

量化误差 是通过将每个点从其原始位置移动到其关联的量子点而引入的误差的度量。在聚类中,我们通常将此误差测量为每个点的均方根误差(移至其聚类的质心)。

您的解决方案

... 在一个非常普遍的意义上是正确的:您已经计算了数据集的平方和误差,并取了它的平均值。这是一个完全有效的指标。

我更常看到的方法是逐个簇地取最终均值的平方根,并将这些根的总和用作整个数据集的误差函数。

引用论文

k 均值聚类(或任何聚类)中的一个常见问题是“此数据集的最佳聚类数是多少?”该论文使用另一个量化级别来寻找平衡。

给定一组 N 数据点,我们想要找到最佳的聚类数“m”,这将满足“最佳聚类”的一些合理化。一旦我们找到 m,我们就可以继续使用我们通常的聚类算法来找到最佳聚类。

我们不能简单地以所有 的代价最小化错误:使用N 集群给我们的错误为 0。

这些解释是否足以满足您的需求?

关于python - 如何计算聚类的量化误差?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48178527/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com