机器学习-聚类分析算法

article/2025/8/14 21:00:29

一、聚类分析的定义

聚类分析是一种无监督学习的统计分析方法。它的主要目的是将一个数据集中的样本(或观测值)按照某种相似性或距离度量划分成若干个类别(簇)。在聚类过程中,同一个簇内的样本具有较高的相似性,而不同簇之间的样本相似性较低。例如,在市场细分中,企业可以利用聚类分析将消费者划分为不同的群体,每个群体内的消费者在消费习惯、偏好等方面相似,而不同群体之间存在明显差异。

二、聚类和分类的区别

(一)学习方式

• 聚类

• 无监督学习:聚类分析不需要预先定义的类别标签。在聚类过程中,算法自己通过数据的内在结构来发现数据的分组模式。例如,在对文本数据进行聚类时,没有事先告诉算法每篇文本属于哪个主题类别,算法通过分析文本内容的相似性(如词语的共现频率等)来将文本分成不同的簇,每个簇可能对应一个主题。

• 分类

• 有监督学习:分类任务需要有标记的训练数据。这些数据已经明确地标注了每个样本所属的类别。算法通过学习这些已标记数据的特征和类别之间的关系来构建分类模型。例如,在垃圾邮件识别中,训练数据包含已经被标记为“垃圾邮件”或“非垃圾邮件”的邮件样本。分类算法会根据这些标记好的样本学习如何区分垃圾邮件和正常邮件,然后用这个模型去预测新的、未标记的邮件是否为垃圾邮件。

(二)目标

• 聚类

• 发现数据内在结构:聚类的目标是探索数据中隐藏的模式和结构,将数据划分为自然的簇。这些簇的划分可以帮助我们更好地理解数据的分布情况。比如在基因数据分析中,聚类可以将具有相似基因表达模式的样本聚集在一起,从而发现可能具有相似生物学功能的基因簇。

• 分类

• 预测类别:分类的目标是根据已有的类别标签,建立一个模型来预测新数据的类别。它侧重于对未知数据进行准确的类别划分。例如,在医学诊断中,通过分类模型可以根据患者的症状、检查结果等特征来判断患者是否患有某种疾病,这里的疾病类型就是已知的类别。

(三)评估方式

• 聚类

• 内部评估指标:聚类的评估通常使用内部指标,如轮廓系数(Silhouette Coefficient)。轮廓系数综合考虑了簇内紧密度和簇间分离度。一个较高的轮廓系数值(接近1)表示聚类效果较好,簇内的样本紧密聚集,不同簇之间的样本分离得较好。还有戴维斯-本丁指数(Davies-Bouldin Index)等指标,这些指标主要用于衡量聚类结果的质量,但不依赖于外部的类别标签。

• 外部评估指标(如果有真实标签):在某些情况下,如果数据集有真实的类别标签(虽然聚类本身不使用这些标签),也可以使用外部评估指标来评估聚类效果。例如,调整兰德指数(Adjusted Rand Index)可以比较聚类结果和真实类别标签之间的相似性。不过,这并不是聚类评估的主要方式,因为聚类本身是无监督的。

• 分类

• 准确率、召回率、F1-score等指标:分类的评估主要依赖于准确率(Accuracy)、召回率(Recall)、精确率(Precision)、F1-score等指标。准确率是正确分类的样本数占总样本数的比例;召回率是正确识别为正类的样本数占实际正类样本数的比例;精确率是正确识别为正类的样本数占识别为正类的样本数的比例。这些指标都是基于已知的类别标签来衡量分类模型的性能。例如,在一个二分类问题中,如果模型对正类的召回率很高,说明模型能够很好地识别出正类样本,但精确率低可能意味着模型会将很多负类样本错误地识别为正类。

三、聚类分析的几种常见算法分类:

1. 划分法(Partitioning Method):

例如K-Means算法。这种方法首先确定要将数据分成几类,然后选择几个点作为初始中心点,接着根据某种算法迭代调整数据点的位置,直到达到“类内点足够近,类间点足够远”的效果。

2. 层次法(Hierarchical Method):

这种方法试图在不同层次上对数据集进行划分,从而形成树形的聚类结构。

3. 基于密度的方法(Density-based Method):

例如DBSCAN算法。这种方法通过将高密度的邻近点连接起来,判断为同类。

4. 基于网格的方法(Grid-based Method):

这种方法将数据空间划分为网格单元,将数据对象映射到网格单元中,并计算每个单元的密度。根据预设的阈值判断每个网格单元是否为高密度单元,密度足够大的网格单元形成簇。

5. 基于模型的方法(Model-Based Method):

例如GMM(高斯混合模型)、SOM(自组织映射)。这种方法为每簇假定了一个模型,寻找数据对给定模型的最佳拟合。

 四、算法举例

定义:K-Means 算法将 n 个数据点 X = {x_1, x_2, ...} 划分为 K 个互不相交的簇 C = {C_1, C_2, ..., C_k} ,满足 :

 

 目标:使得每个点到所属类的中心的总距离最小,即最小化簇内平方和(WCSS):

 其中,

 是簇 C_i 的质心。

1. 随机选取 k 个点作为聚类中心:这些点可以是任意选择的,也可以通过特定的方法(如 K-Means++)来优化选择。

2. 根据欧式距离函数将数据划分到与其最接近的聚类中心所在的簇:计算每个数据点到各个质心的距离,并将数据点分配到最近的质心。

3. 计算每个簇所有数据的平均值,并将其作为新的聚类中心:更新质心位置。

4. 重复步骤 2 和 3,直到划分情况保持不变或达到设定最大重复步数:继续迭代直到质心不再变化或达到最大迭代次数。

 


http://www.hkcw.cn/article/PYoNbmEoDR.shtml

相关文章

LeetCode 热题 100 回顾

目录 一、哈希部分 1.两数之和 (简单) 2.字母异位词分组 (中等) 3.最长连续序列 (中等) 二、双指针部分 4.移动零 (简单) 5.盛最多水的容器 (中等) 6. 三数之和 (中等) 7.接雨水 (困难) 三、滑动窗口 8.无重复字符的最长子串 (中等) 9.找到字符串中…

人脸识别-特征算法

文章目录 一、LBPH算法1.基本原理2.实现步骤3.代码实现 二、Eigenfaces算法1.特点2.代码实习 三、FisherFaces算法1.算法原理2.算法特点3.代码实现 四、总结 人脸识别特征识别器是数字信息发展中的一种生物特征识别技术,其核心在于通过特定的算法和技术手段&#xf…

【数据结构】排序算法---计数排序(动图演示)

文章目录 1. 定义2. 算法步骤3. 动图演示4. 性质5. 算法分析6. 代码实现C语言PythonJavaGo 结语 1. 定义 计数排序又称为鸽巢原理,是对哈希直接定址法的变形应用。计数排序不是基于比较的排序算法,其核心在于将输入的数据值转化为键存储在额外开辟的数组…

【优选算法 | 哈希表】常见算法题的哈希表套路拆解

算法相关知识点可以通过点击以下链接进行学习一起加油!双指针滑动窗口二分查找前缀和位运算模拟链表 在刷题的过程中,我们会频繁遇到一些“高频套路”——而哈希表正是其中最常用也最高效的工具之一。它能帮助我们在 O(1) 的时间复杂度内完成查找、插入与…

数据结构《排序》

在之前数据结构之算法复杂度章节中我们学习了复杂度相关的概念,这就使得懂得如何来区分算法的好坏,在之前C语言专题中在指针的学习时我们了解了冒泡排序,之后再数据结构的二叉树章节中我们又学习了堆排序,其实排序不止这两种&…

TSP-旅行商问题(基于动态规划或蚁群算法求解)

1. TSP问题 旅行商问题(Travelling salesman problem, TSP)是运筹学和理论计算机科学中经典的问题.具体问题如下:给定一系列城市和每对城市之间的距离,求解访问每座城市一次并回到起始城市的最短回路. 2. 动态规划 本节参考旅行商问题(动态规划) 2.1 理论介绍 假设节点数…

【算法与数据结构】深入解析二叉树(二)之堆结构实现

文章目录 📝二叉树的顺序结构及实现🌠 二叉树的顺序结构🌠 堆的实现🌠 堆的实现🌉堆向下调整算法🌉堆的创建🌉建堆时间复杂度🌉堆的插入🌉堆的删除 🌠堆向上调…

【leetcode】优先级队列的两种妙用:词频统计与动态中位数(附代码模板)

前言 🌟🌟本期讲解关于力扣的几篇题解的详细介绍~~~ 🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-CSDN博客 🔥 你的点赞就是小编不断更新的最大动力 🎆那么废话不…

【算法学习】哈希表篇:哈希表的使用场景和使用方法

算法学习: https://blog.csdn.net/2301_80220607/category_12922080.html?spm1001.2014.3001.5482 前言: 在之前学习数据结构时我们就学习了哈希表的使用方法,这里我们主要是针对哈希表的做题方法进行讲解,都是leetcode上的经典…

HDFS详解

一、HDFS 概述 定位与特点 分布式文件系统:HDFS(Hadoop Distributed File System)是 Hadoop 生态的核心组件,专为海量数据存储和批处理设计。 核心设计原则: 高容错性:数据自动多副本冗余,支持…

【数据结构】String字符串的存储

目录 一、存储结构 1.字符串常量池 2.字符串哈希表 2.1结构 2.2基础存储单位 2.2.1键对象 2.2.2值对象 二、存储过程 1.搜索 2.创建 三、存储位置 四、存储操作 1.new新建 2.intern入池 这是String类的详解:String类变量 一、存储结构 1.字符串常量池…

数据结构大作业——家谱管理系统(超详细!完整代码!)

目录 设计思路: 一、项目背景 二、功能分析 查询功能流程图: 管理功能流程图: 三、设计 四、实现 代码实现: 头文件 结构体 函数声明及定义 创建家谱树头结点 绘制家谱树(打印) 建立右兄弟…

北京将有7级大风小冰雹 雷电蓝色预警发布

6月1日17时50分,北京发布雷电蓝色预警,预计当天20时至次日2时,自西向东将有雷阵雨天气,局地短时雨强较大,并伴有7级左右短时大风和小冰雹,请注意防范。明天上午至中午前后依旧会出现分散性雷阵雨,雨量总体不大。午后至前半夜北风增强,阵风明显,外出时请做好防风措施,…

专家:印太战略实质是霸权工具 不会得逞

针对美国防长赫格塞思在香格里拉对话会上涉及中国的部分表态,有中国学者指出,美国所谓的“印太战略”实质上是霸权工具,不会得逞。在对话会上,赫格塞思再次提到所谓的“印太战略”,并呼吁亚太地区同盟国和合作伙伴国与美国一起构筑更现实的战略关系。国防大学教授孟祥青表…

SCNN(Spatial CNN) 模型学习记录

目录 1.模型架构 2.核心模块SCNN_*分析 SCNN(Spatial As Deep: Spatial CNN for Traffic Lane Detection)是一种专为交通车道线检测任务设计的深度神经网络架构,由中国科学院计算技术研究所提出,旨在在语义分割框架中增强空间信…

Lerobot框架使用(含本地数据训练)

本文包含从安装环境到完整使用Lerobot框架进行算法复现全流程。 A Install LeRobot 安装miniconda管理python环境 Linux mkdir -p ~/miniconda3 wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh bash ~/minicon…

小红书 web x-s x-t X-Mns 分析

声明: 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 逆向分析 cp execjs.compile(open(v…

国产化中间件基本使用_东方通(TongWeb7.0.E.6_P2)

tongweb开发操作文档 1、前期准备 进入官网申请使用,官网地址:https://www.tongtech.com 若提供的安装程序的授权文件已过期,请去官方网站重新申请。 2、安装部署 2.1、下载安装Tongweb 进入官网申请试用,官方会提供响应的嵌入式安装包及试用授权证书(3个月) 申请…

010302-oss_反向代理_负载均衡-web扩展2-基础入门-网络安全

文章目录 1 OSS1.1 什么是 OSS 存储?1.2 OSS 核心功能1.3 OSS 的优势1.4 典型使用场景1.5 如何接入 OSS?1.6 注意事项1.7 cloudreve实战演示1.7.1 配置cloudreve连接阿里云oss1.7.2 常见错误1.7.3 安全测试影响 2 反向代理2.1 正向代理和反向代理2.2 演示…

FREERTOS+LWIP+IAP实现TCP、HTTP、网页访问并固件升级、更新配置 (三)lwip实现httpd服务并在web访问

前言 在前两篇文章中配置freeRTOS和,并实现了TCP、UDP的通信协议,现在终于轮到重头戏lwip的httpd服务,LWIP官方例程中是有很多自带的网页的,但是远远不够满足实际项目的使用需求,因此我也是踩了很多坑,从前…