代码所用数据在最下面
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
# 适应度函数