《机器学习算法与实现 —— Python编程与应用实例》-- 第三贴 K均值聚类算法
<p><b>引言:</b></p><p>本书第五章讲解了K均值聚类算法</p>
<p>K均值聚类算法是一种简单的迭代型算法,它使用距离来评判相似性,发现给定数据集中的k个类别,其中每个类别的中心都由该类别中的所有值的均值得到,最后每个类别都由聚类的中心描述。一般采用欧氏距离。核心思想:循环迭代求解。</p>
<p>K均值聚类算法属于无监督学习,k最近邻算法属于经典的监督学习,分类是已知的。而K均值聚类算法的分类是未知的。通过感知样本间的相似度进行类别归纳。</p>
<p> </p>
<p><b>K均值聚类原理:</b></p>
<p>重复移动类别的中心(或者重心),移动至其包含成员的平均位置;然后重新划分其内部成员;重复执行上述过程直到收敛或者达到最大迭代次数。K是提前设置的超参数,表示类别个数。,</p>
<p> </p>
<p><b>K均值聚类算法:</b></p>
<p>先随机选取K个对象作为初始的<a href="https://baike.baidu.com/item/%E8%81%9A%E7%B1%BB%E4%B8%AD%E5%BF%83/55999889?fromModule=lemma_inlink" target="_blank">聚类中心</a>。然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。一旦全部对象都被分配了,每个聚类的聚类中心会根据聚类中现有的对象被<a href="https://baike.baidu.com/item/%E9%87%8D%E6%96%B0%E8%AE%A1%E7%AE%97/4606439?fromModule=lemma_inlink" target="_blank">重新计算</a>。这个过程将不断重复直到满足某个终止条件。终止条件可以是以下任何一个:</p>
<p>1、没有(或最小数目)对象被重新分配给不同的聚类。</p>
<p>2、没有(或最小数目)聚类中心再发生变化。</p>
<p>3、误差平方和局部最小。</p>
<p> </p>
<p>K均值聚类算法首先保持u(重心)不变,重复迭代更新c来最小化J, 然后保持c不变,更新参数u来最小化J. 从数学上讲,J一定单调递减且收敛。理论上,K均值聚类算法可能会在不同的聚类重心之间振荡,对于不同的c和/或不同的u可能会得到相同的J值。</p>
<p>u指的是重心, c指的是元素,J指的是损失函数(欧氏距离平方和)。</p>
<p> </p>
<p><b>评估聚类性能</b></p>
<p>对于分类问题,可以直接通过计算被错误分类的样本数量,得出准确率;然而聚类问题,并没有具体的标签,无法直接用绝对数量来评估性能。</p>
<p>本书介绍了两种方法来评估聚类,第一种是调整兰德指数(ARI),第二种是轮廓系数。</p>
<p>如果被评估的数据本身带有正确的类别信息时,可以用ARI.</p>
<p>轮廓系数是一种适用于评估的数据无标签时进行评估。文章用一个例子很好的说明了轮廓系数的使用。</p>
<p> </p>
<p> </p>
<p>轮廓系系数最大的k,为最佳的分类数。</p>
<p> </p>
<p><strong>K均值聚类算法应用:</strong></p>
<p>本书讲解如何利用K均值聚类算法实现图像的压缩功能,在保证图片质量的前提下,节省了20%多的存储空间。</p>
<p> </p>
<p>分享中数学知识没有过多涉及,一方面这些公式难以书写,另一方面写出来似乎也难以描述清楚,感兴趣的同学,可以搜索K-means聚类算法,有很多公式。而本书可以作为一个很好的工具书,引导大家更快的建立相关知识体系,凝练人类现有智慧,为前行者指引方向,我想这便是书籍的作用,而本书则是其中一员。</p>
<p>我们老师讲这个的时候 给了我们一个网站 可以让我们动态的看到是怎么聚集在一起的。现在忘了扔到哪里去了</p>
<p>而且这个k-means 和其他的算法。 很难理解。我们也就是讲个大概然后直接应用了。 需要很多的数学知识</p>
御坂10032号 发表于 2024-7-25 00:29
我们老师讲这个的时候 给了我们一个网站 可以让我们动态的看到是怎么聚集在一起的。现在忘了扔到哪里去了
<p>找到了 可以分享下, 算法理解起来 不算难,但是 数学原理比较多,人工智能的基础就是数学,高数/概率论/线代..</p>
页:
[1]