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

(转载)基于遗传模拟退火的聚类算法(matlab实现)

1 理论基础

1.1 模糊聚类分析

        模糊聚类是目前知识发现以及模式识别等诸多领域中的重要研究分支之一。随着研究范围的拓展,不管是科学研究还是实际应用,都对聚类的结果从多方面提出了更高的要求。模糊C-均值聚类(FCM)是目前比较流行的一种聚类方法。该方法使用了在欧几里得空间确定数据点的几何贴近度的概念,它将这些数据分配到不同的聚类,然后确定这些聚类之间的距离。模糊C-均值聚类算法在理论和应用上都为其他的模糊聚类分析方法奠定了基础,应用也最广泛。但是,从本质上FCM算法是一种局部搜索优化算法,如果初始值选择不当,它就会收敛到局部极小点上。因此,FCM算法的这一缺点限制了人们对它的使用。

1.2 模拟退火算法

        Metropolis等人于1953年提出了模拟退火算法(SA),其基本思想是把某类优化问题的求解过程与统计热力学中的热平衡问题进行对比,固体退火过程的物理图像和统计性质是模拟退火算法的物理背景,Metropolis接受准则使算法跳离局部最优的“陷阱”,而冷却进度表的合理选择是算法应用的前提。固体退火是先将固体加热至熔化,然后徐徐冷却使之凝固成规整晶体的热力学过程。从统计物理学的观点看,随着温度的降低,物质的能量将逐渐趋近于一个较低的状态,并最终达到某种平衡。

1.3 遗传算法

        遗传算法(GA)的主要思想是基于达尔文的生物进化论和孟德尔的遗传学。遗传算法结合了达尔文的适者生存和随机交换理论,是一种自然进化系统的计算模型,也是一种通用的求解优化问题的适应性搜索方法。遗传算法在运行早期个体差异较大,当采用经典的轮盘赌方式选择时,后代产生的个数与父个体适应度大小成正比,因此在早期容易使个别好的个体的后代充斥整个种群,造成早熟。在遗传算法后期,适应度趋向一致,优秀的个体在产生后代时,优势不明显,从而使整个种群进化停滞不前。因此对适应度适当地进行拉伸是必要的,这样在温度高时(遗传算法的前期),适应度相近的个体产生后代的概率相近;而当温度不断下降后,拉伸作用加强,使适应度相近的个体适应度差异放大,从而使得优秀个体的优势更明显。
        本文将模拟退火算法与遗传算法相结合(SAGA)用于聚类分析,由于模拟退火算法和遗传算法可以互相取长补短,因此有效地克服了传统遗传算法的早熟现象,同时根据聚类问题的具体情况设计遗传编码方式及适应度函数,使该算法更有效、更快速地收敛到全局最优解。

2 案例背景

2.1 问题描述

        本章将SAGA作用于随机产生的数据进行实验。数据由400个二维平面上的点组成,这些
点构成4个集合,但彼此之间并没有明显的界限,数据如图1所示。通过使用单纯的FCM聚类和SAGA优化初始聚类中心点后的FCM聚类来说明SAGA优势。

2.2 解题思路及步骤

1.模糊C-均值聚类算法(FCM)
        设n个数据样本为X={x1,x2,…,xn}, c(2≤c≤n)是要将数据样本分成的类型的数目,{A1, A2, …, An}表示相应的c个类别,U是其相似分类矩阵,各类别的聚类中心为{v1,v2,…,vc},μk(xi)是样本xi对于类Ak的隶属度(简写为μk)。则目标函数Jb可以用下式表达:

        用式(20-3)和式(20-4)反复修改聚类中心、数据隶属度和进行分类,当算法收敛时,理论上就得到了各类的聚类中心以及各个样本对于各模式类的隶属度,从而完成了模糊聚类划分。尽管FCM有很高的搜索速度,但FCM是一种局部搜索算法,且对聚类中心的初值十分敏感,如果初值选择不当,它会收敛到局部极小点。
        2.模拟退火算法实现
        模拟退火算法于1983年成功地应用在组合优化的问题上,其思想是通过模拟高温物体退火过程找到优化问题的全局最优或近似全局最优解。首先产生一个初始解作为当前解,然后在当前解的邻域中,以概率P(T)选择一个非局部最优解,并令这个解再重复下去,从而保证不会陷入局部最优。开始时允许随着参数的调整,目标函数偶尔向增加的方向发展(对应于能量有时上升),以利于跳出局部极小区域。随着假想温度的降低(对应于物体的退火),系统活动性降低,最终以概率1稳定在全局最小区域。模拟退火算法描述如下:
        3.遗传算法实现
        遗传算法部分直接使用Sheffield遗传算法工具箱相关函数实现。
        (1)编码方式:遗传聚类算法中,待优化的参数是c个初始聚类中心,这里使用二进制编码,每条染色体由c个聚类中心组成,对于m维的样本向量,待优化的变量数为c×m。假定每个变量使用k位二进制编码,则染色体为长度是c×m×k的二进制码串。
        (2)适应度函数:衡量个体优劣的尺度是适应度函数,其作用类似于自然界中生物适应环境能力的度量。每个个体以式(20-1)得出的Jb为目标函数,Jb越小,个体的适应度值就越高。因此,适应度函数采用排序的适应度分配函数:FintV=ranking(Jb)。
        (3)选择算子:选择算子采用随机遍历抽样(sus)。
        (4)交叉算子:交叉算子采用最简单的单点交叉算子。
        (5)变异算子:以一定概率产生变异基因数,用随机方法选出发生变异的基因。如果所选的基因的编码为1,则变为0;反之则变为1。
        4.算法流程
        基于模拟退火遗传算法的模糊C-均值聚类,其过程如图2所示。
  

3 MATLAB程序实现

完整代码如下:

基于遗传模拟退火的聚类算法(matlab实现)资源-CSDN文库

4.结果分析

        运行之后得到结果:J,=3.3035,多次运行得到的结果均一致。聚类后的图如图3所示,其中三角形为各类的聚类中心点。

 

        SAGA优化后的FCM聚类Jb=3.3035,每次都能得到最优目标函数值。当数据量较大时,SAGA的优越性更加明显。其主要原因是单纯的FCM在处理大规模数据时,更加容易收敛到局部最优解,而将遗传算法与模拟退火算法相结合形成一种混合算法后,可以有效地克服收敛到局部最优解的情况。

总结

        FCM算法是一种局部搜索优化算法,如果初始值选择不当,它就会收敛到局部极小点上。FCM算法的这一缺点限制了人们对它的使用。本章将模拟退火算法与遗传算法相结合,然后用于模糊C-均值聚类,利用模拟退火算法较强的局部搜索能力和遗传算法较强的全局搜索能力,可以有效、快速地解决聚类问题。

 

相关文章:

(转载)基于遗传模拟退火的聚类算法(matlab实现)

1 理论基础 1.1 模糊聚类分析 模糊聚类是目前知识发现以及模式识别等诸多领域中的重要研究分支之一。随着研究范围的拓展,不管是科学研究还是实际应用,都对聚类的结果从多方面提出了更高的要求。模糊C-均值聚类(FCM)是目前比较流行的一种聚类方法。该…...

【C++】struct 和 class 的区别

欢迎来到博主 Apeiron 的博客,祝您旅程愉快。时止则止,时行则行。动静不失其时,其道光明。 目录 1、缘起 2、示例代码 3、总结 1、缘起 在 C 中,struct 和 class 唯一的区别就在于 默认的访问权限不同。区别如下: …...

活动笔记丨物业行业人效提升与灵活用工新路径

近日,盖雅工场成功举办物业行业人效提升专场交流,来自广深地区央企和民营的领先物业企业和现场服务业的多位代表齐聚深圳招商积余大厦,共同研讨行业人效提升的挑战和实践。 本次闭门交流会聚焦于人效提升,讨论话题包括各自企业在人…...

学习笔记:吴恩达ChatGPT提示工程

以下为个人笔记,原课程网址Short Courses | Learn Generative AI from DeepLearning.AI 01 Introduction 1.1 基础LLM 输入 从前有一只独角兽,输出 它和其他独角兽朋友一起住在森林里输入 法国的首都在哪?输出 法国的首都在哪&#xf…...

POI in Action

POI 组件依赖 按需引入对应依赖 (给出官方的指引) 组件作用Maven依赖POIFSOLE2 FilesystempoiHPSFOLE2 Property SetspoiHSSFExcel XLSpoiHSLFPowerPoint PPTpoi-scratchpadHWPFWord DOCpoi-scratchpadHDGFVisio VSDpoi-scratchpadHPBFPublisher PUBpoi-scratchpadHSMFOutloo…...

苹果Vision Pro将引爆人机交互的重大变革

2023年6月6日,苹果发布了大家期待已久的Vision Pro,Vision Pro是一款专业级MR设备,融合了虚拟现实(VR)和增强现实(AR)技术,可以让用户完全沉浸在高分辨率显示内容中。允许用户以一种全新的方式在其周围的空间中查看APP。用户可以用…...

MMDetection学习记录(二)之配置文件

文件结构 config文件 在 config_base_ 文件夹下有 4 个基本组件类型,分别是:数据集(dataset),模型(model),训练策略(schedule)和运行时的默认设置(default runtime)。 命名风格 {model}_[model setting]_{backbone}_{neck}_[no…...

Python数据分析:NumPy、Pandas和Matplotlib的使用和实践

在现代数据分析领域中,Python已成为最受欢迎的编程语言之一。Python通过庞大的社区和出色的库支持,成为了数据科学家和分析师的首选语言。在Python的库中,NumPy、Pandas和Matplotlib是三个最为重要的库,它们分别用于处理数值数组、…...

实习生面试问题及回答记录

文章目录 文章简介技术类1、DFS和BFS算法的区别是什么?2、解释一下什么是快速排序?3、 如果让你写一个排序算法?你会怎么写?(大概说出代码的思路)4、解释一下二分查找的具体逻辑?5、在代码的数据…...

设计模式(十):结构型之外观模式

设计模式系列文章 设计模式(一):创建型之单例模式 设计模式(二、三):创建型之工厂方法和抽象工厂模式 设计模式(四):创建型之原型模式 设计模式(五):创建型之建造者模式 设计模式(六):结构型之代理模式 设计模式…...

买法拍房需要注意什么

法拍房,由于其价格亲民、房屋信息透明度高、竞拍过程公平公正而受到越来越多的人开始关注。但是其中又有着许多的风险及相关的注意事项。那么,如何做到成功“捡漏”,买法拍房需要注意什么呢? 买法拍房需要注意什么 1、隐藏的各种收费 税费&a…...

linux命令输出结果但不显示在屏幕上的通用办法

linux命令输出结果但不显示在屏幕上的通用办法 这个针对于我这种小白马大哈很简单的一个命令,记给自己备用 举个例子:unzip命令不输出结果 unzip xx.zip > /dev/null 2>&1 unzip xx.zip > /dev/null 前半部分是将标准输出重定向到空设备&a…...

【Linux系统进阶详解】Linux字符权限rwx-权限组合原理,对应类型ugo,user,group,other,+-=详解及权限管理实战

在Linux系统中,每个文件和目录都有三种权限:读权限(r)、写权限(w)和执行权限(x)。这些权限可以被分配给三个不同的用户组:用户(user)、组(group)和其他人(other)。此外,权限可以使用“+”、“-”和“=”符号进行修改。 权限组合原理 Linux系统中的权限由字母…...

凡人修C传——专栏从凡人到成仙系列目录

这里先感谢博主THUNDER王给我提出来的一个创作建议,让我有了创作的灵感来创建这一篇博客以及凡人修C传这一个系列的文章。 本文最主要的目的就是给大家一个凡人修C传的一个目录,让大家更加容易学到自己想学的地方。 📝【个人主页】&#xff1…...

隐藏python代码,售卖并保护源代码

我写了一个基于pytorch框架的特殊卷积,他的使用方式和其他的卷积一样,但是我想把它卖出去,希望隐藏特殊卷积的代码 1、如果您希望隐藏特殊卷积的代码并将其作为一个可售卖的产品,可以考虑以下几种方法来保护您的代码:…...

Material—— VAT(Houdini To UE)

目录 一,介绍 二,柔体 二,刚体 一,介绍 VAT是将动画数据存储在纹理中,通过GPU运算来实现动画的技术;VAT纹理包含每个顶点在不同帧的位置信息,而每个像素代表一个顶点在某个时间点的位置&…...

视频后期剪辑

文章目录 后期剪辑软件三方插件提供动画制作软件 后期剪辑软件 视频剪辑后期处理涉及到多个软件和插件,下面是对其中几个主要软件及其相关插件的扩展介绍,以及为它们提供插件的一些知名第三方公司。 Adobe After Effects: Adobe After Effec…...

Python3+Selenium2完整的自动化测试实现之旅(七):完整的轻量级自动化框架实现

一、前言 前面系列Python3Selenium2自动化系列博文,陆陆续续总结了自动化环境最基础环境的搭建、IE和Chrome浏览器驱动配置、selenium下的webdriver模块提供的元素定位和操作鼠标、键盘、警示框、浏览器cookie、多窗口切换等场景的方法、web自动化测试框架、python面…...

泰山信息科技5周年:无尽的感恩,非常非常的惋惜

去年的时候,庆贺4周年,公司员工一起去某个地方玩(确实没吃到什么东西)。这是当时的情形: 因为各种原因,今年3月无锡研发基地解散。作为技术总监,我是非常非常的惋惜。因为我真的想把泰山OFFICE做…...

LabVIEW编程开发PCB测试仪

LabVIEW编程开发PCB测试仪 使用PXI和LabVIEW的PCB钉床测试仪 用于PCB(印刷电路板)的钉床测试仪,使用PXI和LabVIEW。一家电子制造公司需要测试仪来测试他们的PCB产品。钉床测试仪是一种具有连接到电路板上各个测试点的引脚的测试。电路板需要…...

css实现圆环展示百分比,根据值动态展示所占比例

代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢&#xff0c;博主的学习进度也是步入了Java Mybatis 框架&#xff0c;目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学&#xff0c;希望能对大家有所帮助&#xff0c;也特别欢迎大家指点不足之处&#xff0c;小生很乐意接受正确的建议&…...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器&#xff0c;可以帮助网站应对分布式拒绝服务攻击&#xff0c;有效识别和清理一些恶意的网络流量&#xff0c;为用户提供安全且稳定的网络环境&#xff0c;那么&#xff0c;高防服务器一般都可以抵御哪些网络攻击呢&#xff1f;下面…...

AspectJ 在 Android 中的完整使用指南

一、环境配置&#xff08;Gradle 7.0 适配&#xff09; 1. 项目级 build.gradle // 注意&#xff1a;沪江插件已停更&#xff0c;推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

企业如何增强终端安全?

在数字化转型加速的今天&#xff0c;企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机&#xff0c;到工厂里的物联网设备、智能传感器&#xff0c;这些终端构成了企业与外部世界连接的 “神经末梢”。然而&#xff0c;随着远程办公的常态化和设备接入的爆炸式…...

蓝桥杯 冶炼金属

原题目链接 &#x1f527; 冶炼金属转换率推测题解 &#x1f4dc; 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V&#xff0c;是一个正整数&#xff0c;表示每 V V V 个普通金属 O O O 可以冶炼出 …...

视觉slam十四讲实践部分记录——ch2、ch3

ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...

Web后端基础(基础知识)

BS架构&#xff1a;Browser/Server&#xff0c;浏览器/服务器架构模式。客户端只需要浏览器&#xff0c;应用程序的逻辑和数据都存储在服务端。 优点&#xff1a;维护方便缺点&#xff1a;体验一般 CS架构&#xff1a;Client/Server&#xff0c;客户端/服务器架构模式。需要单独…...

Linux系统部署KES

1、安装准备 1.版本说明V008R006C009B0014 V008&#xff1a;是version产品的大版本。 R006&#xff1a;是release产品特性版本。 C009&#xff1a;是通用版 B0014&#xff1a;是build开发过程中的构建版本2.硬件要求 #安全版和企业版 内存&#xff1a;1GB 以上 硬盘&#xf…...