动态粒子群(DPSO)优化群优化BP神经网络

本文介绍了如何使用动态粒子群优化(DPSO)算法来改进BP神经网络的性能。通过Python实现,DPSO用于权重和阈值的优化,从而提升神经网络的预测准确性和收敛速度。
摘要由CSDN通过智能技术生成

代码所用数据在最下面

import numpy as np
import time
import matplotlib as mpl
import matplotlib.pyplot as plt
print(mpl.get_backend())
from tensorflow import keras
import tensorflow as tf
import pandas as pd
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
plt.rcParams['font.serif']=['SimSun'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False # 用来正常显示负号
plt.rcParams['xtick.direction'] = 'in'#将x周的刻度线方向设置向内
plt.rcParams['ytick.direction'] = 'in'#将y轴的刻度方向设置向内
mpl.rcParams['font.sans-serif'] = ['SimHei']
import random
from sklearn.metrics import r2_score, mean_squared_error, mean_absolute_percentage_error,mean_absolute_error


# 每轮迭代时,保证每个粒子所包含的位置速度在指定范围区间内
def my_x_v(w, max, min):
    n = range(w.shape[0])
    m = range(w.shape[1])
    for i in n:
        for j in m:
            if w[i][j] > max:
                w[i][j] = max
            elif w[i][j] < min:
                w[i][j] = min
    return w
    
def PSOTONN(CP):
    bias1 = CP[0:n_p].reshape(n_p, 1)
    kernel1 = CP[n_p:(n_f + 1) * n_p].reshape(n_p, n_f, order='F')
    bias2 = CP[(n_f + 1) * n_p:(n_f+1)*n_p+n_o].reshape(n_o, 1)
    kernel2 = CP[(n_f+1)*n_p+n_o:(n_f+n_o+1)*n_p+n_o].reshape(n_o, n_p)
    return bias1, kernel1, bias2, kernel2

# 适应度函数
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值