龙空技术网

理论篇:直观理解k均值聚类算法!

AI中国 569

前言:

如今小伙伴们对“模糊k均值聚类算法代码”都比较看重,我们都需要了解一些“模糊k均值聚类算法代码”的相关内容。那么小编也在网上收集了一些有关“模糊k均值聚类算法代码””的相关文章,希望大家能喜欢,朋友们快快来了解一下吧!

目的

这是一次通过执行k均值聚类来检测网络入侵的尝试

这个过程需要五步。我们要从没有聚类的非标记数据开始。算法创建了这个非标记数据的聚类。假设你想要计算错误和梯度下降,但是你没有这样做,在这种情况下你能做什么?这就是无监督学习开始发挥作用原因。

让我们开始吧!k是我们想要的聚类数目。然后我们将k的质心放在随机位置上。

它是如何工作的 ?

这个算法是一个迭代过程。本文将在图像的帮助下逐步解释它。

考虑下面的一组数据。我们需要将这些数据分成两组。

步骤1:算法随机选择两个质心c1和c2(有时,任何两个数据都作为质心)。

步骤2:它计算从每个点到两个质心的距离。如果测试数据更接近c1,那么该数据标记为'0'。如果它更接近c2,则标记为'1'(如果有更多的质心,标记为'2','3'等)。在我们的例子中,我们将用红色标记所有'0','1 '用蓝色标记。所以我们在进行上面的操作之后可以得到以下图像:

步骤3: 接下来,我们分别计算所有蓝色点和红色点的平均值,这个值将是我们的新质心。那就是c1和c2转移后的新质心。(请记住,所显示的图像不是真正的值,也不是真正的比例尺,它仅用于演示)。再次,执行步骤2,新质心和标记数据为'0'和'1'。

所以我们得到如下结果:

现在,迭代步骤2和步骤3,直到两个质心停止移动到固定点。(或者根据考验我们提供的标准,例如迭代的最大次数,或者达到特定的精度等等,它都可能会停止。)这些点是测试数据与它们对应的质心之间的距离的最小总和。

最终结果几乎如下所示:

这只是对K均值聚类的直观理解,更多解释。如果我们已经知道它可以被分为三种类型,那么k = 3。但是如果我们不知道有多少分类可能是与数据,所以我们使用肘形方法。肘形方法的概念是运行k数据集后的k值的范围(例如,在上面的例子中k从1到10),并且计算平方误差总和(SSE)。就像这个:

上述k均值聚类的算法,因为我们需要建立我们的算法,所以它将接收参数:

我们应该什么时候使用它?

但是你的数据是数字。它不适用于分类功能。我们要计算实数之间的距离!

如果你没有数据标签

K均值聚类是最简单的。实施运行中,你只需选择"k"并多次运行即可。

当你有多元数据时,K均值聚类和其他聚类算法会"发光"。它们将与一维数据共同"工作"。

当你想了解你的空间中实际存在多少个聚类时,这是很有用的。

其他例子

(欺诈检测)

(MNIST无标签(最后))

k聚类算法通过需要上述步骤,因为我们需要构建我们的算法,所以它将接收为参数:

· K:群集数量(必需)

· epsilon:在停止条件下使用的最小错误(可选,默认== 0)

· 距离:该方法用于计算距离(可选defalut == 0)并返回:

· 质心

· 质心的演变历史

· 每个实例的成员向量具有其各自的质心

标签: #模糊k均值聚类算法代码