首页 > 编程语言 >【实验】粒子群算法的超参数优化

【实验】粒子群算法的超参数优化

时间:2023-06-03 23:33:59浏览次数:47  
标签:粒子 迭代 0.9607936507936508 算法 参数 fitness 0.9663492063492063 id

粒子群算法的超参数优化

粒子群算法概述

粒子群优化算法(Particle Swarm Optimization)是由美国的Kennedy和Eberhart 两位博士提出的一种优化算法。这种算法基于Boid模型。Reynolds通过观察自然界中,鸟类聚集飞行的行为,提出了Boid模型。在 Boid中,每个个体是一个 Boid,它们各自均可感知到周围其他Boid 的位置信息。然后,利用该信息来作为决策自身行动的一个依据。最后结合自身状态(一般为位置、速度、方向等),更新自身的位置。

粒子群算法的原理

  • 速度更新$$v_{id}{t}+c_1r_1(pbestt_{id}-x_{id}2)+c_2r_2(gbest_dt-x_{id}^t)$$
  • 位置更新$$x_{id}{t+1}=x_{id}t+v_{id}^t$$

粒子群算法

wine数据集代码运行流程

代码在这里

主要是进行一个分类器的超参数优化;

超参数:

  • n_estimators
  • learning_rate
  • algorithm

前置条件:

MAX_Generation = 5
Population = 5
dimension = 3
v_low = [-5,-0.1,-0.5]
v_high = [5,0.1,0.5]
# [n_estimators, learning_rate, algorithm]:
BOUNDS_LOW = [1, 0.01, 0]
BOUNDS_HIGH = [100, 1.00, 1]

为了方便查看一个五个个体的粒子群迭代五次。

虽然可以一次性展示出来,但是我懒得改代码了,应该改成迭代三次的!!!

初始化数据

x

v

最好个体的超参数

对应g_best(global best individual)的适应度:0.9607936507936508

各个体最好超参数

对应上面的p_best(personal best individual)个体适应度

[0.9099999999999999, 0.9606349206349206, 0.943968253968254, 0.9212698412698412, 0.9607936507936508]

第一次迭代

x

v

g_best

fitness: 0.9663492063492063

p_best

fitness:

[0.9663492063492063, 0.9606349206349206, 0.9607936507936508, 0.9495238095238093, 0.9607936507936508]

第二次迭代

x

v

g_best

global best并没有发生改变

p_best

fitness:

[0.9719047619047618, 0.9663492063492063, 0.9607936507936508, 0.9607936507936508, 0.9607936507936508]

第三次迭代

x

v

g_best

fitness:0.9719047619047618

p_best

fitness:

[0.9719047619047618, 0.9663492063492063, 0.9663492063492063, 0.9663492063492063, 0.9663492063492063]

第四次迭代

x

v

g_best

fitness:0.9720634920634922

p_best

[0.9719047619047618, 0.9663492063492063, 0.9663492063492063, 0.9720634920634922, 0.9663492063492063]

第五次迭代

x

g_best

0.9720634920634922

p_best

[0.9719047619047618, 0.9663492063492063, 0.9663492063492063, 0.9720634920634922, 0.9720634920634922]

标签:粒子,迭代,0.9607936507936508,算法,参数,fitness,0.9663492063492063,id
From: https://www.cnblogs.com/copy2000/p/17454964.html

相关文章

  • 【实验】遗传算法的超参数优化
    wine数据集分类结果GridSearchbestparameters:{'algorithm':'SAMME','learning_rate':0.3593813663804626,'n_estimators':60}bestscore:0.9720634920634922TimeElapse:113.00295925140381GridSearchBasedGABest......
  • 量子搜索算法
    建议大家去看大佬的原文:量子搜索算法量子搜索算法是什么?假设我们现在有这样一个问题:寻找一个N位的二进制解串:\(X=(x_1x_2...x_n)\),使其满足条件:\(F(X)\leqC\)。其中\(F(X)\)可以是任一函数,\(C\)可以是一个足够小的常数,但保证至少存在一个解满足条件。对于一般情况而言,只能遍......
  • python版本的“共轭梯度法”算法代码
    在看代码的过程中遇到了共轭梯度法这个概念,对这个算法的数学解释看过几遍,推导看过了,感觉懂了,然后过上一些日子就又忘记了,然后又看了一遍推导,然后过了一些日子也就又忘记了,最后想想这个算法的数学解释就不要再取深究了,毕竟平时也不太会用到,偶尔用到了只要保证代码会写也就OK了。  ......
  • 最小二乘法的矩阵正则化改进——“岭回归”和“LASSO回归”算法
    看代码过程中发现了一个很奇怪的概念,叫做“最小二乘法的矩阵正则化”,这个词汇十分的陌生,虽然最小二乘法是知道的,但是用了矩阵正则化的最小二乘法是个什么东西呢?  相关代码见:强化学习:连续控制问题中Actor-Critic算法的linearbaseline  后来在网上一通查才知道,原来“最小二乘法......
  • 强化学习:连续控制问题中Actor-Critic算法的linear baseline
    最近在看连续控制问题,看到了一个Actor-Critic算法中手动扩展features和设置linearbaseline的方法,这些方法源自论文:《BenchmarkingDeepReinforcementLearningforContinuousControl》。  对于低维的features我们可以手动扩展:  代码实现:returntorch.cat([observations,ob......
  • Request类源码分析、序列化组件介绍、序列化类的基本使用、常用字段类和参数、反序列
    目录一、Request类源码分析二、序列化组件介绍三、序列化类的基本使用查询所有和查询单条四、常用字段类和参数(了解)常用字段类字段参数(校验数据来用的)五、反序列化之校验六、反序列化之保存七、APIVIew+序列化类+Response写的五个接口代码八、序列化高级用法之source(了解)九、......
  • 文心一言 VS 讯飞星火 VS chatgpt (30)-- 算法导论5.2 2题
    二、在HIRE-ASSISTANT中,假设应聘者以随机顺序出现,你正好雇用两次的概率是多少?文心一言:我们可以先计算出在HIRE-ASSISTANT中,雇佣一个应聘者的概率为3/4,然后计算出雇佣两次应聘者的概率为3/4*3/4*2。已知在HIRE-ASSISTANT中,雇佣一个应聘者的概率为:0.75根据概率乘法原理,可计算出......
  • 文心一言 VS 讯飞星火 VS chatgpt (30)-- 算法导论5.2 2题
    二、在HIRE-ASSISTANT中,假设应聘者以随机顺序出现,你正好雇用两次的概率是多少?文心一言:我们可以先计算出在HIRE-ASSISTANT中,雇佣一个应聘者的概率为3/4,然后计算出雇佣两次应聘者的概率为3/4*3/4*2。已知在HIRE-ASSISTANT中,雇佣一个应聘者的概率为:0.75根据概率乘法原理,可......
  • 前置知识:方法递归的算法、执行流程详解
       ......
  • m移动通信系统中越区切换算法的matlab仿真,对比MASN,ASUR,OP
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要硬切换,就是强制切换,其最大的特点是:“先断后连”。在硬切换过程中,用户移动设备仅仅保持与一个基站链接,一旦切换操作被激活,其马上会切断原有的连接,然后再与新的基站建立连接。从一个基站切换到另个基站的过程中,通信......