聚类算法理论篇(K-means,DBSCAN原理)

目录

一、前言

二、K-means算法

        2.1 k-means的概念

        2.2 K-means的工作流程

        2.3 优势

        2.4  劣势

        2.5 K-means的可视化

三、DBSCAN算法

        3.1 基本概念

        3.2 工作流程

        3.3 优势

        3.4 劣势

        3.5 可视化展示


一、前言

        聚类算法是一种无监督的机器学习方法,其数据没有标签。简单来说,聚类就是把相似的东西分在在一组。但是因为没有标签,如何评估学习的好坏非常困难,而且如何调参也是不易。

        本文主要介绍两种聚类算法:K-means和DBSCAN。

二、K-means算法

        也叫k均值聚类算法,其每次迭代前需要得到簇类样本均值。

         2.1 k-means的概念

                要得到簇的个数,即几堆,需要指定K值。

                质心:均值,即向量各维度取平均即可,这是迭代需要的

                距离的度量:(判断两个东西是否相似)常见的有欧式距离余弦相似度,但数据需要先标准化。

                优化目标:min\sum_{i=1}^{k}\sum_{x\epsilon c_i}dist(c_i,x)^2,其中k代表簇的个数,C_i表示质心(均值),即表示把每个簇的样本和质心的距离都算出来求和,再求最小值。

        2.2 K-means的工作流程

        如图所示:

                1.  根据K值,随机创建K个初始化质心点(Initialozation Randomly selecr K center points。如图(a)随机创建K=2个初始化质心点。

                2. 算出所有样本点到质心点的距离,得到样本属于那个簇。如图(b)

                3. 更新,根据簇内样本重新算出簇内的质心。如图(c)

                4. 重复执行2,3步,重新划分簇类,直至质心不在变化。如图(d,e,f,g,h,i)

        2.3 优势

                简单,快捷,适合常规数据集

        我们可以看到对于如上图所示的复杂数据集,K-means聚类算法表现差强人意。

        2.4  劣势

                K值难以确立

                复杂度与样本呈线性关系

                很难发现任意形状的簇 

        2.5 K-means的可视化

                网址:Visualizing K-Means Clusteringicon-default.png?t=N7T8https://www.naftaliharris.com/blog/visualizing-k-means-clustering/       

                       

        选择随机数据集

        玩!!!!!!!!!

三、DBSCAN算法

             3.1 基本概念

        (Density-Based Spatial clustering of Application with noise)基于密度的带有噪声的聚类应用   

        核心对象:若某个点的密度达到算法设定的阈值则视其为核心点。即\gamma领域内点的数量不小于MinPts。

                

        邻域的距离阈值:设定半径为\gamma

        直接密度可达:若某点P在点q的\gamma邻域内,且q是核心对象,则p-q是直接密度可达。

         

        密度可达:若有一个点的序列q_0,q_1,q_2,....,q_k对于任意q_i-q_{i-1}是直接密度可达的,则称以q_0到达q_k是密度可达的,这实际上是直接密度可达的“传播”。

        

        密度相连:若从某核心点P出发,点q和点k都是密度可达的则称点q和点k是密度相连的。

        边界点:属于某一个类的非核心点,不能再发展下线了。

        噪声点:不属于任何一个类簇的点,从任何一个核心点出发都是密度不可达的。

           

                        其中A:核心对象  B,C:边界点   N:离群点(噪声点)

                3.2 工作流程

                        

                参数D:输入数据   参数\varepsilon:指定半径    MinPts:密度阈值

                参数选择:半径\gamma,可以根据K距离来设定:找突变点

                                   K距离:给定数据集P=\begin{Bmatrix} p_{(i)},i=0,1,...,n \end{Bmatrix}计算点p_{(i)}到集合D的子集       S中的所有点距离,距离按照从小到大的顺序排列,d(k)就被称为K距离。

                                

                                MinPts:k距离中的k值,一般取小一些,多次尝试。

                3.3 优势

                        不需要指定簇数

                        可以发现任意形状的簇

                        擅长找到离群点(检测任务)

                        两个参数就够了

                3.4 劣势

                        高维数据有些困难(可以做降维)

                        参数难以选择(参数对结果影响大)

                        sklearn中的效率很慢

                3.5 可视化展示

                        网址:Visualizing DBSCAN Clusteringicon-default.png?t=N7T8https://www.naftaliharris.com/blog/visualizing-dbscan-clustering/

  

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值