当前位置: 首页 > news >正文

神经网络相关内容

划分数据集以及模型定义

def data_split(datax, datay, val_size = 0.1, test_size = 0.05):'''输入:datax datay 输出:trainx, valx, testx, trainy, valy, testy, 分别按比例得到训练集、验证集、测试集'''# 构建数据集pos_test = int(len(datax) * (1 - test_size))pos_val = int(len(datax[:pos_test]) * (1 - val_size))trainx, valx, testx = datax[:pos_val], datax[pos_val:pos_test], datax[pos_test:]trainy, valy, testy = datay[:pos_val], datay[pos_val:pos_test], datay[pos_test:]return trainx, valx, testx, trainy, valy, testydef lvdnnework(nenum, laynum = 3, necoef = 1, regcoef = 0.01,drnum = 1,ratcoef = 0.3):'''输入: 输入维度, 层数、每层维度、正则化系数、dorpout层层数以及系数输出:模型,注意不要使用函数'''    # def relu_plus_one(x):#     return tf.keras.activations.tanh(x-1)# 构建神经网络模型model = tf.keras.Sequential()model.add(tf.keras.layers.Dense(nenum, activation='relu'))#创建第一层for i in range(laynum):model.add(tf.keras.layers.Dense(int(nenum*necoef),kernel_regularizer=tf.keras.regularizers.l2(regcoef), activation='relu'))if i<drnum:model.add(tf.keras.layers.Dropout(rate =ratcoef))model.add(tf.keras.layers.Dense(nenum))#创建最末层return modeldef pk_dp(lvnk):#将训练好的网络结构及优化参数转成二进制文件,用于数据库存储mdds_topy = pickle.dumps(lvnk.to_json())mdds_wts = pickle.dumps(lvnk.get_weights()) return mdds_topy, mdds_wtstrainx, valx, testx, trainy, valy, testy = data_split(data_x_delt,data_y_delt)
#模型训练
lvdnnk = lvdnnework(trainx.shape[1], laynum = 3, necoef = 1.0, regcoef = 0.002, drnum = 0, ratcoef = 0.2)
optimizer = Adam(learning_rate=0.004, beta_1=0.99, beta_2=0.999, epsilon=1e-7)
lvdnnk.compile(optimizer=optimizer, loss='mse')
trainr = lvdnnk.fit(trainx, trainy, epochs=200, batch_size=20, shuffle = True, validation_data=[valx, valy], validation_steps=2,verbose= 0)     
#将该台区模型相关系数
mdds_topy, mdds_wts = pk_dp(lvdnnk)
pre = lvdnnk.predict(trainx)
corr = np.corrcoef(trainy.reshape(1,-1),pre.reshape(1,-1))# 预测数据结果
pre2 = lvdnnk.predict(testx)
corr2 = np.corrcoef(trainy.reshape(1,-1),pre2.reshape(1,-1))

对比结果画图

plt.figure(figsize=(15, 5))
plt.subplot(1, 1, 1)
plt.plot(pd.DataFrame(pre2.reshape(-1,1)), color="red")
plt.plot(pd.DataFrame(trainy.reshape(-1,1)), color="blue")
plt.title(str(tg_id)+ '_' +str(round(corr2[1,0], 2)))
plt.savefig(f'./picture/{tg_id}.jpg')
plt.close()
http://www.xdnf.cn/news/94087.html

相关文章:

  • JavaScript 渲染内容爬取:Puppeteer 高级技巧与实践
  • AI与Web3.0:技术融合
  • python动态注册执行action
  • QT 打包安装程序【windeployqt.exe】报错c000007d原因:Conda巨坑
  • 单片机外设模块汇总与介绍
  • 动态规划(一)【背包】
  • cf | Binary Typewriter
  • Hive 多表查询案例
  • poi生成横向文档以及复杂表头
  • 【Hive入门】Hive数据模型与存储格式深度解析:从理论到实践的最佳选择
  • 【新能源科学与技术】MATALB/Simulink小白教程(一)实验文档【新能源电力转换与控制仿真】
  • 敏捷开发中的AI测试:未来的趋势与挑战
  • ubantu18.04(Hadoop3.1.3)Hive3.1.2安装指南
  • 静态存储区(Static Storage Area)的总结
  • 深入解析:C 语言实现快速傅里叶变换(FFT)算法
  • HTML与Web 性能优化:构建高速响应的现代网站
  • 微帧Visionular斩获NAB Show 2025年度产品奖
  • 网络原理————HTTP
  • Apache中间件解析漏洞与安全加固
  • OpenRAN 6G网络:架构、用例和开放问题
  • 系统架构师2025年论文《论软件三层结构的设计》
  • 【KWDB 创作者计划】_嵌入式硬件篇---数字电子器件
  • 互联网大厂Java面试:RocketMQ、RabbitMQ与Kafka的深度解析
  • 26-算法打卡-字符串-右旋字符串-第二十六天
  • 【每日八股】复习计算机网络 Day4:TCP 协议的其他相关问题
  • 机器学习算法-分类决策树
  • uv run 都做了什么?
  • WSL2-Ubuntu22.04下拉取Docker MongoDB镜像并启动
  • 与Ubuntu相关命令
  • 【Java学习方法】终止循环的关键字