机器学习-聚类分析算法

机器学习-聚类分析算法

一、聚类分析的定义

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

二、聚类和分类的区别

(一)学习方式

• 聚类

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

• 分类

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

(二)目标

• 聚类

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

• 分类

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

(三)评估方式

• 聚类

• 内部评估指标:聚类的评估通常使用内部指标,如轮廓系数(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,直到划分情况保持不变或达到设定最大重复步数:继续迭代直到质心不再变化或达到最大迭代次数。

Read more

【2024最全Seedance 2.0解析】:基于17篇顶会论文+3家AIGC大厂内部技术文档的架构逆向推演

第一章:Seedance 2.0 双分支扩散变换器架构解析 Seedance 2.0 是面向高保真视频生成任务设计的新型双分支扩散变换器(Dual-Branch Diffusion Transformer),其核心创新在于解耦时空建模路径:一条分支专注帧内空间语义重建,另一条分支显式建模跨帧时序动态。该架构摒弃了传统单流Transformer对时空维度的粗粒度联合编码,转而通过协同门控机制实现分支间细粒度特征对齐。 双分支协同机制 空间分支采用分层ViT结构,以16×16 patch嵌入输入,逐级下采样并保留局部细节;时间分支则将同一空间位置在多帧中的token沿时间轴堆叠,经轻量级时序注意力模块处理。两分支输出通过Cross-Gating Fusion(CGF)模块融合,其门控权重由共享的上下文感知投影器动态生成。 关键组件实现 class CrossGatingFusion(nn.Module): def __init__(self, dim): super().__init__() self.proj_s = nn.Linear(dim, dim) # 空间分支门控投影

By Ne0inhk

TRAE vs Qoder vs Cursor vs GitHub Copilot:谁才是真正的“AI 工程师”?

引言:工具选择 = 成本 + 效率 + 风险 的综合权衡 2026 年,AI 编程工具已从“玩具”走向“生产主力”。但面对 TRAE、Qoder、Cursor、GitHub Copilot 等选项,开发者不仅要问: * 它能写 Rust 吗?支持中文需求吗? * 更要问:一个月多少钱?团队用得起吗?代码安全有保障吗? 本文将从 五大核心维度 深度剖析四大主流 AI IDE: 1. 核心理念与自主性 2. 多语言与跨生态支持能力 3. 工程化与交付闭环能力 4. 中文本地化与业务适配 5. 收费模式、定价策略与企业成本 帮你做出技术可行、经济合理、风险可控的决策。 一、核心理念:

By Ne0inhk
一文看懂:AI编程工具深度对比:Cursor、Copilot、Trae与Claude Code

一文看懂:AI编程工具深度对比:Cursor、Copilot、Trae与Claude Code

AI编程工具深度对比:Cursor、Copilot、Trae与Claude Code 引言 在人工智能技术蓬勃发展的今天,AI编程工具已成为开发者提高效率的重要助手。从早期的代码补全插件到如今能够理解整个代码库的智能助手,AI编程工具正在不断进化。本文将对当前主流的AI编程工具——Cursor、GitHub Copilot、Trae和Claude Code进行全面对比,帮助开发者选择最适合自己的工具。 主流AI编程工具概述 Cursor Cursor是一款基于VSCode的AI驱动代码编辑器,它最大的特点是能够理解整个代码库的上下文,提供智能的代码补全和重构建议。Cursor默认使用Claude-3.5-Sonnet模型,即使是OpenAI投资的公司,也选择了Claude模型作为默认选项,这足以说明其在代码生成领域的优势。 GitHub Copilot GitHub Copilot是由GitHub与OpenAI合作开发的AI编码助手,集成在VSCode、Visual Studio等主流编辑器中。它基于OpenAI的模型,能够根据注释和上下文自动生成代码,是AI编程工具

By Ne0inhk

【GitHub项目推荐--开源游戏列表】

Trilarion/opensourcegames: Technical infos of open source games. 网站地址:OSGL OSGL(开源游戏列表)是一份开源游戏、游戏框架和游戏制作工具的列表。这些项目至少处于测试阶段,代码基础会构建成可执行演示。代码必须属于自由开源软件(FOSS)允许他人修改和分享的许可。每条条目都会收集相关信息,包括 代码仓库、下载功能和构建说明。 游戏 (1801)- 工具 (49)- 框架 (66)- 库 (16) 按类别分类: 动作 (357)、 冒险 (66)、 街机 (221)、 棋盘 (28)、 卡牌 (26)、 教育(14)、 框架 (66)、 游戏引擎

By Ne0inhk