欢迎来到本博客❤️❤️❤️
博主优势:博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
目录
1 概述
2 运行结果
3 参考文献
4 Python代码实现
本文复现论文算法RODDPSO+K-Means,用优化的粒子群算法对K-Means算法求初始的簇心,以达到优化聚类算法的目的。
分布式时滞表现出独特的空间性质,可模拟在特定时间段内通过一定数量的并行通道/路径分布的信号传播延迟。到目前为止,具有分布式时间延迟的复杂系统(例如神经网络[33],[44])的动力学行为已经得到了很好的研究。直观地说,一个自然的想法是在PSO算法中引入一定的分布式时滞,希望增强从局部最优逃逸的能力,摆脱过早收敛的问题。与[34],[36]和[48]中的离散时间延迟相比,分布式时间延迟具有以下两个优点:1)更好地利用更长(更多累积)的种群进化历史,导致更好的准确性和2)更复杂的动力学行为导致捕获局部最优的可能性更小。此外,为了在收敛性和多样性之间做出适当的权衡,引入的分布式时滞可以以合理的小概率随机发生。因此,本文的主要目的是启动一项关于新型随机发生的分布式延迟PSO(RODDPSO)算法及其在医疗保健信息学中的应用的重大研究。
受上述讨论的启发,本文的目的是提出一种基于RODDPSO的聚类算法,并应用于分析A&E数据。本文的主要贡献可归纳为以下三个方面。
引入了一种新的RODDPSO算法,其中随机出现的分布式时滞项不仅有助于:a)对整个搜索空间的彻底探索;b)捕获局部最优的可能性显着降低;c)在本地和全球搜索能力之间取得适当的平衡。
该文提出一种将RODDPSO算法与传统算法相结合的新型聚类算法K -表示聚类算法。所提出的基于RODDPSO的聚类算法不依赖于聚类质心的初始状态,从而有助于实现更好的聚类分区。
部分代码:
# 迭代寻优 t = 0 record_RODDPSO = np.zeros(maxgen) while t < maxgen: #惯性权重更新 w=W_MAX-((W_MAX-W_MIN)*t/maxgen) #加速度系数更新 c1=((c1f-c1i)*(maxgen-t)/maxgen)+c1i c2=((c2f-c2i)*(maxgen-t)/maxgen)+c2i c3=c1 c4=c2 #计算每个粒子的平均距离 d=dist(pop) #更新Ef Ef=(d[i]-np.min(d))/(np.max(d)-np.min(d)) #根据Ef寻找进化状态 if 0<=Ef<0.25: epsilonk=1 if 0.25<=Ef<0.5: epsilonk=2 if 0.5<=Ef<0.75: epsilonk=3 if 0.75<=Ef<=1: epsilonk=4 ml,mg=evo_state[epsilonk] # 速度更新 mcr3=0 mcr4=0 for tao in range(N): if t>=tao: mcr3+=alpha[tao]*(gbest_history[t-tao]-pop) mcr4+=alpha[tao]*(zbest_history[t-tao]-pop) else: mcr3+=alpha[tao]*(gbest_history[t]-pop) mcr4+=alpha[tao]*(zbest_history[t]-pop) v = w * v + c1 * np.random.random() * (gbest - pop) + c2 * np.random.random() * (zbest - pop)\ +ml*c3* np.random.random()*mcr3+mg*c4*np.random.random()*mcr4 v[v > Vmax] = Vmax # 限制速度 v[v < Vmin] = Vmin # 位置更新 pop = pop + v; pop[pop > popmax] = popmax/2 # 限制位置 pop[pop < popmin] = popmin/2 ''' # 自适应变异 p = np.random.random() # 随机生成一个0~1内的数 if p > 0.8: # 如果这个数落在变异概率区间内,则进行变异处理 k = np.random.randint(0,2) # 在[0,2)之间随机选一个整数 pop[:,k] = np.random.random() # 在选定的位置进行变异 ''' # 计算适应度值 fitness = k_means(dataset,sizepop,pop)
W. Liu, Z. Wang, X. Liu, N. Zeng and D. Bell, "A Novel Particle Swarm Optimization Approach for Patient Clustering From Emergency Departments," in IEEE Transactions on Evolutionary Computation, vol. 23, no. 4, pp. 632-644, Aug. 2019, doi: 10.1109/TEVC.2018.2878536.