当前位置: 首页 > java >正文

人工智能系列(8)如何实现无监督学习聚类(使用竞争学习)?

案例:鸢尾花数据集的聚类

一.聚类简介

神经网络能够从输入数据中自动提取有意义的特征,而竞争学习规则使得单层神经网络能够根据相似度将输入样本进行聚类,每个聚类由一个输出神经元代表并作为该类别的“原型”,从而实现对输入模式的无监督分类与结构发现。

二.案例研究(Iris植物聚类)

i.问题陈述:

针对无法明确将数据集划分为三种鸢尾花类别的问题,设定目标为构建一个能够自主学习并完成聚类任务的智能无监督人工神经网络(ANN),选用竞争型神经网络(Competitive ANN)作为模型,并采用竞争学习(Competitive Learning)算法,使网络能够根据输入特征自动发现数据的内在类别结构并完成分类。

ii.数据集描述:

本实验数据集包含 150 个样本,分属 Setosa、Versicolor 和 Virginica 三种鸢尾花类别,每个样本由 4 个连续型特征描述,分别为萼片长度(4.3–7.9 cm)、萼片宽度(2.0–4.4 cm)、花瓣长度(1.0–6.9 cm)和花瓣宽度(0.1–2.5 cm),这些特征在数值范围和单位上存在差异,因此在模型训练前需进行归一化处理,以确保特征在聚类中的贡献均衡。

iii.测试理解问题:

本任务属于聚类应用,数据集规模为 150 个样本在 3 个类别上的共 450 条特征记录,每个样本包含 4 个变量(萼片长度、萼片宽度、花瓣长度、花瓣宽度),目标是将其划分为 Setosa、Versicolor 和 Virginica 三类,通过无监督聚类方法发现不同鸢尾花品种在特征空间中的分布规律与相似性结构。

三、核心概念与流程

1.数据准备

      i.数据归一化

欧几里得距离对特征数值范围非常敏感,如果某个特征的取值范围较大,就会在距离计算中占据主导地位,掩盖其他特征的作用;同时,不同特征可能存在不同的单位和量纲(如 cm、kg、秒),直接比较不公平。通过归一化,可以将所有特征转换到同一尺度(通常是 0 到 1 的比例数据),使它们在相似度计算中权重均衡,并加快模型的训练收敛速度。

      ii.数据划分(DATA PREPARATION)

在实验中,将 150 个样本随机划分为训练集和测试集,例如可分为训练集 100 个、测试集 50 个,或按 70:30、80:20 等比例进行分配,以便用于模型训练和效果评估。

2.网络结构(Iris 示例)

在该竞争学习网络中,输入层神经元数量等于特征数,即 4 个节点分别对应萼片长度、萼片宽度、花瓣长度和花瓣宽度;输出层神经元数量等于期望的聚类簇数,本例设置为 3 个神经元分别代表三种鸢尾花类别;权重矩阵的维度为 4×3,即每个输出神经元都关联一个 4 维权重向量,用于表征该类别在特征空间中的“原型”位置,并在训练过程中不断调整以贴近该簇样本的特征分布。

3.初始化

训练初期将网络权重初始化为较小的随机值(如在 [0,1] 区间或依据输入特征范围生成),并在训练过程中定期记录权重变化,例如比较初始权重、迭代 100 次后的权重以及 2000 次后的权重,以观察网络收敛过程和权重逐步贴近各类别特征分布的趋势。

4.激活与匹配(找 Winner)

使用 欧氏距离(Euclidean distance) 作为匹配准则:对每个输出单元 j计算, 选择距离最小者作为胜出神经元(BMU)。

5.权重更新

    对胜出神经元的权重按下式更新:

     

    α是学习率,控制更新幅度;Λj(p)是邻域函数;

    6.重复训练直至收敛

    由于无监督学习中没有可直接监控的标签误差,本例采用欧氏距离准则或“权重变化不再显著”作为收敛判据,即当权重向量在多次迭代后变化幅度极小即可视为收敛。

    7.簇标注(Labelling 输出神经元)

    在无监督聚类中,输出单元本身没有预设类标签,因此常用的方法是在训练完成后利用带标签的测试集进行“投票”标注,即统计每个输出单元在测试集中最常赢得的真实类别,将该单元标记为该类别,从而实现输出神经元与具体类别的对应关系。

    http://www.xdnf.cn/news/17546.html

    相关文章:

  1. 1. 电阻选型
  2. 计算机网络:如何理解目的网络不再是一个完整的分类网络
  3. mpv core_thread pipeline
  4. jmeter常规压测【读取csv文件】
  5. 北京JAVA基础面试30天打卡06
  6. Vulhub靶场组件漏洞(XStream,fastjson,Jackson)
  7. 北京天津廊坊唐山打捞失物日记
  8. 双非二本如何找工作?
  9. jxWebUI--按钮
  10. 黑马SpringBoot+Elasticsearch作业2实战:商品搜索与竞价排名功能实现
  11. 【RocketMQ 生产者和消费者】- ConsumeMessageConcurrentlyService 并发消费消息
  12. socket编程中系统调用send()详细讲解
  13. MySQL自增ID与UUID的区别及其在索引分裂中的表现与优化
  14. 七、CV_模型微调
  15. 通过sealos工具在ubuntu 24.02上安装k8s集群
  16. DevOps:从GitLab .gitlab-ci.yml 配置文件到CI/CD
  17. 第十五讲:set和map
  18. WebAssembly技术详解:从浏览器到云原生的高性能革命
  19. 本地WSL部署接入 whisper + ollama qwen3:14b 总结字幕增加利用 Whisper 分段信息,全新 Prompt功能
  20. 国内外主流大模型深度体验与横向评测:技术、场景与未来展望
  21. 生产工具革命:定制开发开源AI智能名片S2B2C商城小程序重构商业生态的范式研究
  22. 密码学的数学基础2-Paillier为什么产生密钥对比RSA慢
  23. 基于django的宠物用品购物商城的设计与实现
  24. Windows安装MySql8.0
  25. docker等基础工具使用
  26. Linux810 shell 条件判断 文件工具 ifelse
  27. 基于多链路智能SD-WAN的船舶智能监控系统安全等级保护实施方案
  28. 【工具变量】地市人力资本水平数据集(2003-2023年)
  29. 【密码学】7. 数字签名
  30. 四、RuoYi-Cloud-Plus 部署时nacos配置服务启动