k近邻算法和kmeans的区别

K近邻算法(KNN)和K均值聚类(K-Means)虽然名字里都有一个“K”,但它们是两个目的、原理和应用场景都截然不同的算法。

最核心的区别在于:KNN是一种有监督学习算法,用于分类或回归;而K-Means是一种无监督学习算法,用于聚类。

核心区别对比

表格

特性K近邻算法 (KNN)K均值聚类 (K-Means)
算法类型监督学习无监督学习
任务目标分类(主要)、回归聚类
数据要求需要已标注的训练数据只需要未标注的特征数据
“K”的含义预测时参考的最近邻居的数量预先指定的聚类簇的数量
工作原理“近朱者赤,近墨者黑”“物以类聚,人以群分”
学习模式惰性学习,没有显式训练过程急切学习,需要通过迭代训练找到聚类中心

深入理解

K近邻算法 (KNN) – “看邻居”

KNN 的核心思想非常直观:要判断一个未知样本的类别,就看它周围最近的K个“邻居”大多属于哪个类别
  • 比喻:“近朱者赤,近墨者黑”。你想知道一个人是什么样的人,就去看看他关系最好的K个朋友是什么样的人
  • 工作流程
    1. 你有一堆已经贴好标签的数据(例如,已知一些点是“猫”还是“狗”)。
    2. 来了一个新的未知数据点。
    3. 计算这个新点到所有已知点的距离。
    4. 找出距离最近的K个点(邻居)。
    5. 分类任务:看这K个邻居中,哪种标签最多,就把新点归为哪一类(多数投票)。
    6. 回归任务:取这K个邻居目标值的平均值作为新点的预测值。
  • 关键点:KNN没有“训练”阶段,它只是把所有训练数据“记住”。计算都发生在预测阶段,因此它也被称为“惰性学习器”
k近邻算法和kmeans的区别

K均值聚类 (K-Means) – “分小组”

K-Means 的目标是在没有标签的情况下,自动将数据划分成K个内部相似、彼此不同的“簇”(Cluster)
  • 比喻:老师让一个班的学生自动分成K个小组,要求是同一个小组里的人要尽量彼此靠近
  • 工作流程
    1. 首先,你告诉算法要分成K个组。
    2. 算法随机选择K个点作为初始的“聚类中心”(质心)。
    3. 分配:计算每个数据点到K个中心的距离,把它分配给最近的那个中心所在的簇。
    4. 更新:重新计算每个簇所有点的平均值,将这个平均值作为新的聚类中心。
    5. 重复“分配”和“更新”步骤,直到聚类中心不再变化或达到最大迭代次数。
  • 关键点:K-Means有一个明确的“训练”过程,即通过迭代来找到最优的K个聚类中心
© 版权声明

相关文章

暂无评论

none
暂无评论...