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


# 粒子群算法的超参数优化 ## 粒子群算法概述 粒子群优化算法(Particle Swarm Optimization)是由美国的Kennedy和Eberhart 两位博士提出的一种优化算法。这种算法基于Boid模型。Reynolds通过观察自然界中,鸟类聚集飞行的行为,提出了Boid模型。在 Boid中,每个个体是一个 Boid,它们各自均可感知到周围其他Boid 的位置信息。然后,利用该信息来作为决策自身行动的一个依据。最后结合自身状态(一般为位置、速度、方向等),更新自身的位置。 ### 粒子群算法的原理 * 速度更新$$v_{id}^{t}+c_1r_1(pbest^t_{id}-x_{id}^2)+c_2r_2(gbest_d^t-x_{id}^t)$$ * 位置更新$$x_{id}^{t+1}=x_{id}^t+v_{id}^t$$ ![粒子群算法](【实验】粒子群算法的超参数优化/image-20220528232219148.png) ## wine数据集代码运行流程 [代码在这里](https://github.com/Copy2000/computation_intelligence/tree/main/红酒数据集) 主要是进行一个分类器的超参数优化; 超参数: * n_estimators * learning_rate * algorithm 前置条件: ```python 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](【实验】粒子群算法的超参数优化/image-20220528235138503.png) ![v](【实验】粒子群算法的超参数优化/image-20220528235155649.png) ![最好个体的超参数](【实验】粒子群算法的超参数优化/image-20220528235226163.png) 对应g_best(global best individual)的适应度:0.9607936507936508 ![各个体最好超参数](【实验】粒子群算法的超参数优化/image-20220528235351637.png) 对应上面的p_best(personal best individual)个体适应度 [0.9099999999999999, 0.9606349206349206, 0.943968253968254, 0.9212698412698412, 0.9607936507936508] ### 第一次迭代 ![x](【实验】粒子群算法的超参数优化/image-20220528235642461.png) ![v](【实验】粒子群算法的超参数优化/image-20220528235704145.png) ![g_best](【实验】粒子群算法的超参数优化/image-20220528235734519.png) fitness: 0.9663492063492063 ![p_best](【实验】粒子群算法的超参数优化/image-20220528235751596.png) fitness: [0.9663492063492063, 0.9606349206349206, 0.9607936507936508, 0.9495238095238093, 0.9607936507936508] ### 第二次迭代 ![x](【实验】粒子群算法的超参数优化/image-20220528235924157.png) ![v](【实验】粒子群算法的超参数优化/image-20220528235957936.png) ![g_best](【实验】粒子群算法的超参数优化/image-20220529000019319.png) global best并没有发生改变 ![p_best](【实验】粒子群算法的超参数优化/image-20220529000047018.png) fitness: [0.9719047619047618, 0.9663492063492063, 0.9607936507936508, 0.9607936507936508, 0.9607936507936508] ### 第三次迭代 ![x](【实验】粒子群算法的超参数优化/image-20220529000207508.png) ![v](【实验】粒子群算法的超参数优化/image-20220529000220197.png) ![g_best](【实验】粒子群算法的超参数优化/image-20220529000242494.png) fitness:0.9719047619047618 ![p_best](【实验】粒子群算法的超参数优化/image-20220529000314565.png) fitness: [0.9719047619047618, 0.9663492063492063, 0.9663492063492063, 0.9663492063492063, 0.9663492063492063] ### 第四次迭代 ![x](【实验】粒子群算法的超参数优化/image-20220529000413523.png) ![v](【实验】粒子群算法的超参数优化/image-20220529000452301.png) ![g_best](【实验】粒子群算法的超参数优化/image-20220529000519776.png) fitness:0.9720634920634922 ![p_best](【实验】粒子群算法的超参数优化/image-20220529000644365.png) [0.9719047619047618, 0.9663492063492063, 0.9663492063492063, 0.9720634920634922, 0.9663492063492063] ### 第五次迭代 ![x](【实验】粒子群算法的超参数优化/image-20220529001012313.png) ![g_best](【实验】粒子群算法的超参数优化/image-20220529001026322.png) 0.9720634920634922 ![p_best](【实验】粒子群算法的超参数优化/image-20220529001056708.png) [0.9719047619047618, 0.9663492063492063, 0.9663492063492063, 0.9720634920634922, 0.9720634920634922]

文章作者: copy
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 copy !
  目录