分享

StatQuest生物统计学专题 - K近邻算法

 微笑如酒 2018-09-03

K近邻算法(k-Nearest Neighbor,KNN) 是一种非常简单的分类算法。

分类算法表明它是一种有监督的机器学习算法,它需要从已知分类结果的数据出发,得出最佳模型,然后使用模型去预测未知数据的分类。

简单是说K近邻算法是一种最简单的分类算法,它的直观含义是说要想知道一个数据点是哪一种分类,那么就看它最紧挨着的K个邻居是什么分类。邻居是什么分类,数据点就是什么分类。

K近邻算法的K是指的进行计算时使用多少个邻居点纳入计算,如K为5,代表进行K近邻算法计算时,会根据此点周围5个点的分类情况而决定当前点的分类。哪个分类多,当前点就被分类为哪种分类。

一个K近邻算法的例子

有如下已知共10种细胞的RNA-seq表达数据,为了便于展示,已将RNA-seq数据进行PCA分析:

StatQuest-XX-1

对于如下一个获得的RNA-seq数据,我们想知道它属于哪一种细胞类别,就可以使用K近邻算法,如下图,将此数据点加入到PCA图像中去:

假如K定为1,那么由于距离此点最近的邻居是“绿色类别”的细胞,所以K近邻算法会将其分类为“绿色类别“。

假如K定为11,那么由于距离此点最近的11个邻居都是“绿色类别”的细胞,所以K近邻算法会将其分类为“绿色类别“。

StatQuest-XX-2

假如我们稍微调整一下数据点的位置:

如下图所示,K=1时,最近的邻居点是红色点,因此将待定数据点分类为“红色类别”。

当K=11时,最近的11个邻居点有6个红色点、1个绿色点、3个橙色点以及1个浅绿色点,由于最多的邻居是“红色类别”,所以此点被分类为“红色类别”。

StatQuest-XX-3

最佳K值的确定

没有任何的数理或生物方法来决定最佳K值,在决定使用合适的K值前,往往需要多尝试取最优。

一般情况下,会将已知数据随机分出一部分作为测试集,假定这些测试集的分类并不知道,使用K近邻算法预测这些数据的分类,最终根据模型的分类效果来决定最好的K值。

一般较低的K值(K=1或2)往往是“噪音”,且很容易被异常值所干扰。

同样的,太大的K值也不行,假如一个分类一共才10个数据,当K=21时,当前分类完全有可能被其他分类所掩盖。毕竟K近邻算法是按照“少数服从多数”的原则确定最佳邻居的。

K近邻算法是一种非常简单的分类算法,下次我们将关注一种更优越的分类算法——决策树。

专题以往文章

  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)

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

参考资料

StatQuest课程:https:///video-index/


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多