《机器学习高频面试题详解》2.2:聚类算法-KMeans

点击上方卡片链接就可以进入专栏,专栏右上角有订阅选项,欢迎大家订阅~

前言

大家好,我是鬼仔,今天带来《机器学习高频面试题详解》专栏的第2.2节:聚类算法-KMeans聚类。这是鬼仔第一次开设专栏,每篇文章鬼仔都会用心认真编写,希望能将每个知识点讲透、讲深,帮助同学们系统性地学习和掌握机器学习中的基础知识,希望大家能多多支持鬼仔的专栏~

目前这篇是试读,后续的文章需要订阅才能查看哦,专栏预计更新30+篇文章(只增不减),具体内容可以看专栏介绍,大家的支持是鬼仔更新的动力!

本文大纲

一、原理

1. KMeans算法流程

2. 聚类质量评价方法

二、面试真题

1. KMeans聚类的优缺点?

2. KMeans聚类需要数据预处理吗?

3. KMeans聚类的初始值k怎么选取?

4. 对于非凸的数据分布,KMeans聚类应该如何改进?

5. 介绍一下KMeans++算法?

6. 介绍一下ISODATA算法?

一、原理

1. KMeans算法流程

Kmeans聚类算法是一种基于距离的无监督学习算法,其目标是将n个样本分为k个不同的聚类,其步骤如下:

1)随机初始化k个聚类中心。

2)对于每个样本,计算其到各个聚类中心的距离,并将其归到距离最近的聚类中心所属的聚类中。(此过程为分类过程)

3)对于每个聚类,计算其中所有样本的均值作为该聚类当前的中心。

4)计算所有样本与其所属聚类中心的距离的总和,即平方误差SSE(Sum of Squared Errors)。

5)判断聚类中心是否发生改变,若未改变则输出聚类结果;若改变则将聚类中心更新为步骤3计算出的均值,并返回步骤2。

6)聚类结果为k个聚类中心以及每个样本所属的聚类。

需要注意的是,Kmeans聚类算法对于初始聚类中心的选择会产生影响,可能导致收敛到局部最优解。因此,常用的做法是随机初始化多组聚类中心,然后选择聚类结果中SSE最小的一组作为最终结果。

KMeans最核心的部分就是先固定中心点,调整每个样本所属的类别来减少损失函数SSE;再固定每个样本的类别,调整中心点继续减小SSE。两个过程交替循环,SSE单调递减直到最(极)小值,中心点和样本划分的类别同时收敛。

2. 聚类质量评价方法

聚类质量评价是对聚类算法效果的度量,可以帮助我们衡量聚类结果的好坏。以下是常见的聚类质量评价方法:

1)SSE(Sum of Squared Errors,误差平方和):SSE是指聚类中各个点到所属类中心点距离的平方和,该值越小表示聚类效果越好。

2)轮廓系数(Silhouette Coefficient):该系数综合考虑了聚类内部的样本之间距离和聚类之间的样本距离。系数的值在-1到1之间,越接近1表示样本聚类效果越好。

3)GAP统计量(Gap Statistic):该统计量通过比较实际数据和随机数据之间的差异来评价聚类质量。当实际数据的聚类结果比随机数据的结果更好时,GAP统计量的值越大。

4)DB指数(Davies-Bouldin Index):该指数考虑了聚类内部的样本分散和聚类之间样本的分散情况。该指数的值越小表示聚类效果越好。

5)CH指数(Calinski-Harabasz Index):该指数通过聚类之间的类别间差异和聚类内部的类别差异进行衡量,越大表示聚类效果越好。

不同的聚类算法和任务特性可能对应着不同的评价指标,因此需要针对具体问题和算法选择合适的评价指标。

二、面试真题

1. KMeans聚类的优缺点?

1)优点:

  • 对于大数据集,算法高效可伸缩,计算复杂度为O(NKt)接近于线性,其中N是数据量,K是聚类簇数,t是迭代轮数
  • 虽然算法以局部最优结束,但一般情况达到的局部最优已经可以满足实际需求
  • 可解释性强

2)缺点:

  • 受初始值和异常点影响,聚类结果可能不是全局最优而是局部最优
  • 算法结果受初始聚类中心点的影响,可能会收到

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

机器学习高频面试题详解 文章被收录于专栏

专栏作者曾在校招期间拿到包括字节、微信和华为等多家大厂的SSP offer,该专栏主要是为了帮助同学们系统性地学习和掌握机器学习中的基础知识。专栏详细地整理了各大厂的算法岗面经,力争深入浅出地讲解重要知识点,适合人群为准备校招或者实习,且目标岗位为算法岗、数据挖掘岗或者数据分析岗的同学。

全部评论
性能优化怎么样?
点赞 回复 分享
发布于 2023-05-08 09:30 辽宁
这个主要应用在什么方面?
点赞 回复 分享
发布于 2023-05-08 09:39 重庆

相关推荐

点赞 评论 收藏
分享
5 3 评论
分享
牛客网
牛客企业服务