![](https://img-blog.csdnimg.cn/20190927151043371.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Dart
文章平均质量分 87
Dart
数智笔记
目前从事数据挖掘工作,期望在自己学习总结的同时,也能分享有益的东西给别人,希望有志者能在数据挖掘领域共同进步
展开
-
工具系列:时间序列预测工具Dart介绍_高斯过程滤波器进行过滤和预测
高斯过程滤波器,就像卡尔曼滤波器一样,是Darts中的“FilteringModel”(而不是“ForecastingModel”)。从这个结果中,我们可以看到在波峰和波谷附近,对于基础数据的不确定性更大。对于我们的周期信号,高斯过程使用周期核函数很好地估计了缺失的数据。在高斯过程的情况下,这是通过对真实数据点所在的基础函数的形状进行假设来完成的。在这个笔记本中,我们将生成一个简单的周期信号,并看看如何使用高斯过程滤波器来去噪声。在这个笔记本中,我们将通过拟合高斯过程来过滤嘈杂的数据。原创 2024-01-17 23:27:49 · 823 阅读 · 0 评论 -
工具系列:时间序列预测工具Dart介绍_动态时间规整(DTW)
由于我们的模式略长于太阳黑子时间序列本身,我们删除所有超过结束日期的值。对于我们的时间序列,我们观察到一个深绿色的带子穿过对角线。尽管每个窗口的运行时间都不同,但路径的长度实际上是相同的。在这里,我们根据之前的观察构建了一个简化的模式,即线性的峰值和谷值。从上面的图中可以看出,在峰值之间的时间存在一些波动,导致了错位和相对较高的误差。一旦我们找到了对齐,我们可以生成两个扭曲的序列,长度相同。指标,但这次是应用在我们的变形序列上。在这里,我们简单地读取包含太阳黑子数量的CSV文件,并将值转换为所需的格式。原创 2024-01-17 23:26:13 · 812 阅读 · 0 评论 -
工具系列:时间序列预测工具Dart介绍_使用Kalman卡尔曼滤波器过滤和预测
在这个笔记本中,我们将生成一个简单的合成数据集,并看看如何使用卡尔曼滤波器对其进行去噪。滤波后的观测结果与无噪声的输出信号非常接近,并且在输入发生步变时特别好地跟踪输出。),可以用于平滑序列。在卡尔曼滤波器的情况下,通过线性动态系统的状态空间模型推断出观测值的"实际"基础值。请注意,如果我们在更长的时间序列上拟合模型,结果可能会更好。我们可以观察到时间序列开始时的误差较大,因为卡尔曼滤波器在该点上几乎没有信息来估计状态。首先,让我们绘制一个简单的图形,并给它添加显著的白噪声。的卡尔曼滤波器的理想候选。原创 2024-01-17 17:51:31 · 476 阅读 · 0 评论 -
工具系列:时间序列预测工具Dart介绍_TiDE时间序列密集编码器
它的特殊之处在于时间解码器可以帮助减轻异常样本对预测的影响(论文中的图4)。**学习率:**模型学习的大部分内容都在早期时期完成。模型将从训练集中学习,使用验证集确定何时停止训练,并最终在测试集上进行评估。**提前停止:**为了避免过度拟合,我们可以使用提前停止。使用已经建立的共享参数,我们可以看到NHiTS和TiDE的默认参数被使用。)极大地帮助改善了TiDE的预测(请记住,这只是一个例子,并不总是保证提高性能)。在这种情况下,普通的TiDE与NHiTs的准确性相似。本笔记本介绍了如何使用Darts的。原创 2024-01-17 17:07:38 · 385 阅读 · 0 评论 -
工具系列:时间序列预测工具Dart介绍_回归模型Regression Model
只要您的模型适用于表格数据并提供fit()和predict()"""自定义回归模型类"""self.weights = weights # 权重数组self.norm_coef = sum(weights) # 权重数组的和作为归一化系数"""拟合模型,不进行任何操作,直接返回自身""""""对每个样本应用权重"""return (原创 2024-01-17 16:58:26 · 910 阅读 · 0 评论 -
工具系列:时间序列预测工具Dart介绍_模型集成Ensemble Model
以下是Darts中模型集成的简要演示。从提供的示例开始,将详细介绍一些高级功能和细微之处。原创 2024-01-16 09:01:52 · 654 阅读 · 0 评论 -
工具系列:时间序列预测工具Dart介绍_电力负荷预测的超参数优化
除了圣诞节期间,预测的质量似乎与我们在验证集上的情况大致相当,这是一个很好的指示,表明我们可能没有过度拟合超参数优化到验证集。我们可以要求Optuna在指定的时间段内运行(就像我们在这里做的那样),或者运行一定数量的试验。准确率似乎非常好,而且这个模型没有遭受到我们最初的线性回归和早期TCN所遇到的一些问题(例如,在序列150上的故障模式)。例如,可以通过可视化目标值历史(在试验中)、目标值作为某些超参数的函数,或者某些超参数的整体重要性来获得对优化过程的有用见解。幸运的是,有一些很棒的工具可以帮助我们。原创 2024-01-16 07:57:15 · 1069 阅读 · 0 评论 -
工具系列:时间序列预测工具Dart介绍_分层协调Hierarchical-Reconciliation
上面,我们只是在多变量序列上拟合了一个单一的多变量模型。下面,为了举例,我们重复了这个实验,但是使用“局部”模型独立地预测每个组成部分。与之前相比,MAE略微增加(例如,在总体水平上),而在其他一些更细粒度的水平上略微减少。这是调和的典型特征:它可以增加误差,但在某些情况下也可以减少误差。在这个笔记本中,我们将演示分层协调。是一个包含每个组件的一列和每个时间戳的一行的DataFrame。让我们现在检查一下,调和后的预测是否如我们所期望的那样相加。,其中键是组件名称,值是包含该组件在层次结构中父级的列表。原创 2024-01-16 07:45:31 · 921 阅读 · 0 评论 -
工具系列:时间序列预测工具Dart介绍_静态协变量
将静态协变量定义为一个,其中列代表静态变量,行代表它们将被添加到的单变量/多变量TimeSeries的组件。行数必须为1或等于series的组件数。对于具有多个组件的多元时间序列,使用单行静态协变量数据框,静态协变量将被全局映射到所有组件。# 创建一个包含连续和分类静态协变量的数据框,其中包含一行数据# 创建一个包含多个组件的多元静态协变量数据框,注意行数与`series`的组件数相匹配cont cat0 0 acont cat0 0 a1 2 c2 1 b。原创 2024-01-16 07:41:12 · 1100 阅读 · 0 评论 -
工具系列:时间序列预测工具Dart介绍_时间序列预测的迁移学习
本笔记本的目标是探索时间序列预测的迁移学习,即在一个时间序列数据集上训练预测模型,并在另一个数据集上使用它。该笔记本是100%自包含的,即它还包含安装依赖项和下载使用的数据集的必要命令。根据什么构成“学习任务”,我们在这里所称的迁移学习也可以从元学习的角度来看(或称为“学习如何学习”),在推理时模型可以自适应新任务(例如预测新的时间序列),而无需进一步训练[1]。本笔记本是应用机器学习日会议于2022年3月在瑞士洛桑举行的“预测和元学习”研讨会的改编版本。初始设置-导入,下载数据的函数等。原创 2024-01-16 07:39:07 · 981 阅读 · 0 评论 -
工具系列:时间序列预测工具Dart介绍_DeepTCN模型
这是一个使用TCN模型进行概率预测的例子,非常接近于https://arxiv.org/abs/1906.04397中描述的DeepTCN。最后,我们将历史预测连接起来,得到一个单一连续的(在时间轴上)时间序列。让我们加载模型的最佳性能状态。原创 2024-01-15 09:13:50 · 488 阅读 · 0 评论 -
工具系列:时间序列预测工具Dart介绍_时间融合变压器TFTModel
如果你想要产生确定性的预测而不是分位数预测,你可以使用PyTorch的损失函数(即,设置。再次,我们使用“当前”模型进行24个月的一次性预测 - 即,在训练过程结束时的模型。在输出块(索引0-11)上,我们可以看到模型只关注每个时间点的过去相关性。能够看到特征的重要性以及模型对过去和未来输入的关注度是很好的。由于我们没有定义未来协变量,我们需要告诉模型自动生成未来协变量。由于在我们的示例中已经定义了未来的协变量,所以它们被注释掉了。正如预期的那样,冰淇淋销售的过去历史是编码器中最重要的特征。原创 2024-01-15 09:12:23 · 1046 阅读 · 0 评论 -
工具系列:时间序列预测工具Dart介绍_概率性RNN
作为一个玩具示例,我们创建一个目标时间序列,该序列是通过将正弦波和高斯噪声序列相加而创建的。我们的目标是测试概率循环神经网络是否能够在其预测中模拟这种振荡的不确定性。以下我们将训练一个概率循环神经网络,以自回归的方式预测目标序列,同时考虑噪声成分的调制作为协变量,该协变量在未来是已知的。让我们看看RNN是否能利用这些信息。我们可以看到,除了正确预测目标的简单振荡行为之外,当噪声成分较高时,循环神经网络在其预测中表达了更多的不确定性。最后,我们将历史预测连接起来,得到一个单一连续的(在时间轴上)时间序列。原创 2024-01-14 09:18:41 · 401 阅读 · 0 评论 -
工具系列:时间序列预测工具Dart介绍_N-BEATS深度学习模型
竞赛中优于成熟的统计方法。通常情况下,我们需要使用额外的测试集来验证模型在未见过的数据上的表现,但是在这个例子中我们将跳过这一步。我们在一家溪流发电厂的日常能源生成数据集上对NBEATS进行测试,因为该数据集展示了不同级别的季节性。尽可能少地使用先前的知识,没有特征工程,没有缩放,也没有可能被认为是时间序列特定的内部架构组件。让我们看看模型在不断扩大的训练窗口下,以及预测的时间范围为7的情况下会产生哪些历史预测。让我们来看看模型在不断扩大的训练窗口下以及预测期为7的情况下会产生的历史预测。原创 2024-01-14 09:17:23 · 1332 阅读 · 0 评论 -
工具系列:时间序列预测工具Dart介绍_Transformer模型
让我们对我们的“Transformer”模型进行回测,以评估其在6个月的预测周期内的表现。在这个笔记本中,我们展示了如何使用darts来使用Transformer模型。然后,通过使用在训练过程中获得的最佳模型,根据验证损失进行操作。现在,让我们在更复杂的数据集“月度太阳黑子”上测试变压器架构。首先,我们将在“航空旅客”数据集上测试变压器架构的性能。如果你是darts的新手,我们建议你先跟随。让我们来看一下验证集上的预测结果。首先,让我们进行一步预测。目标是进行一步预测。原创 2024-01-14 09:15:17 · 440 阅读 · 0 评论 -
工具系列:时间序列预测工具Dart介绍_时间卷积网络TCN
稍后,当我们训练它时,模型将将其内部输入宽度初始化为2,因为我们有一个维度用于时间序列,另一个维度用于协变量月份时间序列(尽管对我们来说这是透明的)。参数,它将自动选择为确保每个输出条目的完整历史覆盖的最小数量,即每个输出将依赖于整个输入。此外,由于我们稍后想要模拟一个历史预测,预测未来6个月,我们必须确保我们的。在这个笔记本中,我们展示了如何使用darts来使用TCNs的示例。我们将从在验证集上表现最佳的检查点中加载模型。让我们尝试在一个更复杂且更大的数据集上使用。在下面的单元格中,我们将构建一个。原创 2024-01-14 09:14:02 · 444 阅读 · 0 评论 -
工具系列:时间序列预测工具Dart介绍_循环神经网络模型RNN
在接下来的过程中,我们可以将整个“covariates”系列作为“future_covariates”参数提供给模型;为了评估我们的模型,我们将在验证集上模拟历史预测,预测时间跨度为3年。如果要使用普通RNN或GRU,分别将“‘LSTM’”替换为“‘RNN’”或“‘GRU’”。具有循环编码器阶段,用于编码其输入,并具有完全连接的神经网络解码器阶段,根据编码器阶段的最后隐藏状态生成长度为。因此,该模型生成预测的“块”,并且仅限于查看与输入目标系列具有相同时间索引的协变量。次迭代创建的,并且需要已知的。原创 2024-01-13 21:20:46 · 941 阅读 · 0 评论 -
工具系列:时间序列预测工具Dart介绍_快速傅里叶变换预测模型(FFT)
第一个改进是在将训练集馈送到FFT算法之前对其进行裁剪,使裁剪后的系列中的第一个时间戳与季节性预测中要预测的第一个时间戳匹配,即具有相同的月份、日期、星期几、时间等。与其仅仅关注FFT模型的表现,我们还可以看看其他一些预测模型在这个新数据集上的MAE表现。令人惊讶的是,在这个数据集上,FFT模型的表现超过了所有其他模型(至少是使用它们的默认参数)。下面的图表告诉我们,使用简单的DFT和随机的训练测试分割很可能会导致糟糕的结果。这是DFT的标准行为,本身相当无用,因为更有效地重复我们的训练集是可以做到的。原创 2024-01-13 21:10:01 · 1142 阅读 · 0 评论 -
工具系列:时间序列预测工具Dart介绍_使用DataTransformer和Pipeline进行数据处理
Pipeline现在假设我们都想要应用上述转换(每日平均),并将数据集重新缩放为0到1之间,以使用基于神经网络的预测模型。我们可以使用Pipeline来同时应用这两个转换,而不是分别应用这两个转换,然后再分别反转它们。# 定义一个Pipeline对象,用于将多个数据处理步骤串联起来# 使用Pipeline对象对训练数据进行处理和转换# 将转换后的数据进行可视化展示如果管道中的所有转换都是可逆的,那么Pipeline对象也是可逆的。# 将经过转换后的数据进行反向转换# 绘制反向转换后的数据图像。原创 2024-01-13 17:50:44 · 1047 阅读 · 0 评论 -
工具系列:时间序列预测工具Dart介绍_多时间序列、预训练模型和协变量
请注意,在下面的代码中,我们使用了36的时间跨度来调用“predict()”,这比模型内部的“output_chunk_length”(12)要长。如上所述,“TCNModel”、“NBEATSModel”、“BlockRNNModel”、“TransformerModel”使用过去的协变量(如果尝试使用“future_covariates”,它们将抱怨)。这些是"外部数据"的时间序列,我们可能不一定有兴趣预测它们,但我们仍然希望将它们作为我们模型的输入,因为它们可能包含有价值的信息。原创 2024-01-13 17:43:22 · 1153 阅读 · 0 评论 -
工具系列:时间序列预测工具Dart介绍_快速入门
我们只会展示一些最小的“入门”示例。如果需要更深入的信息,您可以参考我们的和。原创 2024-01-13 13:43:29 · 1688 阅读 · 0 评论