查看原文
其他

StatQuest生物统计学专题 - 聚类及其算法(2)

冰糖 生信菜鸟团 2022-06-07

目录

K-means聚类算法K-means聚类的2个细节优化K-means聚类的几个问题

K-means聚类算法是一种经典聚类算法。

当需要聚类的数据量上升到一定程度时,大部分聚类算法都不能使用。当数据量超过5万条数据以后, K均值可能是比较实际的算法。

K-means聚类算法

K-means聚类的过程详解

K-means聚类中K是聚类后的类别数目,如K为3代表将数据聚类为3类。

以一维数据为例,看看K-means聚类算法是如何完成的。

  1. 指定K值

    先任意指定一个K值,此处设定K值为3,也就是说希望将数据聚类为3类,后面会说明如何确定最佳K值;

    StatQuest-XIX-1
  2. 随机指定3个不同的点

    随机指定3个点,这3个点是3个聚类的起始点,其他所有点将根据同这3个”聚类起始点“的距离关系,被分类到这3个聚类中;

    StatQuest-XIX-2
  3. 计算其他点同三个起始点之间的距离并聚类

    如下图,第一个点距离“蓝色聚类”最近,因此被归为“蓝色聚类”,第二个点距离“绿色聚类”最近,因此被归类为“绿色聚类”,第3个点距离“橙色聚类”最近,因此被归类为“橙色聚类”。

    StatQuest-XIX-3

    依此类推,将所有点都进行聚类,如下图:

    StatQuest-XIX-4
  4. 计算每个聚类的均值

    计算出每个聚类的均值,如下图,将这些均值作为新的聚类起始点,再按照第3步的方法进行聚类,得到新的聚类。

    StatQuest-XIX-5
  5. 多次重复第4步,得到最终的聚类结果

    多次重复第4步,直到聚类结果再也没有变化,得到最终的聚类结果,如下图所示。

    StatQuest-XIX-6

见鬼的K-means聚类???

额,,,K-means聚类听起来这么高大上的名字,得出这么一个见鬼的聚类???

这不应该肉眼一看就知道最佳的结果是3个聚类,每个聚类4个点吗?

要是使用层次聚类可以很容易的得出很棒的聚类出来,为什么使用K-means聚类得出这么一个奇怪的结果?

StatQuest-XIX-7

K-means聚类的2个细节优化

如何使用K-means得出最佳的聚类

其实K-means聚类算法是一种迭代算法,上面得出的只是一种聚类结果,正常情况下,K-means聚类算法需要多次重复上述过程,得到多个聚类结果,然后在多个结果中找个最佳结果。

那么K-means的最佳结果怎么指定?

这个指标是每个聚类的方差的和。

StatQuest-XIX-8

然后只需要在多次进行的K-means聚类中选择方差最小的聚类即可,如下图,进行了3次K-means聚类,第2次的K-means聚类的方差最小,所以最佳的聚类结果是第2次K-means聚类:

此时的K-means聚类结果就非常的符合直觉了。

StatQuest-XIX-9

如何确定最佳K值

最简单的方法就是尝试多个K值,看哪个K值最好。

如下图所示为尝试了多个K值的方差值,可以看到随着K变大,方差值是逐渐减少的,但是我们是不能根据方差的大小来认为最佳K值是4的。

为什么?

假如K值等于所有点的个数,那么此时每个点是一个聚类,方差为0,但是此时的聚类明显是没有意义的。

所以并不是方差值越小越好。

StatQuest-XIX-10

我们根据此时每个K值下方差值,可以得到2相比较1下降了多少方差,3相比较2下降了多少方差,以此类推,可以得到如下图形:

虽然随着K值变大,方差是愈来愈小的,但是却存在一个最佳的K值,使得它之后的K值的方差下降速率明显变小。

在本例中,K为3之后的K值的方差下降速率迅速变缓,所以最佳K值为3。

StatQuest-XIX-11

K-means聚类的几个问题

K-means聚类和层次聚类的区别

K-means聚类尝试将聚类分为指定数目的分类,而层次聚类不能人为指定数目。

2维数据如何进行K-means聚类

使用同样的方法进行,只不过此时的聚类聚类使用欧氏距离。

热图如何进行K-means聚类

同样的道理,如对Gene进行K-means聚类,那么将多个样本数据间的欧氏距离进行聚类即可。

专题以往文章

  1. StatQuest生物统计学专题 - 基础概念

  2. StatQuest生物统计学专题 - p值

  3. StatQuest生物统计学专题 - 生物重复和技术重复

  4. StatQuest生物统计学专题 - RPKM,FPKM,TPM

  5. StatQuest生物统计学专题 - library normalization进阶之DESeq2的标准化方法

  6. StatQuest生物统计学专题 - library normalization进阶之edgeR的标准化方法

  7. StatQuest生物统计学 - Independent Filtering

  8. StatQuest生物统计学 - FDR及Benjamini-Hochberg方法

  9. StatQuest生物统计学 - 拟合基础

  10. StatQuest生物统计学 - 线性拟合的R2和p值

  11. StatQuest生物统计学专题 - 分位数及其应用

  12. StatQuest生物统计学专题 - 极大似然估计

  13. StatQuest生物统计学专题 - PCA

  14. StatQuest生物统计学专题 - PCA的奇异值分解过程

  15. StatQuest生物统计学专题 - LDA

  16. StatQuest生物统计学专题 - MDS

  17. StatQuest生物统计学专题 - tSNE的基础概念

  18. StatQuest生物统计学专题 - 聚类及其算法(1)

参考资料

StatQuest课程:https://statquest.org/video-index/


猜你喜欢

生信基础知识100讲

生信菜鸟团-专题学习目录(5)

生信菜鸟团-专题学习目录(6)

生信菜鸟团-专题学习目录(7)

还有更多文章,请移步公众号阅读

▼ 如果你生信基本技能已经入门,需要提高自己,请关注下面的生信技能树,看我们是如何完善生信技能,成为一个生信全栈工程师。

   

▼ 如果你是初学者,请关注下面的生信菜鸟团,了解生信基础名词,概念,扎实的打好基础,争取早日入门。

   


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存