电影网站建设基本流程/广告联盟下载app

电影网站建设基本流程,广告联盟下载app,网站建设课程感想,建一个门户网站要多少钱目录 摘要 Abstract 文献阅读 问题引入 研究背景 研究意义 研究目的 实验方法 TimeGAN 数据增强 预测模型的独立性 创新点 实验研究 数据准备 合成数据分析 模型比较 总结 摘要 该文献围绕利用 TimeGAN 提高供热变电站热负荷预测精度展开。结构上&#x…

目录

摘要

Abstract

文献阅读

问题引入

研究背景

研究意义

研究目的 

实验方法

TimeGAN

数据增强 

预测模型的独立性 

创新点

实验研究

数据准备

合成数据分析

模型比较 

总结


摘要

该文献围绕利用 TimeGAN 提高供热变电站热负荷预测精度展开。结构上,依次阐述研究背景、材料与方法、结果与讨论和结论。特点在于首次将 TimeGAN 应用于供热领域进行数据增强。优势是能生成高质量数据,对异常现象有屏蔽作用。应用于新供热变电站及供热中期和末期数据不足的场景,原因是这些情况下传统方法难以获取足够高质量数据 。效果比较显示,新站初期数据扩充 3 倍时模型误差可降 50%,中期和末期扩充至 15,000 - 30,000 时误差降低 3% - 8%。未来改进方向是确定更精准的最优添加数据量。总体而言,TimeGAN 有效提升了预测精度,为供热负荷预测提供了新途径。

Abstract

This literature focuses on using TimeGAN to improve the accuracy of heat load forecasting in heating substations. Structurally, explain the research background, materials and methods, results and discussions, and conclusions in sequence. The feature is the first application of TimeGAN for data augmentation in the heating field. The advantage is that it can generate high-quality data and has a shielding effect on abnormal phenomena. Applied to new heating substations and scenarios where there is insufficient data during the mid-term and final stages of heating, the reason is that traditional methods are difficult to obtain sufficiently high-quality data in these situations. Comparison of results shows that when the initial data of the new station is expanded by three times, the model error can be reduced by 50%, and when expanded to 15000-30000 in the middle and late stages, the error can be reduced by 3-8%. The future improvement direction is to determine a more accurate optimal amount of added data. Overall, TimeGAN effectively improves prediction accuracy and provides a new approach for heating load forecasting. 

文献阅读

title:Data augmentation for improving heating load prediction of heating substation based on TimeGAN

 https://www.sciencedirect.com/science/article/abs/pii/S0360544222018205

问题引入

研究背景

准确的供热负荷预测,能够帮助操作人员制定合理的参数,减少能源浪费。其性能高度依赖于训练数据的数量和质量,如新建供热子站和供热末期,无法提供足够的高质量数据用于模型训练,导致模型精度较低。因此,解决数据不足问题对于提高供热负荷预测精度至关重要。

研究意义

通过引入TimeGAN进行数据增强,本文不仅有效解决了新建供热子站和供热末期数据不足的问题,还显著提高了供热负荷预测的精度。 

研究目的 

首次将TimeGAN应用于供热领域,旨在通过生成高质量的时间序列数据来解决数据不足问题,并提高供热负荷预测模型的精度。具体目标包括:1、仅使用供热初期两天的数据建立高精度预测模型,解决新建供热子站缺乏历史数据的问题;2、提高供热中期和末期的预测精度,尤其是在数据量较少的情况下;3、以及确定TimeGAN与SVR、XGB和RF模型融合后的最佳训练数据量,以优化模型性能。 

实验方法

TimeGAN

TimeGAN是一种结合生成对抗网络(GAN)和序列生成模型优点的时间序列生成模型。该模型的主要组件包括嵌入网络、生成器、判别器和有监督网络。 

GAN 

上述模型主要包含三大部分:生成器、判别器和损失函数

生成器:它的输入是随机噪声向量,然后经过简单的分布,最终得到生成器生成的合成数据

判别器:它的输入主要是真实数据和合成数据,然后同样经过简单的分布,最终对输入的两类数据进行判别

损失函数:它的目的就是训练生成器和判别器,使得生成器能生成更接近真实数据的合成数据,并且判别器能够更准确的辨别两类数据

自动编码器

自动编码器是一种无监督学习模型,主要用于数据的压缩和特征学习。 它包含三部分:编码器、解码器和隐藏层。自编码器的训练目标是最小化重建误差,通常通过某种损失函数(如均方误差)来衡量。

TimeGAN就是结合上述两个框架(GAN+Autoencoder),不仅如此,它相较于GAN的普通对抗损失之外,还增加了一个有监督的损失机制,目的就是为了指导生成器生成更加准确的合成数据,它的构建也是基于自编码器的重建误差。

代码设计 

1)TimeGAN的设计

import tensorflow as tf
import numpy as np# 生成器网络
class Generator(tf.keras.Model):def __init__(self, hidden_dim, output_dim):super(Generator, self).__init__()self.dense1 = tf.keras.layers.Dense(hidden_dim, activation='relu')self.dense2 = tf.keras.layers.Dense(hidden_dim, activation='relu')self.dense3 = tf.keras.layers.Dense(output_dim)def call(self, inputs):x = self.dense1(inputs)x = self.dense2(x)return self.dense3(x)# 判别器网络
class Discriminator(tf.keras.Model):def __init__(self, hidden_dim):super(Discriminator, self).__init__()self.dense1 = tf.keras.layers.Dense(hidden_dim, activation='relu')self.dense2 = tf.keras.layers.Dense(hidden_dim, activation='relu')self.dense3 = tf.keras.layers.Dense(1)def call(self, inputs):x = self.dense1(inputs)x = self.dense2(x)return self.dense3(x)# 嵌入网络
class Embedder(tf.keras.Model):def __init__(self, hidden_dim):super(Embedder, self).__init__()self.dense1 = tf.keras.layers.Dense(hidden_dim, activation='relu')self.dense2 = tf.keras.layers.Dense(hidden_dim)def call(self, inputs):x = self.dense1(inputs)return self.dense2(x)# 恢复网络
class Recovery(tf.keras.Model):def __init__(self, hidden_dim, output_dim):super(Recovery, self).__init__()self.dense1 = tf.keras.layers.Dense(hidden_dim, activation='relu')self.dense2 = tf.keras.layers.Dense(output_dim)def call(self, inputs):x = self.dense1(inputs)return self.dense2(x)# 时间鉴别器网络
class Supervisor(tf.keras.Model):def __init__(self, hidden_dim):super(Supervisor, self).__init__()self.dense1 = tf.keras.layers.Dense(hidden_dim, activation='relu')self.dense2 = tf.keras.layers.Dense(hidden_dim)def call(self, inputs):x = self.dense1(inputs)return self.dense2(x)# TimeGAN 模型
class TimeGAN(tf.keras.Model):def __init__(self, hidden_dim, output_dim):super(TimeGAN, self).__init__()self.generator = Generator(hidden_dim, output_dim)self.discriminator = Discriminator(hidden_dim)self.embedder = Embedder(hidden_dim)self.recovery = Recovery(hidden_dim, output_dim)self.supervisor = Supervisor(hidden_dim)def call(self, z):return self.generator(z)

2)模型的训练 

# 训练 TimeGAN
def train_timegan(model, data, epochs, batch_size, learning_rate):optimizer = tf.keras.optimizers.Adam(learning_rate)for epoch in range(epochs):for i in range(0, len(data), batch_size):batch = data[i:i + batch_size]z = np.random.normal(size=(len(batch), data.shape[1], data.shape[2]))# 训练嵌入网络和恢复网络with tf.GradientTape() as tape:h = model.embedder(batch)x_tilde = model.recovery(h)e_loss0 = tf.reduce_mean(tf.square(batch - x_tilde))variables = model.embedder.trainable_variables + model.recovery.trainable_variablesgradients = tape.gradient(e_loss0, variables)optimizer.apply_gradients(zip(gradients, variables))# 训练监督器with tf.GradientTape() as tape:h = model.embedder(batch)h_hat_supervised = model.supervisor(h[:, :-1, :])s_loss = tf.reduce_mean(tf.square(h[:, 1:, :] - h_hat_supervised))variables = model.supervisor.trainable_variablesgradients = tape.gradient(s_loss, variables)optimizer.apply_gradients(zip(gradients, variables))# 训练生成器和鉴别器for k in range(2):# 训练生成器with tf.GradientTape() as tape:h_hat = model.generator(z)h_hat_supervised = model.supervisor(h_hat[:, :-1, :])d_fake = model.discriminator(h_hat)g_loss_u = -tf.reduce_mean(d_fake)g_loss_s = tf.reduce_mean(tf.square(h_hat[:, 1:, :] - h_hat_supervised))h = model.embedder(batch)x_tilde = model.recovery(h_hat)g_loss_v = tf.reduce_mean(tf.square(batch - x_tilde))g_loss = g_loss_u + 100 * tf.sqrt(g_loss_s) + 100 * g_loss_vvariables = model.generator.trainable_variables + model.supervisor.trainable_variablesgradients = tape.gradient(g_loss, variables)optimizer.apply_gradients(zip(gradients, variables))# 训练鉴别器with tf.GradientTape() as tape:h = model.embedder(batch)d_real = model.discriminator(h)h_hat = model.generator(z)d_fake = model.discriminator(h_hat)d_loss_real = tf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(logits=d_real, labels=tf.ones_like(d_real)))d_loss_fake = tf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(logits=d_fake, labels=tf.zeros_like(d_fake)))d_loss = d_loss_real + d_loss_fakevariables = model.discriminator.trainable_variablesgradients = tape.gradient(d_loss, variables)optimizer.apply_gradients(zip(gradients, variables))print(f'Epoch {epoch + 1}/{epochs}, E_loss: {e_loss0.numpy()}, S_loss: {s_loss.numpy()}, G_loss: {g_loss.numpy()}, D_loss: {d_loss.numpy()}')

数据增强 

数据增强是一种技术,通过对现有数据进行各种变换和处理来生成新的训练样本,从而增加数据集的多样性和数量。用来改善数据缺乏的问题 

该文献中使用“基于生成模型”的方法来实现数据的扩增。

下面是使用了“数据增强“的供热负荷和室内温度的变化图: 

在整个时间序列的初期,数据量较少,通过生成多个类似于真实数据集的合成数据来增强模型的学习效果;在供热中期,GAN模型生成合成数据,用来补充和丰富数据集;在供热后期,发电机已经比较了解热负荷的不同特性,此时增加数据来达到优化模型的效果。

# 数据增强函数
def data_augmentation(model, original_data, num_samples):z = np.random.normal(size=(num_samples, original_data.shape[1], original_data.shape[2]))generated_data = model(z)augmented_data = np.concatenate([original_data, generated_data.numpy()], axis=0)return augmented_data

预测模型的独立性 

上面利用TimeGAN模型解决了数据增强的问题,接下来就要进行机器学习预测模型的评估 

SVR

SVR,支持向量回归(Support Vector Regression),是一种基于支持向量机(SVM)的回归方法。它的核心思想是找到一个尽可能平滑的超平面,使得数据点尽可能地被这个超平面所拟合,同时允许一定的误差。 

RF

RF模型属于集成学习中的bagging流派。核心思想是通过引入随机性来降低模型的方差,从而避免过拟合。

XGB 

XGBoost(eXtreme Gradient Boosting)是一种强大的集成学习算法,广泛应用于分类和回归任务。它通过结合多个弱学习器(通常是决策树)来构建一个强大的预测模型,具有高效性和高准确性的特点。‌核心思想是通过梯度提升逐步减少预测误差

性能评估 

创新点

首次应用 TimeGAN 解决供热数据问题 

开创性地将 TimeGAN 算法应用于供热领域,针对供热数据的时间序列特性,生成高质量的时间序列和多特征数据,填补了该领域数据增强研究的空白。 

显著提升新站及不同供热阶段模型精度 

仅用供热初期两天的数据,借助 TimeGAN 扩展原始数据集,就能大幅提升模型预测精度,新站模型误差最多可降低 50%。对于供热中期和末期,当数据扩充到 15,000 - 30,000 时,预测误差可降低 3% - 8%。相比现有研究,该方法有效改善了不同供热阶段模型精度较低的问题,提高了模型的实用性和可靠性。 

实验研究

数据准备

滑动窗口法是机器学习和数据分析中一种常用的技术,特别是在处理时间序列数据时。它能够让我们从连续的数据流中提取有用的信息,实现数据的局部分析。核心思想是通过在序列数据上定义一个固定大小的窗口,窗口将在数据序列上进行移动。每次移动窗口时,我们可以从窗口中提取特征并执行某种机器学习算法。

合成数据分析

首先选取同样数量的样本数据和合成数据,在供热序列的前期、中期和后期二者的拟合情况

 

可以看出,在供热初期和末期,合成数据与真实数据的趋势较为一致,尤其是在初期表现最优;但是在供热中期,合成数据的分布和斜率与真实数据相比有较大差异。 

针对上述在供热中期差异较大的问题,中期圈内的真实数据未被合成数据所覆盖,有可能是数据异常导致模型并未学习到该圈内的特征。所以单独挑出异常样本分析:

在上图中可以明显的看出,供热负荷和室内温度具有基本一致的变化曲线,这不符合常理,所以模型未能学习到这一异常是有好处的,可能TimeGAN模型对该种异常具有自动屏蔽的特性。

为了进一步检测合成数据的可靠性,选取了一段连续时间内的真实数据和合成数据的”供热负荷“和”室内温度“进行趋势对比:

结果表明,真实数据和合成数据基本能够保持一致起伏,并且两个特征的相关性也是符合常理的。 

模型比较 

 三种预测模型在给其数据集中不断加入合成数据的结果比较如下:

对于上述的所有模型来说,在适量增加合成数据的情况下,模型性能都会提高;在相同数量的合成数据下,XGB和RF模型的性能通常优于SVR模型,这可能与模型的特性和数据集的适应性有关。 

上面是利用CV-RMSE来衡量模型的好坏,接下来直观的将真实数据、没有添加合成数据的3种预测模型的预测结果、添加了合成数据的3种预测模型的预测结果进行对比:

初期 

合成数据对于提高供热负荷预测的准确性具有重要作用,尤其是在数据不足的供热初期。不同的机器学习模型对合成数据的利用效果不同,但总体上,XGB模型表现最佳。

末期 

末期的结果同初期。 

总结

本文献创新性地应用了TimeGAN来增强供热负荷预测的数据集,解决了因数据不足导致的预测准确度问题。研究者们利用TimeGAN生成的合成数据,结合真实数据训练了三种机器学习模型:支持向量回归(SVR)、随机森林(RF)和极端梯度提升(XGB)。实验结果表明,TimeGAN生成的数据有效提升了模型预测精度,尤其是在供热初期,且存在一个最优的合成数据添加量。这项研究不仅提高了供热负荷预测的准确性,也为数据增强技术在类似领域的应用提供了新的思路。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/74071.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法题(103):数独

审题: 本题需要我们找出数独的解,并打印出来 时间复杂度分析: 本题是9*9的数独格子,所以数据量小于25,可以使用2^n的算法 思路: 方法一:深度优先搜索 首先确定搜索及插入策略: 我们采…

# [RPA] 使用八爪鱼进行高效网页数据采集

在许多行业中,数据是核心资产。然而,虽然许多网站的文本内容可以免费访问,但手动一条一条采集,不仅耗时耗力,还容易出错。这种情况下,使用自动化工具来提高采集效率就显得尤为重要。本文将介绍 八爪鱼 这一…

腾讯云HAI1元体验:轻松调用DeepSeek-R1模型搭建网站

前言 随着云计算和人工智能技术的不断发展,构建和部署智能化的网页变得越来越简单。腾讯云提供的HAI(人工智能平台)和DeepSeek(智能搜索引擎)服务,能帮助开发者快速搭建智能化网页,提升用户体验…

AI Agent系列(七) -思维链(Chain of Thought,CoT)

AI Agent系列【七】 前言一、CoT技术详解1.1 CoT组成1.2 CoT的特点 二、CoT的作用三、CoT的好处四、CoT适用场景五、CoT的推理结构 前言 思维链(Chain of Thought,CoT),思维链就是一系列中间的推理步骤(a series of intermediate reasoning steps),通过…

opencv中stitch图像融合

openv版本: opencv249 vs &#xff1a;2010 qt : 4.85 #include "quanjing.h"#include <iostream> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <open…

1201. 【高精度练习】蜜蜂路线

题目描述 一只蜜蜂在图5.1-2所示的数字蜂房上爬动&#xff0c;已知它只能从标号小的蜂房爬到标号大的相邻蜂房&#xff0c; 现在问你&#xff1a;蜜蜂从蜂房M开始爬到蜂房N&#xff0c;l≤M 输入 M&#xff0c;N的值。 输出 一个数表示爬行路线种数。 样例输入 1 14 样…

《C++11 基于CAS无锁操作的atomic原子类型》

count; count--; 我们知道&#xff0c;/--操作并不是原子性的&#xff0c;其实对应三条汇编指令来完成的。 读取&#xff1a;从内存中把变量的值读取到寄存器修改&#xff1a;在寄存器里将变量的值1/-1写入&#xff1a;把修改后的值写入到内存 在单线程环境下&#xff0c;这…

【时时三省】(C语言基础)习题2 scanf函数

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ----CSDN 时时三省 用下面的scanf函数输入数据&#xff0c;使a 3&#xff0c;b 7&#xff0c;x 8.5&#xff0c;y 71.82&#xff0c;c1 A&#xff0c;c2 x在键盘上应如何输入? 分析第一个 scanf 函数&…

微信小程序计算属性与监听器:miniprogram-computed

小程序框架没有提供计算属性相关的 api &#xff0c;但是官方为开发者提供了拓展工具库 miniprogram-computed。 该工具库提供了两个功能&#xff1a; 计算属性 computed监听器 watch 一、安装 miniprogram-computed 在项目的根目录下&#xff0c;使用如下命令&#xff0c;…

Oracle 数据库安全评估(DBSAT)简明过程

下载DBSAT 从这里下载。 实际是从MOS中下载&#xff0c;即&#xff1a;Oracle Database Security Assessment Tool (DBSAT) (Doc ID 2138254.1)。 最新版本为3.1.0 (July 2024)&#xff0c;名为dbsat.zip&#xff0c;近45MB。 $ ls -lh dbsat.zip -rw-rw-r-- 1 oracle oins…

【Linux 维测专栏 1 -- Hung Task 分析与验证】

文章目录 Linux Hung Task 简介1. Hung Task 概述2. D 状态与 Hung Task3. Hung Task 的工作原理4. Hung Task 的配置5. Hung Task 的典型输出6. Hung Task 的应用场景7. kernel 配置7.1 编译选项7.2 参数控制7.3 验证方法4. 扩展接口 8. 注意事项 Linux Hung Task 简介 1. Hu…

公链开发费用及其构成内容详析

在区块链技术迅速发展的今天&#xff0c;公链&#xff08;Public Blockchain&#xff09;作为去中心化、不可篡改、高安全性的重要应用之一&#xff0c;在金融、供应链、游戏等多个领域得到了广泛应用。然而&#xff0c;开发一条公链并非易事&#xff0c;它不仅需要高度专业技能…

DM 达梦上的日志挖掘 DBMS_LOGMNR

适用场景 在 DM 中&#xff0c;用户可以使用 DBMS_LOGMNR 包对归档日志进行挖掘&#xff0c;重构出 DDL 和 DML 等操作&#xff0c;并通过获取的信息进行更深入的分析&#xff1b;同样&#xff0c;可以对归档日志文件进行恢复被误操作的数据&#xff0c;并进行故障跟踪&#x…

JavaWeb之WebSocket

目录 一、 websocket 概念二、WebSocket原理三、WebSocket特点四、WebSocket应用场景五、Websocket基本使用1、创建Websocket对象2、Websocket事件3、Websocket方法4、前端服务程序 六、聊天室案例1、Tomcat版本&#xff1a;8.0.442、Maven 依赖&#xff1a;3、前端代码4、后端…

字符指针的三道例题+算法改进

目录 一.杨氏矩阵 1.初级 2.想把下标带回来 二.字符串左旋 算法改进 三.判断是否为字符串旋转结果 算法改进 四. 3个字符函数 1.strcat 2.strncat 3.strstr 一.杨氏矩阵 数字矩阵&#xff0c;每行从左到右递增&#xff0c;每列从上到下递增&#xff0c;编写程序在矩…

VSCode中搜索插件显示“提取扩展时出错。Failed to fetch”问题解决!

大致的问题如下&#xff0c;在VSCode的插件商店搜索插件时提示如下&#xff1a; 导致的情况有以下几点&#xff1a; 1、代理问题&#xff0c;如果是代理引起的&#xff0c;可以继续使用代理后也能搜索和安装插件。 2、还有可能是你的所连接的网络设置了防火墙&#xff0c;比较…

双指针(2)—三数之和

文章目录 题目解析解法&#xff08;排序双指针&#xff09;&#xff1a;哈希解法附加Java代码&#xff1a; 力扣题目&#xff1a;三数之和 题目解析 解法&#xff08;排序双指针&#xff09;&#xff1a; **算法思路&#xff1a;** 本题与两数之和类似&#xff0c;是⾮常经典的…

JVM 知识点梳理

JDK 、JRE、JVM JDK&#xff08; Java Development Kit &#xff09; Java开发工具包 JRE 开发命令工具&#xff08;运行java.exe、编译javac.exe、javaw.exe&#xff09; JRE&#xff08; Java Runtime Environment &#xff09;Java运行环境 JVM Java核心类库&#xff08;l…

DeepSeek-R1论文深度解析:纯强化学习如何引爆LLM推理革命?

技术突破&#xff1a;从“无监督”到“自主进化”的跨越 paper &#xff1a;https://arxiv.org/pdf/2501.12948目录 技术突破&#xff1a;从“无监督”到“自主进化”的跨越1 DeepSeek-R1-Zero&#xff1a; RLnoSFT1.1 R1-Zero&#xff1a; GRPO&#xff08;Group Relative Po…

表格标题竖直

使用文本方式使表格怎么竖列 思路&#xff1a;表格竖直书写&#xff0c;里面的内容水平书写 使用到的是css中的文本效果&#xff1a; writing-mode&#xff1a;书写方式horizontal-tb&#xff1a;水平vertical-rl&#xff1a;竖直<style>table {writing-mode: vertical…