2024-2025秋季学期第六周调研技能学习

2024-2025秋季学期第六周调研技能学习

k-means存在的问题及图像分析

一、k-means存在的问题及解决方法

k-means算法原理简单、易于实现,但在实际应用中也存在一些问题:

  1. 初始中心点的选择问题

    -k-means算法对初始中心点的选择敏感,如果初始值选择不良,结果受影响极大。

    -通常需要多次随机初始化值以选取较好的聚类结果。

  2. 擅长的聚类方面

    -k-means算法基于距离,意味着它更擅长发现球型的聚类结构。对于复杂结构的聚类,k-means可能无法有效进行聚类。

  3. 对异常值敏感

    -k-means算法容易受到异常值的影响,从而对中心点的计算产生影响。

    -通常会进行多次计算或者去异常值,以减少影响。

为了使k-mean算法更直观地演示出不同数值产生的影响,以下推荐一个k-means算法模拟网站Visualizing K-Means Clustering

二、k-means应用实例-图像分割

使用k-means算法进行图像分割,即将每个像素点降维并进行分类后,通过其聚类特性重组图像,使得图像在给定k值下分割出不同颜色区域。

步骤:

  1. 读取图像并对图像数据进行降维,使得图像数据的坐标变为[“像素点”,“颜色通道”](颜色通道通常为RGB,即3)。
  2. 选择簇的数量(k值,即想要分类的颜色数量)和初始中心点。
  3. 使用k-means算法进行分类、更新和迭代,得出分类好的像素点。
  4. 将分类好的像素点重新绘制成分类后的图像,此图像可以通过更改k值以分类成不同类型的颜色。

DBSCAN聚类及应用案例

DBSCAN聚类介绍

DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种基于密度聚类算法,能够有效处理包含噪声的数据,通过样本分布的紧密程度决定聚类。DBSCAN算法的核心概念包括:

两个参数:Eps(邻域半径)、MinPts(聚类最少点数);

核心点:邻域内包含至少MinPts个点的点(包括自身);

边界点:在核心点邻域内,自身非核心点的点;

噪声点:既非核心点,也非边界点。

DBSCAN聚类过程

DBSCAN聚类演示

确定参数:Eps(邻域半径)与MinPts(聚类最少点数);

选点:从数据集中随机选择一个点;

检查核心点:若该点为核心点则进行下一步扩展聚类;若该点为非核心点,则另取起始点,直至取到核心点(非核心点的起始点可能是边界点或噪声点);

扩展聚类:将核心点邻域内的所有点加入当前聚类,并递归地检查邻域内的点,若它们也是核心点,则继续扩展当前聚类;

无法扩展当前聚类后,重复以上3、4步,形成多个聚类;

处理噪声点:聚类形成后,将非核心点、边界点的点标记为噪声点。

DBSCAN聚类的应用场景

非凸类数据集聚类

对于如下的“笑脸”形数据集进行聚类分析,K-means聚类算法不能很好进行聚类,如下:

在这里插入图片描述

基于密度的DBSCAN算法可以很好地完成聚类,得到外轮廓、眼睛、嘴这几个聚类。

在这里插入图片描述

此外,处理同心圆等形状的数据时,不同聚类的质心相近,K-means聚类难以达到预期效果,DBSCAN聚类适合此类运用场景,处理非凸类的数据集;

异常值检测

利用DBSCAN能检测数据中噪声点的特性,有效识别出异常值。例如将数据特征设为日期与每日手机使用时间,能够识别出异常值并隔离,避免造成干扰。

DBSCAN的优势与局限

优点:无需预设聚类个数;

​ 对任意形状聚类;

​ 有效处理噪声和异常值。

局限:对于密度不均匀,聚类间分布差异大的数据集,聚类质量较差;

​ 计算复杂度较大,难以处理大规模数据集;

​ 处理高维数据效果不佳,DBSCAN是基于距离密度的聚类算法,而高维数据的距离难以明确。


层次聚类

层次聚类通过计算不同类别数据点之间的相似度,创建出一棵有层次感的树状结构。
层次聚类(Hierarchical Clustering)是一种常用的聚类方法,它通过逐步合并或分裂已有的簇来形成最终的聚类结果。这种方法不需要预先指定聚类个数,其结果可以表示为一个树状图,称为 dendrogram。
层次聚类可以是聚合的(自底向上,Agglomerative),也可以是分裂的(自顶向下,Divisive)。
与k-means等算法不同,层次聚类不需要预先指定聚类个数,但最终聚类个数的选择仍然可能需要一定的主观判断。

层次聚类的基本流程:

初始化:将每个数据点视为一个独立的簇。
计算距离:计算所有簇之间的距离,通常使用某种距离度量方法(如欧氏距离、曼哈顿距离等)。
合并簇:找到距离最近的两个簇,并将它们合并成一个新的簇。
更新距离矩阵:更新距离矩阵,反映新的簇与其他簇之间的距离。
重复步骤3和4:重复合并簇和更新距离矩阵的过程,直到所有数据点合并成一个单一的簇,或者达到预设的簇数量。
生成树状图:根据合并的顺序和距离,生成层次聚类的树状图(Dendrogram),用于可视化和解释聚类结果。
在这个过程中,可以使用不同的距离计算方法和合并策略(如单链接、全链接、平均链接等)来优化聚类效果。
自底向上的合并算法通过计算数据点间的欧式距离来衡量相似度,并将相似度高的点聚集在一起,形成聚类。算法的核心在于不断合并和比较数据点,使用平均距离等方式更新距离矩阵,直至满足停止条件。层次聚类过程中,通过迭代更新数据点间的距离,并利用树状图展示聚类结果。

动态聚类合并过程
首先,我们有零散的基础数据点,通过比较它们的相似度,将相近的点聚集在一起。原始数据点可能从八个减少到四个或两个,这是一个自底向上的合并过程。聚类的数量可以自定义,例如聚成四堆或两堆,理论上甚至可以聚成一堆。整个过程涉及不断合并和比较,有时单个点的距离比合并点更近,没有固定的两个或四个合并的概念。
相似度计算方法
相似度计算非常重要。通常使用欧式距离来衡量相似度,尽管存在多种距离计算方法,但欧式距离是最基础且常用的。
数据点相似度矩阵计算与合并
在计算数据点之间的相似度矩阵时,首先计算每个点到其他点的欧式距离,找出距离最小的点对(如B和C),并将它们合并。合并后,重新计算合并点与其他点的距离,采用平均距离的方式。接着,继续在新的矩阵中寻找最小距离的点对(如E和D),并进行合并。这个过程不断迭代,直到满足某个停止条件。
层次聚类迭代计算方法
在层次聚类过程中,工作重点是通过迭代更新数据点间的距离,使用循环进行重复计算。迭代到最后,数据点间的距离将简化至两个点之间的距离。计算方法有三种:选择最近距离、最远距离或平均距离。通常,选择平均距离可能更具解释力。在具体操作中,如计算均值,需计算各点间的距离并求平均。层次聚类中,树状图是重要的展示工具,用于直观展示聚类结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值