聚类算法KMeans原理部分(一)概述无监督学习与聚类算法有监督学习算法:决策树,随机森林,逻辑回归

聚类算法又叫做“无监督分类”,其目的是将数据划分成有意义或有用的组(或簇)。这种划分可以基于我们的业务需求或建模需求来完成,也可以单纯地帮助我们探索数据的自然结构和分布。

聚类算法在sklearn中有两种表现形式

那什么情况下,质心的位置会不再变化呢?当我们找到一个质心,在每次迭代中被分配到这个质心上的样本都是一致的,即每次新生成的簇都是一致的,所有的样本点都不会再从一个簇转移到另一个簇,质心就不会变化了。这个过程在可以由下图来显示,我们规定,将数据分为4簇(K=4),其中白色X代表质心的位置:

被分在同一个簇中的数据是有相似性的,而不同簇中的数据是不同的,当聚类完毕之后,我们就要分别去研究每个簇中的样本都有什么样的性质,从而根据业务需求制定不同的商业或者科技策略。聚类算法也是同样的目的,我们追求簇内差异小,簇外差异大。而这个“差异“,由样本点到其所在簇的质心的距离来衡量。

对于一个簇来说,所有样本点到质心的距离之和越小,我们就认为这个簇中的样本越相似,簇内差异就越小。而距离的衡量方法有多种,令表示簇中的一个样本点,表示该簇中的质心,n表示每个样本点中的特征数目,i表示组成点的每个特征,则该样本点到质心的距离可以由以下距离来度量:

如我们采用欧几里得距离,则一个簇中所有样本点到质心的距离的平方和为:

在KMeans中,我们在一个固定的簇数K下,最小化总体平方和来求解最佳质心,并基于质心的存在去进行聚类。两个过程十分相似,并且,整体距离平方和的最小值其实可以使用梯度下降来求解。因此,有许多博客和教材都这样写道:簇内平方和/整体平方和是KMeans的损失函数。

Kmeans有损失函数吗

记得我们在逻辑回归中曾有这样的结论:损失函数本质是用来衡量模型的拟合效果的,只有有着求解参数需求的算法,才会有损失函数。Kmeans不求解什么参数,它的模型本质也没有在拟合数据,而是在对数据进行一种探索。所以如果你去问大多数数据挖掘工程师,甚至是算法工程师,他们可能会告诉你说,K-Means不存在什么损失函数,Inertia更像是Kmeans的模型评估指标,而非损失函数。

但我们类比过了Kmeans中的Inertia和逻辑回归中的损失函数的功能,我们发现它们确实非常相似。所以,从“求解模型中的某种信息,用于后续模型的使用“这样的功能来看,我们可以认为Inertia是Kmeans中的损失函数,虽然这种说法并不严谨。

对比来看,在决策树中,我们有衡量分类效果的指标准确度accuracy,准确度所对应的损失叫做泛化误差,但我们不能通过最小化泛化误差来求解某个模型中需要的信息,我们只是希望模型的效果上表现出来的泛化误差很小。因此决策树,KNN等算法,是绝对没有损失函数的。

Inertia是基于欧几里得距离的计算公式得来的。实际上,也可以使用其他距离,每个距离都有自己对应的Inertia。在过去的经验中,我们总结出不同距离所对应的质心选择方法和Inertia,在Kmeans中,只要使用了正确的质心和距离组合,无论使用什么样的距离,都可以达到不错的聚类效果:

在sklearn当中,我们无法选择使用的距离,只能使用欧式距离

THE END
1.KMeans聚类算法的原理及实现kmeans串行算法原理K-Means聚类算法的原理及实现 【转】http://www.aboutyun.com/thread-18178-1-1.html 问题导读: 1、如何理解K-Means算法? 2、如何寻找K值及初始质心? 3、如何应用K-Means算法处理数据? K-Means是聚类算法中的一种,其中K表示类别数,Means表示均值。顾名思义K-Means是一种通过均值对数据点进行聚类的算法。Khttps://blog.csdn.net/GoodShot/archive/2011/05/27/78128097.aspx
2.KK-means聚类算法的原理与应用场景解析 芋泥香鸭 149粉丝 · 234个视频 关注 接下来播放自动播放 09:55 和女儿去卖冬笋,经过几次调价才卖完,但收获满满,把她高兴坏了 土耳其阿布 38万次播放 · 2.0万次点赞 01:01 陈乔恩老公画作被拍卖,成功拍出22万新台币,创作为中西元素结合 娱8嘴 2.1万次播放 · 34次https://haokan.baidu.com/v?pd=wisenatural&vid=10221152576596758141
3.kk-means算法是非监督聚类最常用的一种方法,因其算法简单和很好的适用于大样本数据,广泛应用于不同领域,本文详细总结了k-means聚类算法原理 。 目录 1. k-means聚类算法原理 2. k-means聚类算法步骤 3. k-means++聚类优化算法 4. 小批量处理的k-means聚类算法 https://mp.weixin.qq.com/s?__biz=MzU0MDQ1NjAzNg==&mid=2247486771&idx=1&sn=cc1ee930134b5f5cbdb4637a9d80982d&chksm=fb39a838cc4e212e2e1d0db3d3b47e5c8d274cdf899def51f0a00a803c937b550cd06a703add&scene=27
4.kmeans算法的原理是什么问答k均值(k-means)聚类算法是一种常用的聚类分析方法,其主要思想是将数据集中的数据点划分为k个簇,使得每个数据点都属于与其最近的簇中心所代表的簇。k均值算法的原理如下:1. 随机选择k个初始簇https://www.yisu.com/ask/7488761.html
5.Kmeans算法的基本原理1.聚类1.1. DBSCAN 1.1.1. DBSCAN原理1.1.2 粗糙伪代码 1.2K-means1.2.1K-Means原理1.2.2K-means伪代码 1.3 层次聚类1.3.1 层次聚类的原理1.3.2 如何确定如何取cluster? 1.3.3 层次聚类伪代码 1.4算法之间的优缺点 1.4.1K-means1.4.2 DBSCAN算法:基于密度的聚类 https://www.pianshen.com/article/52991392139/
6.零基础学习Kmeans聚类算法的原理与实现过程其原理即需要将一堆散点进行聚类,聚类目标是“类内的点足够近,类间的点足够远”,而你需要做的就是(1)确定聚类数目;(2)挑选初始中心点;(3)迭代重置中心点直到满足“类内的点足够近,类间的点足够远”,典型的基于划分的聚类就是K-means算法。 K-means算法流程https://www.jianshu.com/p/6ff067b9e2ba
7.聚类算法:Kmeans和Kmeans++算法精讲3.1原理 原始Kmeans算法最开始随机选取数据集中k个点作为聚类中心,k个初始化的质心的位置选择对最后的聚类结果和运行时间都有很大的影响,因此需要选择合适的k个质心。如果仅仅是完全随机的选择,有可能导致算法收敛很慢。Kmeans++算法主要对对K-Means初始值选取的方法的优化。也就是说,Kmeans++算法与Kmeans算法最本质https://developer.aliyun.com/article/1309827
8.KMeans聚类算法一、KMeans原理 KMeans是一个迭代求解的聚类算法,其属于划分(Partitioning)型的聚类方法,即首先创建K个划分,然后迭代地将样本从一个划分转移到另一个划分来改善最终聚类的质量,KMeans的过程大致如下: 1.根据给定的k值,选取k个样本点作为初始划分中心; https://mocom.xmu.edu.cn/article/show/586df21caa2c3f280956e7b3/0/1
9.Kmeans均值聚类算法原理以及Python如何实现pythonKmeans均值聚类算法原理以及Python如何实现 这个算法中文名为k均值聚类算法,首先我们在二维的特殊条件下讨论其实现的过程,方便大家理解。 第一步.随机生成质心 由于这是一个无监督学习的算法,因此我们首先在一个二维的坐标轴下随机给定一堆点,并随即给定两个质心,我们这个算法的目的就是将这一堆点根据它们自身的坐标https://www.jb51.net/article/196540.htm
10.KMeans算法全面解析与应用案例腾讯云开发者社区KMeans算法全面解析与应用案例 本文深入探讨了KMeans聚类算法的核心原理、实际应用、优缺点以及在文本聚类中的特殊用途,为您在聚类分析和自然语言处理方面提供有价值的见解和指导。 一、聚类与KMeans介绍 聚类算法在机器学习和数据挖掘中占有重要的地位,它们用于自动地将数据分组成有意义的集群。KMeans聚类算法是其中最https://cloud.tencent.com/developer/article/2348495
11.Python数模笔记Sklearn(2)聚类分析4、K-均值(K-Means)聚类算法 K-均值聚类算法,是最基础的、应用最广泛的聚类算法,也是最快速的聚类算法之一。 4.1 原理和过程 K-均值聚类算法以最小化误差函数为目标将样本数据集分为 K类。 K-均值聚类算法的计算过程如下: 设定K 个类别的中心的初值; https://www.flyai.com/article/896
12.最常用的聚类算法——KMeans原理详解和实操应用(R&Python)1 K-Means算法引入 基于相似性度量,将相近的样本归为同一个子集,使得相同子集中各元素间差异性最小,而不同子集间的元素差异性最大[1],这就是(空间)聚类算法的本质。而K-Means正是这样一种算法的代表。 图1 二维空间聚类的例子 [1] 上个世纪50/60年代,K-Means聚类算法分别在几个不同的科学研究领域被独立https://zhuanlan.zhihu.com/p/619739126