【数据挖掘】聚类算法 简介 ( 基于划分的聚类方法 | 基于层次的聚类方法 | 基于密度的聚类方法 | 基于方格的聚类方法 | 基于模型的聚类方法 )(一)

简介: 【数据挖掘】聚类算法 简介 ( 基于划分的聚类方法 | 基于层次的聚类方法 | 基于密度的聚类方法 | 基于方格的聚类方法 | 基于模型的聚类方法 )(一)

I . 聚类主要算法


聚类主要算法 :



① 基于划分的聚类方法 : K-Means 方法 ;


② 基于层次的聚类方法 : Birch ;


③ 基于密度的聚类方法 : DBSCAN ( Density-Based Spatial Clustering of Applications with Noise ) ;


④ 基于方格的方法 ;


⑤ 基于模型的方法 : GMM 高斯混合模型 ;




II . 基于划分的聚类方法


基于划分的方法 简介 : 基于划分的方法 , 又叫基于距离的方法 , 基于相似度的方法 ;



① 概念 : 给定 n nn 个数据样本 , 使用划分方法 , 将数据构建成 k kk 个划分 ( k ≤ n ) (k \leq n)(k≤n) , 每个划分代表一个聚类 ;


② 分组 : 将数据集 分成 k kk 组 , 每个分组至少要有一个样本 ;


③ 分组与样本 对应关系 : 每个分组有 1 11 个或多个样本对象 ( 1 11 对多 ) , 每个对象同时只能在 1 11 个分组中 ( 1 11 对 1 11 ) ;


④ 硬聚类 与 软聚类 : 每个数据对象只能属于一个组 , 这种分组称为硬聚类 ; 软聚类每个对象可以属于不同的组 ;




III . 基于层次的聚类方法


1 . 基于层次的聚类方法 概念 : 将数 据集样本对象 排列成 树结构 , 称为 聚类树 , 在指定的层次 ( 步骤 ) 上切割数据集样本 , 切割后时刻的 聚类分组 就是 聚类算法的 聚类结果 ;



2 . 基于层次的聚类方法 : 一棵树可以从叶子节点到根节点 , 也可以从根节点到叶子节点 , 基于这两种顺序 , 衍生出两种方法分支 , 分别是 : 聚合层次聚类 , 划分层次聚类 ;



3 . 聚合层次聚类 ( 叶子节点到根节点 ) : 开始时 , 每个样本对象自己就是一个聚类 , 称为 原子聚类 , 然后根据这些样本之间的 相似性 , 将这些样本对象 ( 原子聚类 ) 进行 合并 ;


常用的聚类算法 : 大多数的基于层次聚类的方法 , 都是 聚合层次聚类 类型的 ; 这些方法从叶子节点到根节点 , 逐步合并的原理相同 ; 区别只是聚类间的相似性计算方式不同 ;



4 . 划分层次聚类 ( 根节点到叶子节点 ) : 开始时 , 整个数据集的样本在一个总的聚类中 , 然后根据样本之间的相似性 , 不停的切割 , 直到完成要求的聚类操作 ;



5 . 算法性能 : 基于层次的聚类方法的时间复杂度为 O ( N 2 ) O(N^2)O(N

2

) , 如果处理的样本数量较大 , 性能存在瓶颈 ;




IV . 聚合层次聚类 图示


1 . 聚合层次聚类 图示 :


image.png


① 初始状态 : 最左侧 五个 数据对象 , 每个都是一个聚类 ;


② 第一步 : 分析相似度 , 发现 a , b a , ba,b 相似度很高 , 将 { a , b } \{a ,b\}{a,b} 分到一个聚类中 ;


③ 第二步 : 分析相似度 , 发现 d , e d, ed,e 相似度很高 , 将 { d , e } \{d, e\}{d,e} 分到一个聚类中 ;


④ 第三步 : 分析相似度 , 发现 c cc 与 d , e d,ed,e 相似度很高 , 将 c cc 数据放入 { d , e } \{d, e\}{d,e} 聚类中 , 组成 { c , d , e } \{c,d, e\}{c,d,e} 聚类 ;


⑤ 第四步 : 分析相似度 , 此时要求的相似度很低就可以将不同的样本进行聚类 , 将前几步生成的两个聚类 , 合并成一个聚类 { a , b , c , d , e } \{a, b, c, d, e\}{a,b,c,d,e} ;



2 . 切割点说明 : 实际进行聚类分析时 , 不会将所有的步骤走完 , 这里提供四个切割点 , 聚类算法进行聚类时 , 可以在任何一个切割点停止 , 使用当前的聚类分组当做聚类结果 ;



① 切割点 1 11 : 在切割点 1 11 停止 , 会得到 5 55 个聚类分组 , { a } \{a\}{a} , { b } \{b\}{b}, { c } \{c\}{c}, { d } \{d\}{d} , { e } \{e\}{e} ;


② 切割点 2 22 : 在切割点 2 22 停止 , 会得到 4 44 个聚类分组 , { a , b } \{a, b\}{a,b} , { c } \{c\}{c}, { d } \{d\}{d} , { e } \{e\}{e} ;


③ 切割点 3 33 : 在切割点 3 33 停止 , 会得到 3 33 个聚类分组 , { a , b } \{a, b\}{a,b} , { c } \{c\}{c}, { d , e } \{d, e\}{d,e} ;


④ 切割点 4 44 : 在切割点 4 44 停止 , 会得到 2 22 个聚类分组 ; { a , b } \{a, b\}{a,b} , { c , d , e } \{c, d, e\}{c,d,e} ;


⑤ 走完整个流程 : 会得到 1 11 个聚类分组 , { a , b , c , d , e } \{a, b ,c, d, e\}{a,b,c,d,e} ;




V . 划分层次聚类 图示


1 . 划分层次聚类 图示 :

image.png




① 初始状态 : 最左侧 五个 数据对象 , 属于一个聚类 ;


② 第一步 : 分析相似度 , 切割聚类 , 将 { c , d , e } \{c,d, e\}{c,d,e} 与 { a , b } \{a ,b\}{a,b} 划分成两个聚类 ;


③ 第二步 : 分析相似度 , 将 { c , d , e } \{c,d, e\}{c,d,e} 中的 { c } \{c\}{c} 与 { d , e } \{d, e\}{d,e} 划分成两个聚类 ;


④ 第三步 : 分析相似度 , 将 { d , e } \{d, e\}{d,e} 拆分成 { d } \{d\}{d} 和 { e } \{e\}{e} 两个聚类 ;


⑤ 第四步 : 分析相似度 , 将 { a , b } \{a ,b\}{a,b} 拆分成 { a } \{a\}{a} 和 { b } \{b\}{b} 两个聚类 , 至此所有的数据对象都划分成了单独的聚类 ;



2 . 切割点说明 : 实际进行聚类分析时 , 不会将所有的步骤走完 , 这里提供四个切割点 , 聚类算法进行聚类时 , 可以在任何一个切割点停止 , 使用当前的聚类分组当做聚类结果 ;



① 切割点 1 11 : 在切割点 1 11 停止 , 会得到 1 11 个聚类分组 , { a , b , c , d , e } \{a, b ,c, d, e\}{a,b,c,d,e} ;


② 切割点 2 22 : 在切割点 2 22 停止 , 会得到 2 22 个聚类分组 ; { a , b } \{a, b\}{a,b} , { c , d , e } \{c, d, e\}{c,d,e} ;


③ 切割点 3 33 : 在切割点 3 33 停止 , 会得到 3 33 个聚类分组 , { a , b } \{a, b\}{a,b} , { c } \{c\}{c}, { d , e } \{d, e\}{d,e}$ ;


④ 切割点 4 44 : 在切割点 4 44 停止 , 会得到 4 44 个聚类分组 , { a , b } \{a, b\}{a,b} , { c } \{c\}{c}, { d } \{d\}{d} , { e } \{e\}{e} ;


⑤ 走完整个流程 : 会得到 5 55 个聚类分组 , { a } \{a\}{a} , { b } \{b\}{b}, { c } \{c\}{c}, { d } \{d\}{d} , { e } \{e\}{e} ;



目录
相关文章
|
6天前
|
算法
基于模糊PI控制算法的龙格库塔CSTR模型控制系统simulink建模与仿真
本项目基于MATLAB2022a,采用模糊PI控制算法结合龙格-库塔方法,对CSTR模型进行Simulink建模与仿真。通过模糊控制处理误差及变化率,实现精确控制。核心在于将模糊逻辑与经典数值方法融合,提升系统性能。
|
6天前
|
存储 算法
基于HMM隐马尔可夫模型的金融数据预测算法matlab仿真
本项目基于HMM模型实现金融数据预测,包括模型训练与预测两部分。在MATLAB2022A上运行,通过计算状态转移和观测概率预测未来值,并绘制了预测值、真实值及预测误差的对比图。HMM模型适用于金融市场的时间序列分析,能够有效捕捉隐藏状态及其转换规律,为金融预测提供有力工具。
|
1月前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
77 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
1月前
|
机器学习/深度学习 人工智能 算法
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
蔬菜识别系统,本系统使用Python作为主要编程语言,通过收集了8种常见的蔬菜图像数据集('土豆', '大白菜', '大葱', '莲藕', '菠菜', '西红柿', '韭菜', '黄瓜'),然后基于TensorFlow搭建卷积神经网络算法模型,通过多轮迭代训练最后得到一个识别精度较高的模型文件。在使用Django开发web网页端操作界面,实现用户上传一张蔬菜图片识别其名称。
79 0
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
|
1月前
|
机器学习/深度学习 人工智能 算法
青否数字人声音克隆算法升级,16个超真实直播声音模型免费送!
青否数字人的声音克隆算法全面升级,能够完美克隆真人的音调、语速、情感和呼吸。提供16种超真实的直播声音模型,支持3大AI直播类型和6大核心AIGC技术,60秒快速开播,助力商家轻松赚钱。AI讲品、互动和售卖功能强大,支持多平台直播,确保每场直播话术不重复,智能互动和真实感十足。新手小白也能轻松上手,有效规避违规风险。
|
1月前
|
分布式计算 Java 开发工具
阿里云MaxCompute-XGBoost on Spark 极限梯度提升算法的分布式训练与模型持久化oss的实现与代码浅析
本文介绍了XGBoost在MaxCompute+OSS架构下模型持久化遇到的问题及其解决方案。首先简要介绍了XGBoost的特点和应用场景,随后详细描述了客户在将XGBoost on Spark任务从HDFS迁移到OSS时遇到的异常情况。通过分析异常堆栈和源代码,发现使用的`nativeBooster.saveModel`方法不支持OSS路径,而使用`write.overwrite().save`方法则能成功保存模型。最后提供了完整的Scala代码示例、Maven配置和提交命令,帮助用户顺利迁移模型存储路径。
|
1月前
|
机器学习/深度学习 人工智能 算法
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
车辆车型识别,使用Python作为主要编程语言,通过收集多种车辆车型图像数据集,然后基于TensorFlow搭建卷积网络算法模型,并对数据集进行训练,最后得到一个识别精度较高的模型文件。再基于Django搭建web网页端操作界面,实现用户上传一张车辆图片识别其类型。
81 0
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
|
12天前
|
算法
基于WOA算法的SVDD参数寻优matlab仿真
该程序利用鲸鱼优化算法(WOA)对支持向量数据描述(SVDD)模型的参数进行优化,以提高数据分类的准确性。通过MATLAB2022A实现,展示了不同信噪比(SNR)下模型的分类误差。WOA通过模拟鲸鱼捕食行为,动态调整SVDD参数,如惩罚因子C和核函数参数γ,以寻找最优参数组合,增强模型的鲁棒性和泛化能力。
|
18天前
|
机器学习/深度学习 算法 Serverless
基于WOA-SVM的乳腺癌数据分类识别算法matlab仿真,对比BP神经网络和SVM
本项目利用鲸鱼优化算法(WOA)优化支持向量机(SVM)参数,针对乳腺癌早期诊断问题,通过MATLAB 2022a实现。核心代码包括参数初始化、目标函数计算、位置更新等步骤,并附有详细中文注释及操作视频。实验结果显示,WOA-SVM在提高分类精度和泛化能力方面表现出色,为乳腺癌的早期诊断提供了有效的技术支持。
|
6天前
|
机器学习/深度学习 算法 信息无障碍
基于GoogleNet深度学习网络的手语识别算法matlab仿真
本项目展示了基于GoogleNet的深度学习手语识别算法,使用Matlab2022a实现。通过卷积神经网络(CNN)识别手语手势,如"How are you"、"I am fine"、"I love you"等。核心在于Inception模块,通过多尺度处理和1x1卷积减少计算量,提高效率。项目附带完整代码及操作视频。