当前位置: 首页 > 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()

相关文章:

  • SpringBoot中6种自定义starter开发方法
  • Hadoop 集群扩容新增节点操作文档
  • Java 实现SpringContextUtils工具类,手动获取Bean
  • 鸿蒙NEXT开发网络相关工具类(ArkTs)
  • node.js 实战——(概念以及Buffer 知识点学习)
  • 数据结构线性表的顺序存储结构
  • openEuler安装nvidia驱动【详细版】
  • 外贸获客新革命:基于AI的搜索引擎排名攻防战——48小时抢占谷歌TOP3的技术逻辑与实战路径
  • 基于VUE+Node.JS实现(Web)学生组队网站
  • LInux平均负载
  • maven中pom.xml setting.xml关系
  • 二叉树OJ题目
  • 大模型框架技术全景与下一代架构演进
  • 如何批量为多张图片(JPG、PNG、BMP、WEBP 等格式)添加自定义水印保护
  • C++ 容器查找效率
  • 20250423修改和查看荣品的PRO-RK3566开发板的buildroot linux系统的cpu频率
  • Linux命令-sar
  • Python内置函数---bytearray()
  • 【Java设计模式及实践学习-第4章节-结构型模式】
  • 一对多的数据结构(树)的基本概念
  • 2025年超长期特别国债24日首次发行
  • 阿联酋首个AI博士项目设立,助力人才培养与科技转型
  • 土耳其发生6.2级地震,震源深度10千米
  • 叶辛秦文君进校园推广阅读
  • 王忠诚出任四川遂宁代市长,此前为成都市政府秘书长
  • 全国总工会成立100周年,工运历史和发展成就展将对外展出