指标¶
一些用于比较时间序列的指标。
- darts.metrics.metrics.ae(actual_series, pred_series, intersect=True, *, time_reduction=None, component_reduction=<function nanmean>, series_reduction=None, n_jobs=1, verbose=False)[源代码]¶
绝对误差 (AE)。
对于长度为 \(T\) 的真实序列 \(y\) 和预测序列 \(\hat{y}\),它是按组件/列和时间步 \(t\) 计算的:
\[|y_t - \hat{y}_t|\]如果序列中的任何一个包含多个样本(即随机),\(\hat{y}_t\) 是时间步 \(t\) 所有样本的中位数。
- 参数
actual_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 实际系列(的序列)。pred_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 预测序列(的序列)。intersect (
bool) – 对于在时间上重叠但没有相同时间索引的时间序列,设置 True 将仅考虑它们在共同时间间隔(时间交集)内的值。time_reduction (
Optional[Callable[…,ndarray],None]) – 可选地,一个用于在时间轴上聚合指标的函数。它必须将形状为 (t, c) 的 np.ndarray 缩减为形状为 (c,) 的 np.ndarray。该函数以np.ndarray和一个名为 axis 的参数作为输入,并返回缩减后的数组。axis 接收值 0,对应于时间轴。如果为 None,将返回每个时间步的指标。component_reduction (
Optional[Callable[[ndarray],float],None]) – 可选地,一个用于在组件/列轴上聚合指标的函数。它必须将形状为 (t, c) 的 np.ndarray 减少为形状为 (t,) 的 np.ndarray。该函数以一个np.ndarray和一个名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 1,对应于组件轴。如果为 None,将返回每个组件的指标。series_reduction (
Optional[Callable[[ndarray],Union[float,ndarray]],None]) – 可选地,一个用于在序列轴上聚合指标的函数。它必须将形状为 (s, t, c) 的 np.ndarray 减少为形状为 (t, c) 的 np.ndarray。该函数以np.ndarray和名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 0,对应于序列轴。如果为 None,将返回每个序列的指标。series_reduction – 可选地,一个以
np.ndarray为输入并返回标量值或np.ndarray的函数。此函数用于在指标在多个序列上评估时(例如,在Sequence[TimeSeries]上)聚合指标。默认情况下,返回每个序列的指标。示例:series_reduction=np.nanmean,将返回所有序列指标的平均值。n_jobs (
int) – 要并行运行的作业数量。只有在输入为Sequence[TimeSeries]时才会创建并行作业,并行处理不同的TimeSeries。默认为 1`(顺序执行)。将参数设置为 `-1 表示使用所有可用的处理器。verbose (
bool) – 可选地,是否打印操作进度
- 返回类型
Union[float,List[float],ndarray,List[ndarray]]- 返回
float – 一个单一的指标评分:
单变量序列。
带有 component_reduction 的单变量序列。
一个包含 series_reduction、component_reduction 和 time_reduction 的单/多变量序列(列表)。
np.ndarray – 一个包含指标分数的 numpy 数组。该数组的形状为 (n 时间步长, n 组件),不包括时间和组件的减少。对于:
单变量或多变量序列,且至少 component_reduction=None。
单变量/多变量序列,且至少 time_reduction=None。
包括 series_reduction 在内的单变量/多变量序列,并且至少有一个 component_reduction=None 或 time_reduction=None。
List[float] – 与类型 float 相同,但适用于一系列序列。
List[np.ndarray] – 与类型 np.ndarray 相同,但适用于一系列序列。
- darts.metrics.metrics.ape(actual_series, pred_series, intersect=True, *, time_reduction=None, component_reduction=<function nanmean>, series_reduction=None, n_jobs=1, verbose=False)[源代码]¶
绝对百分比误差 (APE)。
对于真实序列 \(y\) 和预测序列 \(\hat{y}\) ,长度为 \(T\) ,它是按每个分量/列和时间步 \(t\) 计算的百分比值:
\[100 \cdot \left| \frac{y_t - \hat{y}_t}{y_t} \right|\]请注意,如果对于某些 \(t\) 有 \(y_t = 0\),它将引发 ValueError。在这些情况下,考虑使用绝对缩放误差(
ase())。如果序列中的任何一个包含多个样本(即随机),\(\hat{y}_t\) 是时间步 \(t\) 所有样本的中位数。
- 参数
actual_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 实际系列(的序列)。pred_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 预测序列(的序列)。intersect (
bool) – 对于在时间上重叠但没有相同时间索引的时间序列,设置 True 将仅考虑它们在共同时间间隔(时间交集)内的值。time_reduction (
Optional[Callable[…,ndarray],None]) – 可选地,一个用于在时间轴上聚合指标的函数。它必须将形状为 (t, c) 的 np.ndarray 缩减为形状为 (c,) 的 np.ndarray。该函数以np.ndarray和一个名为 axis 的参数作为输入,并返回缩减后的数组。axis 接收值 0,对应于时间轴。如果为 None,将返回每个时间步的指标。component_reduction (
Optional[Callable[[ndarray],float],None]) – 可选地,一个用于在组件/列轴上聚合指标的函数。它必须将形状为 (t, c) 的 np.ndarray 减少为形状为 (t,) 的 np.ndarray。该函数以一个np.ndarray和一个名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 1,对应于组件轴。如果为 None,将返回每个组件的指标。series_reduction (
Optional[Callable[[ndarray],Union[float,ndarray]],None]) – 可选地,一个用于在序列轴上聚合指标的函数。它必须将形状为 (s, t, c) 的 np.ndarray 减少为形状为 (t, c) 的 np.ndarray。该函数以np.ndarray和名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 0,对应于序列轴。如果为 None,将返回每个序列的指标。n_jobs (
int) – 要并行运行的作业数量。只有在输入为Sequence[TimeSeries]时才会创建并行作业,并行处理不同的TimeSeries。默认为 1`(顺序执行)。将参数设置为 `-1 表示使用所有可用的处理器。verbose (
bool) – 可选地,是否打印操作进度
- 引发
ValueError – 如果 actual_series 包含一些零。
- 返回类型
Union[float,List[float],ndarray,List[ndarray]]- 返回
float – 一个单一的指标评分:
单变量序列。
带有 component_reduction 的单变量序列。
一个包含 series_reduction、component_reduction 和 time_reduction 的单/多变量序列(列表)。
np.ndarray – 一个包含指标分数的 numpy 数组。该数组的形状为 (n 时间步长, n 组件),不包括时间和组件的减少。对于:
单变量或多变量序列,且至少 component_reduction=None。
单变量/多变量序列,且至少 time_reduction=None。
包括 series_reduction 在内的单变量/多变量序列,并且至少有一个 component_reduction=None 或 time_reduction=None。
List[float] – 与类型 float 相同,但适用于一系列序列。
List[np.ndarray] – 与类型 np.ndarray 相同,但适用于一系列序列。
- darts.metrics.metrics.arre(actual_series, pred_series, intersect=True, *, time_reduction=None, component_reduction=<function nanmean>, series_reduction=None, n_jobs=1, verbose=False)[源代码]¶
绝对范围相对误差 (ARRE)。
对于真实序列 \(y\) 和预测序列 \(\hat{y}\) ,长度为 \(T\) ,它是按每个分量/列和时间步 \(t\) 计算的百分比值:
\[100 \cdot \left| \frac{y_t - \hat{y}_t} {\max_t{y_t} - \min_t{y_t}} \right|\]如果序列中的任何一个包含多个样本(即随机),\(\hat{y}_t\) 是时间步 \(t\) 所有样本的中位数。
- 参数
actual_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 实际系列(的序列)。pred_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 预测序列(的序列)。intersect (
bool) – 对于在时间上重叠但没有相同时间索引的时间序列,设置 True 将仅考虑它们在共同时间间隔(时间交集)内的值。time_reduction (
Optional[Callable[…,ndarray],None]) – 可选地,一个用于在时间轴上聚合指标的函数。它必须将形状为 (t, c) 的 np.ndarray 缩减为形状为 (c,) 的 np.ndarray。该函数以np.ndarray和一个名为 axis 的参数作为输入,并返回缩减后的数组。axis 接收值 0,对应于时间轴。如果为 None,将返回每个时间步的指标。component_reduction (
Optional[Callable[[ndarray],float],None]) – 可选地,一个用于在组件/列轴上聚合指标的函数。它必须将形状为 (t, c) 的 np.ndarray 减少为形状为 (t,) 的 np.ndarray。该函数以一个np.ndarray和一个名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 1,对应于组件轴。如果为 None,将返回每个组件的指标。series_reduction (
Optional[Callable[[ndarray],Union[float,ndarray]],None]) – 可选地,一个用于在序列轴上聚合指标的函数。它必须将形状为 (s, t, c) 的 np.ndarray 减少为形状为 (t, c) 的 np.ndarray。该函数以np.ndarray和名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 0,对应于序列轴。如果为 None,将返回每个序列的指标。n_jobs (
int) – 要并行运行的作业数量。只有在输入为Sequence[TimeSeries]时才会创建并行作业,并行处理不同的TimeSeries。默认为 1`(顺序执行)。将参数设置为 `-1 表示使用所有可用的处理器。verbose (
bool) – 可选地,是否打印操作进度
- 引发
ValueError – 如果 \(\max_t{y_t} = \min_t{y_t}\)。
- 返回类型
Union[float,List[float],ndarray,List[ndarray]]- 返回
float – 一个单一的指标评分:
单变量序列。
带有 component_reduction 的单变量序列。
一个包含 series_reduction、component_reduction 和 time_reduction 的单/多变量序列(列表)。
np.ndarray – 一个包含指标分数的 numpy 数组。该数组的形状为 (n 时间步长, n 组件),不包括时间和组件的减少。对于:
单变量或多变量序列,且至少 component_reduction=None。
单变量/多变量序列,且至少 time_reduction=None。
包括 series_reduction 在内的单变量/多变量序列,并且至少有一个 component_reduction=None 或 time_reduction=None。
List[float] – 与类型 float 相同,但适用于一系列序列。
List[np.ndarray] – 与类型 np.ndarray 相同,但适用于一系列序列。
- darts.metrics.metrics.ase(actual_series, pred_series, insample, m=1, intersect=True, *, time_reduction=None, component_reduction=<function nanmean>, series_reduction=None, n_jobs=1, verbose=False)[源代码]¶
绝对缩放误差 (ASE) (有关缩放预测误差的更多信息,请参见 [1] )。
它是绝对误差(AE)按朴素m季节性预测的平均绝对误差(MAE)进行缩放。
对于长度为 \(T\) 的真实序列 \(y\) 和预测序列 \(\hat{y}\),它是按组件/列和时间步 \(t\) 计算的:
\[$\frac{AE(y_{t_p+1:t_p+T}, \hat{y}_{t_p+1:t_p+T})}{E_m}$,\]其中 \(t_p\) 是预测时间(在第一个预测点之前的一步),\(AE\) 是绝对误差(
ae()),而 \(E_m\) 是 insample 系列 \(y_{0:t_p}\) 结束的真实系列)上的朴素 m-季节性预测的平均绝对误差(MAE):\[E_m = MAE(y_{m:t_p}, y_{0:t_p - m})。\]如果序列中的任何一个包含多个样本(即随机),\(\hat{y}_t\) 是时间步 \(t\) 所有样本的中位数。
- 参数
actual_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 实际系列(的序列)。pred_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 预测序列(的序列)。insample (
Union[TimeSeries,Sequence[TimeSeries]]) – 用于预测 pred_series 的训练系列。该系列用于计算在训练数据上朴素预测器所获得误差的尺度。m (
int) – 用于计算误差尺度 \(E_m\) 的差分季节性(如指标描述中所述)。\(m=1\) 对应于非季节性的 \(E_m\) 对应于季节性的 \(E_m\)。intersect (
bool) – 对于在时间上重叠但没有相同时间索引的时间序列,设置 True 将仅考虑它们在共同时间间隔(时间交集)内的值。time_reduction (
Optional[Callable[…,ndarray],None]) – 可选地,一个用于在时间轴上聚合指标的函数。它必须将形状为 (t, c) 的 np.ndarray 缩减为形状为 (c,) 的 np.ndarray。该函数以np.ndarray和一个名为 axis 的参数作为输入,并返回缩减后的数组。axis 接收值 0,对应于时间轴。如果为 None,将返回每个时间步的指标。component_reduction (
Optional[Callable[[ndarray],float],None]) – 可选地,一个用于在组件/列轴上聚合指标的函数。它必须将形状为 (t, c) 的 np.ndarray 减少为形状为 (t,) 的 np.ndarray。该函数以一个np.ndarray和一个名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 1,对应于组件轴。如果为 None,将返回每个组件的指标。series_reduction (
Optional[Callable[[ndarray],Union[float,ndarray]],None]) – 可选地,一个用于在序列轴上聚合指标的函数。它必须将形状为 (s, t, c) 的 np.ndarray 减少为形状为 (t, c) 的 np.ndarray。该函数以np.ndarray和名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 0,对应于序列轴。如果为 None,将返回每个序列的指标。n_jobs (
int) – 要并行运行的作业数量。只有在输入为Sequence[TimeSeries]时才会创建并行作业,并行处理不同的TimeSeries。默认为 1`(顺序执行)。将参数设置为 `-1 表示使用所有可用的处理器。verbose (
bool) – 可选地,是否打印操作进度
- 引发
ValueError – 如果 insample 序列是周期性的( \(y_t = y_{t-m}\) ),或者 insample 中的任何序列在相应的 pred_series 预测开始前一个时间步长结束。
- 返回类型
Union[float,List[float],ndarray,List[ndarray]]- 返回
float – 一个单一的指标评分:
单变量序列。
带有 component_reduction 的单变量序列。
一个包含 series_reduction、component_reduction 和 time_reduction 的单/多变量序列(列表)。
np.ndarray – 一个包含指标分数的 numpy 数组。该数组的形状为 (n 时间步长, n 组件),不包括时间和组件的减少。对于:
单变量或多变量序列,且至少 component_reduction=None。
单变量/多变量序列,且至少 time_reduction=None。
包括 series_reduction 在内的单变量/多变量序列,并且至少有一个 component_reduction=None 或 time_reduction=None。
List[float] – 与类型 float 相同,但适用于一系列序列。
List[np.ndarray] – 与类型 np.ndarray 相同,但适用于一系列序列。
引用
- darts.metrics.metrics.coefficient_of_variation(actual_series, pred_series, intersect=True, *, component_reduction=<function nanmean>, series_reduction=None, n_jobs=1, verbose=False)[源代码]¶
变异系数 (百分比)。
对于真实序列 \(y\) 和预测序列 \(\hat{y}\),长度为 \(T\),它是按组件/列计算的百分比值,公式如下:
\[100 \cdot \text{RMSE}(y_t, \hat{y}_t) / \bar{y},\]其中 \(RMSE\) 是均方根误差 (
rmse()),而 \(\bar{y}\) 是 \(y\) 在所有时间步上的平均值。如果序列中的任何一个包含多个样本(即随机),\(\hat{y}_t\) 是时间步 \(t\) 所有样本的中位数。
- 参数
actual_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 实际系列(的序列)。pred_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 预测序列(的序列)。intersect (
bool) – 对于在时间上重叠但没有相同时间索引的时间序列,设置 True 将仅考虑它们在共同时间间隔(时间交集)内的值。component_reduction (
Optional[Callable[[ndarray],float],None]) – 可选地,一个用于在组件/列轴上聚合指标的函数。它必须将形状为 (t, c) 的 np.ndarray 减少为形状为 (t,) 的 np.ndarray。该函数以一个np.ndarray和一个名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 1,对应于组件轴。如果为 None,将返回每个组件的指标。series_reduction (
Optional[Callable[[ndarray],Union[float,ndarray]],None]) – 可选地,一个用于在序列轴上聚合指标的函数。它必须将形状为 (s, t, c) 的 np.ndarray 减少为形状为 (t, c) 的 np.ndarray。该函数以np.ndarray和名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 0,对应于序列轴。如果为 None,将返回每个序列的指标。n_jobs (
int) – 要并行运行的作业数量。只有在输入为Sequence[TimeSeries]时才会创建并行作业,并行处理不同的TimeSeries。默认为 1`(顺序执行)。将参数设置为 `-1 表示使用所有可用的处理器。verbose (
bool) – 可选地,是否打印操作进度
- 返回类型
Union[float,List[float],ndarray,List[ndarray]]- 返回
float – 一个单一的指标评分:
单变量序列。
带有 component_reduction 的单变量序列。
包含 series_reduction 和 component_reduction 的单变量/多变量序列(列表)。
np.ndarray – 一个包含指标分数的 numpy 数组。该数组的形状为 (n 个组件,),没有组件减少。
单变量或多变量序列,且至少 component_reduction=None。
包括 series_reduction 和 component_reduction=None 的单变量/多变量序列序列。
List[float] – 与类型 float 相同,但适用于一系列序列。
List[np.ndarray] – 与类型 np.ndarray 相同,但适用于一系列序列。
- darts.metrics.metrics.dtw_metric(actual_series, pred_series, metric=<function mae>, *, component_reduction=<function nanmean>, series_reduction=None, n_jobs=1, verbose=False, **kwargs)[源代码]¶
在将 actual_series 和 pred_series 传递给指标之前,应用动态时间规整(Dynamic Time Warping)。这使得可以比较不同长度、相位和时间索引的序列。
默认使用
mae()作为评估指标。更多支持的参数请参见
dtw()。- 参数
actual_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 实际系列(的序列)。pred_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 预测序列(的序列)。metric (
Callable[[Union[TimeSeries,Sequence[TimeSeries]],Union[TimeSeries,Sequence[TimeSeries]]],Union[float,List[float],ndarray,List[ndarray]]]) – 选定的带有签名 ‘[[TimeSeries, TimeSeries], float]’ 的指标。默认:mae。component_reduction (
Optional[Callable[[ndarray],float],None]) – 可选地,一个用于在组件/列轴上聚合指标的函数。它必须将形状为 (t, c) 的 np.ndarray 减少为形状为 (t,) 的 np.ndarray。该函数以一个np.ndarray和一个名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 1,对应于组件轴。如果为 None,将返回每个组件的指标。series_reduction (
Optional[Callable[[ndarray],Union[float,ndarray]],None]) – 可选地,一个用于在序列轴上聚合指标的函数。它必须将形状为 (s, t, c) 的 np.ndarray 减少为形状为 (t, c) 的 np.ndarray。该函数以np.ndarray和名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 0,对应于序列轴。如果为 None,将返回每个序列的指标。n_jobs (
int) – 要并行运行的作业数量。只有在输入为Sequence[TimeSeries]时才会创建并行作业,并行处理不同的TimeSeries。默认为 1`(顺序执行)。将参数设置为 `-1 表示使用所有可用的处理器。verbose (
bool) – 可选地,是否打印操作进度
- 返回类型
Union[float,List[float],ndarray,List[ndarray]]- 返回
float – 一个单一的指标评分:
单变量序列。
带有 component_reduction 的单变量序列。
包含 series_reduction 和 component_reduction 的单变量/多变量序列(列表)。
np.ndarray – 一个包含指标分数的 numpy 数组。该数组的形状为 (n 个组件,),没有组件减少。
单变量或多变量序列,且至少 component_reduction=None。
包括 series_reduction 和 component_reduction=None 的单变量/多变量序列序列。
List[float] – 与类型 float 相同,但适用于一系列序列。
List[np.ndarray] – 与类型 np.ndarray 相同,但适用于一系列序列。
- darts.metrics.metrics.err(actual_series, pred_series, intersect=True, *, time_reduction=None, component_reduction=<function nanmean>, series_reduction=None, n_jobs=1, verbose=False)[源代码]¶
错误 (ERR)。
对于长度为 \(T\) 的真实序列 \(y\) 和预测序列 \(\hat{y}\),它是按组件/列和时间步 \(t\) 计算的:
\[y_t - \hat{y}_t\]如果序列中的任何一个包含多个样本(即随机),\(\hat{y}_t\) 是时间步 \(t\) 所有样本的中位数。
- 参数
actual_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 实际系列(的序列)。pred_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 预测序列(的序列)。intersect (
bool) – 对于在时间上重叠但没有相同时间索引的时间序列,设置 True 将仅考虑它们在共同时间间隔(时间交集)内的值。time_reduction (
Optional[Callable[…,ndarray],None]) – 可选地,一个用于在时间轴上聚合指标的函数。它必须将形状为 (t, c) 的 np.ndarray 缩减为形状为 (c,) 的 np.ndarray。该函数以np.ndarray和一个名为 axis 的参数作为输入,并返回缩减后的数组。axis 接收值 0,对应于时间轴。如果为 None,将返回每个时间步的指标。component_reduction (
Optional[Callable[[ndarray],float],None]) – 可选地,一个用于在组件/列轴上聚合指标的函数。它必须将形状为 (t, c) 的 np.ndarray 减少为形状为 (t,) 的 np.ndarray。该函数以一个np.ndarray和一个名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 1,对应于组件轴。如果为 None,将返回每个组件的指标。series_reduction (
Optional[Callable[[ndarray],Union[float,ndarray]],None]) – 可选地,一个用于在序列轴上聚合指标的函数。它必须将形状为 (s, t, c) 的 np.ndarray 减少为形状为 (t, c) 的 np.ndarray。该函数以np.ndarray和名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 0,对应于序列轴。如果为 None,将返回每个序列的指标。n_jobs (
int) – 要并行运行的作业数量。只有在输入为Sequence[TimeSeries]时才会创建并行作业,并行处理不同的TimeSeries。默认为 1`(顺序执行)。将参数设置为 `-1 表示使用所有可用的处理器。verbose (
bool) – 可选地,是否打印操作进度
- 返回类型
Union[float,List[float],ndarray,List[ndarray]]- 返回
float – 一个单一的指标评分:
单变量序列。
带有 component_reduction 的单变量序列。
一个包含 series_reduction、component_reduction 和 time_reduction 的单/多变量序列(列表)。
np.ndarray – 一个包含指标分数的 numpy 数组。该数组的形状为 (n 时间步长, n 组件),不包括时间和组件的减少。对于:
单变量或多变量序列,且至少 component_reduction=None。
单变量/多变量序列,且至少 time_reduction=None。
包括 series_reduction 在内的单变量/多变量序列,并且至少有一个 component_reduction=None 或 time_reduction=None。
List[float] – 与类型 float 相同,但适用于一系列序列。
List[np.ndarray] – 与类型 np.ndarray 相同,但适用于一系列序列。
- darts.metrics.metrics.mae(actual_series, pred_series, intersect=True, *, component_reduction=<function nanmean>, series_reduction=None, n_jobs=1, verbose=False)[源代码]¶
平均绝对误差 (MAE)。
对于长度为 \(T\) 的真实序列 \(y\) 和预测序列 \(\hat{y}\),它是按组件/列计算的:
\[\frac{1}{T}\sum_{t=1}^T{|y_t - \hat{y}_t|}\]如果序列中的任何一个包含多个样本(即随机),\(\hat{y}_t\) 是时间步 \(t\) 所有样本的中位数。
- 参数
actual_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 实际系列(的序列)。pred_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 预测序列(的序列)。intersect (
bool) – 对于在时间上重叠但没有相同时间索引的时间序列,设置 True 将仅考虑它们在共同时间间隔(时间交集)内的值。component_reduction (
Optional[Callable[[ndarray],float],None]) – 可选地,一个用于在组件/列轴上聚合指标的函数。它必须将形状为 (t, c) 的 np.ndarray 减少为形状为 (t,) 的 np.ndarray。该函数以一个np.ndarray和一个名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 1,对应于组件轴。如果为 None,将返回每个组件的指标。series_reduction (
Optional[Callable[[ndarray],Union[float,ndarray]],None]) – 可选地,一个用于在序列轴上聚合指标的函数。它必须将形状为 (s, t, c) 的 np.ndarray 减少为形状为 (t, c) 的 np.ndarray。该函数以np.ndarray和名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 0,对应于序列轴。如果为 None,将返回每个序列的指标。series_reduction – 可选地,一个以
np.ndarray为输入并返回标量值或np.ndarray的函数。此函数用于在指标在多个序列上评估时(例如,在Sequence[TimeSeries]上)聚合指标。默认情况下,返回每个序列的指标。示例:series_reduction=np.nanmean,将返回所有序列指标的平均值。n_jobs (
int) – 要并行运行的作业数量。只有在输入为Sequence[TimeSeries]时才会创建并行作业,并行处理不同的TimeSeries。默认为 1`(顺序执行)。将参数设置为 `-1 表示使用所有可用的处理器。verbose (
bool) – 可选地,是否打印操作进度
- 返回类型
Union[float,List[float],ndarray,List[ndarray]]- 返回
float – 一个单一的指标评分:
单变量序列。
带有 component_reduction 的单变量序列。
包含 series_reduction 和 component_reduction 的单变量/多变量序列(列表)。
np.ndarray – 一个包含指标分数的 numpy 数组。该数组的形状为 (n 个组件,),没有组件减少。
单变量或多变量序列,且至少 component_reduction=None。
包括 series_reduction 和 component_reduction=None 的单变量/多变量序列序列。
List[float] – 与类型 float 相同,但适用于一系列序列。
List[np.ndarray] – 与类型 np.ndarray 相同,但适用于一系列序列。
- darts.metrics.metrics.mape(actual_series, pred_series, intersect=True, *, component_reduction=<function nanmean>, series_reduction=None, n_jobs=1, verbose=False)[源代码]¶
平均绝对百分比误差 (MAPE)。
对于真实序列 \(y\) 和预测序列 \(\hat{y}\),长度为 \(T\),它是按每个分量/列计算的百分比值:
\[100 \cdot \frac{1}{T} \sum_{t=1}^{T}{\left| \frac{y_t - \hat{y}_t}{y_t} \right|}\]注意,如果对于某些 \(t\) 有 \(y_t = 0\),它将引发 ValueError。在这些情况下,考虑使用平均绝对缩放误差(
mase())。如果序列中的任何一个包含多个样本(即随机),\(\hat{y}_t\) 是时间步 \(t\) 所有样本的中位数。
- 参数
actual_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 实际系列(的序列)。pred_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 预测序列(的序列)。intersect (
bool) – 对于在时间上重叠但没有相同时间索引的时间序列,设置 True 将仅考虑它们在共同时间间隔(时间交集)内的值。component_reduction (
Optional[Callable[[ndarray],float],None]) – 可选地,一个用于在组件/列轴上聚合指标的函数。它必须将形状为 (t, c) 的 np.ndarray 减少为形状为 (t,) 的 np.ndarray。该函数以一个np.ndarray和一个名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 1,对应于组件轴。如果为 None,将返回每个组件的指标。series_reduction (
Optional[Callable[[ndarray],Union[float,ndarray]],None]) – 可选地,一个用于在序列轴上聚合指标的函数。它必须将形状为 (s, t, c) 的 np.ndarray 减少为形状为 (t, c) 的 np.ndarray。该函数以np.ndarray和名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 0,对应于序列轴。如果为 None,将返回每个序列的指标。n_jobs (
int) – 要并行运行的作业数量。只有在输入为Sequence[TimeSeries]时才会创建并行作业,并行处理不同的TimeSeries。默认为 1`(顺序执行)。将参数设置为 `-1 表示使用所有可用的处理器。verbose (
bool) – 可选地,是否打印操作进度
- 引发
ValueError – 如果 actual_series 包含一些零。
- 返回类型
Union[float,List[float],ndarray,List[ndarray]]- 返回
float – 一个单一的指标评分:
单变量序列。
带有 component_reduction 的单变量序列。
包含 series_reduction 和 component_reduction 的单变量/多变量序列(列表)。
np.ndarray – 一个包含指标分数的 numpy 数组。该数组的形状为 (n 个组件,),没有组件减少。
单变量或多变量序列,且至少 component_reduction=None。
包括 series_reduction 和 component_reduction=None 的单变量/多变量序列序列。
List[float] – 与类型 float 相同,但适用于一系列序列。
List[np.ndarray] – 与类型 np.ndarray 相同,但适用于一系列序列。
- darts.metrics.metrics.marre(actual_series, pred_series, intersect=True, *, component_reduction=<function nanmean>, series_reduction=None, n_jobs=1, verbose=False)[源代码]¶
平均绝对范围相对误差 (MARRE)。
对于真实序列 \(y\) 和预测序列 \(\hat{y}\),长度为 \(T\),它是按每个分量/列计算的百分比值:
\[100 \cdot \frac{1}{T} \sum_{t=1}^{T} {\left| \frac{y_t - \hat{y_t}} {\max_t{y_t} - \min_t{y_t}} \right|}\]如果序列中的任何一个包含多个样本(即随机),\(\hat{y}_t\) 是时间步 \(t\) 所有样本的中位数。
- 参数
actual_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 实际系列(的序列)。pred_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 预测序列(的序列)。intersect (
bool) – 对于在时间上重叠但没有相同时间索引的时间序列,设置 True 将仅考虑它们在共同时间间隔(时间交集)内的值。component_reduction (
Optional[Callable[[ndarray],float],None]) – 可选地,一个用于在组件/列轴上聚合指标的函数。它必须将形状为 (t, c) 的 np.ndarray 减少为形状为 (t,) 的 np.ndarray。该函数以一个np.ndarray和一个名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 1,对应于组件轴。如果为 None,将返回每个组件的指标。series_reduction (
Optional[Callable[[ndarray],Union[float,ndarray]],None]) – 可选地,一个用于在序列轴上聚合指标的函数。它必须将形状为 (s, t, c) 的 np.ndarray 减少为形状为 (t, c) 的 np.ndarray。该函数以np.ndarray和名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 0,对应于序列轴。如果为 None,将返回每个序列的指标。n_jobs (
int) – 要并行运行的作业数量。只有在输入为Sequence[TimeSeries]时才会创建并行作业,并行处理不同的TimeSeries。默认为 1`(顺序执行)。将参数设置为 `-1 表示使用所有可用的处理器。verbose (
bool) – 可选地,是否打印操作进度
- 引发
ValueError – 如果 \(\max_t{y_t} = \min_t{y_t}\)。
float – 单一指标评分用于: - 单一单变量序列。 - 单一多变量序列,使用 component_reduction。 - 序列(列表)的单/多变量序列,使用 series_reduction 和 component_reduction。
np.ndarray – 一个包含指标分数的 numpy 数组。数组的形状为 (n 个组件,),没有组件减少。对于: - 单个多元时间序列和至少 component_reduction=None。 - 包括 series_reduction 和 component_reduction=None 的单变量/多元时间序列序列。
List[float] – 与类型 float 相同,但适用于一系列序列。
List[np.ndarray] – 与类型 np.ndarray 相同,但对于一系列序列。
- 返回类型
Union[float,List[float],ndarray,List[ndarray]]
- darts.metrics.metrics.mase(actual_series, pred_series, insample, m=1, intersect=True, *, component_reduction=<function nanmean>, series_reduction=None, n_jobs=1, verbose=False)[源代码]¶
平均绝对缩放误差 (MASE) (有关缩放预测误差的更多信息,请参见 [1] )。
它是均绝对误差(MAE)按朴素m季节性预测的MAE进行缩放。
对于长度为 \(T\) 的真实序列 \(y\) 和预测序列 \(\hat{y}\),它是按组件/列计算的:
\[$\frac{MAE(y_{t_p+1:t_p+T}, \hat{y}_{t_p+1:t_p+T})}{E_m}$,\]其中 \(t_p\) 是预测时间(在第一个预测点之前的一步),\(MAE\) 是平均绝对误差(
mae()),而 \(E_m\) 是 insample 系列 \(y_{0:t_p}\) 结束的真实系列)上的朴素 m-季节性预测的 MAE:\[E_m = MAE(y_{m:t_p}, y_{0:t_p - m})。\]如果序列中的任何一个包含多个样本(即随机),\(\hat{y}_t\) 是时间步 \(t\) 所有样本的中位数。
- 参数
actual_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 实际系列(的序列)。pred_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 预测序列(的序列)。insample (
Union[TimeSeries,Sequence[TimeSeries]]) – 用于预测 pred_series 的训练系列。该系列用于计算在训练数据上朴素预测器所获得误差的尺度。m (
int) – 用于计算误差尺度 \(E_m\) 的差分季节性(如指标描述中所述)。\(m=1\) 对应于非季节性的 \(E_m\) 对应于季节性的 \(E_m\)。intersect (
bool) – 对于在时间上重叠但没有相同时间索引的时间序列,设置 True 将仅考虑它们在共同时间间隔(时间交集)内的值。component_reduction (
Optional[Callable[[ndarray],float],None]) – 可选地,一个用于在组件/列轴上聚合指标的函数。它必须将形状为 (t, c) 的 np.ndarray 减少为形状为 (t,) 的 np.ndarray。该函数以一个np.ndarray和一个名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 1,对应于组件轴。如果为 None,将返回每个组件的指标。series_reduction (
Optional[Callable[[ndarray],Union[float,ndarray]],None]) – 可选地,一个用于在序列轴上聚合指标的函数。它必须将形状为 (s, t, c) 的 np.ndarray 减少为形状为 (t, c) 的 np.ndarray。该函数以np.ndarray和名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 0,对应于序列轴。如果为 None,将返回每个序列的指标。n_jobs (
int) – 要并行运行的作业数量。只有在输入为Sequence[TimeSeries]时才会创建并行作业,并行处理不同的TimeSeries。默认为 1`(顺序执行)。将参数设置为 `-1 表示使用所有可用的处理器。verbose (
bool) – 可选地,是否打印操作进度
- 引发
ValueError – 如果 insample 序列是周期性的( \(y_t = y_{t-m}\) ),或者 insample 中的任何序列在相应的 pred_series 预测开始前一个时间步长结束。
- 返回类型
Union[float,List[float],ndarray,List[ndarray]]- 返回
float – 一个单一的指标评分:
单变量序列。
带有 component_reduction 的单变量序列。
包含 series_reduction 和 component_reduction 的单变量/多变量序列(列表)。
np.ndarray – 一个包含指标分数的 numpy 数组。该数组的形状为 (n 个组件,),没有组件减少。
单变量或多变量序列,且至少 component_reduction=None。
包括 series_reduction 和 component_reduction=None 的单变量/多变量序列序列。
List[float] – 与类型 float 相同,但适用于一系列序列。
List[np.ndarray] – 与类型 np.ndarray 相同,但适用于一系列序列。
引用
- darts.metrics.metrics.merr(actual_series, pred_series, intersect=True, *, component_reduction=<function nanmean>, series_reduction=None, n_jobs=1, verbose=False)[源代码]¶
平均误差 (MERR)。
对于长度为 \(T\) 的真实序列 \(y\) 和预测序列 \(\hat{y}\),它是按组件/列计算的:
\[\frac{1}{T}\sum_{t=1}^T{(y_t - \hat{y}_t)}\]如果序列中的任何一个包含多个样本(即随机),\(\hat{y}_t\) 是时间步 \(t\) 所有样本的中位数。
- 参数
actual_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 实际系列(的序列)。pred_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 预测序列(的序列)。intersect (
bool) – 对于在时间上重叠但没有相同时间索引的时间序列,设置 True 将仅考虑它们在共同时间间隔(时间交集)内的值。component_reduction (
Optional[Callable[[ndarray],float],None]) – 可选地,一个用于在组件/列轴上聚合指标的函数。它必须将形状为 (t, c) 的 np.ndarray 减少为形状为 (t,) 的 np.ndarray。该函数以一个np.ndarray和一个名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 1,对应于组件轴。如果为 None,将返回每个组件的指标。series_reduction (
Optional[Callable[[ndarray],Union[float,ndarray]],None]) – 可选地,一个用于在序列轴上聚合指标的函数。它必须将形状为 (s, t, c) 的 np.ndarray 减少为形状为 (t, c) 的 np.ndarray。该函数以np.ndarray和名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 0,对应于序列轴。如果为 None,将返回每个序列的指标。n_jobs (
int) – 要并行运行的作业数量。只有在输入为Sequence[TimeSeries]时才会创建并行作业,并行处理不同的TimeSeries。默认为 1`(顺序执行)。将参数设置为 `-1 表示使用所有可用的处理器。verbose (
bool) – 可选地,是否打印操作进度
- 返回类型
Union[float,List[float],ndarray,List[ndarray]]- 返回
float – 一个单一的指标评分:
单变量序列。
带有 component_reduction 的单变量序列。
包含 series_reduction 和 component_reduction 的单变量/多变量序列(列表)。
np.ndarray – 一个包含指标分数的 numpy 数组。该数组的形状为 (n 个组件,),没有组件减少。
单变量或多变量序列,且至少 component_reduction=None。
包括 series_reduction 和 component_reduction=None 的单变量/多变量序列序列。
List[float] – 与类型 float 相同,但适用于一系列序列。
List[np.ndarray] – 与类型 np.ndarray 相同,但适用于一系列序列。
- darts.metrics.metrics.mql(actual_series, pred_series, q=0.5, intersect=True, *, component_reduction=<function nanmean>, series_reduction=None, n_jobs=1, verbose=False)[源代码]¶
平均分位数损失 (MQL)。
也称为弹球损失。QL 是一种量化随机/概率 pred_series 中包含 N 个样本的预测值分布中特定分位数 \(q\) 准确性的指标。
MQL 首先计算所有样本值和每个时间步的损失的分位数,然后在时间轴上取平均值。
对于真实的序列 \(y\) 和预测的随机/概率序列(包含 N 个样本) \(\hat{y}\) ,其形状为 \(T \times N\) ,它是按列/分量计算的:
\[2 \frac{1}{T}\sum_{t=1}^T{\max((q - 1) (y_t - \hat{y}_{t,q}), q (y_t - \hat{y}_{t,q}))},\]其中 \(\hat{y}_{t,q}\) 是时间 \(t\) 时所有预测样本值的分位数 \(q\)。因子 2 使得损失更具可解释性,因为对于 q=0.5,损失与平均绝对误差(
mae())相同。- 参数
actual_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 实际系列(的序列)。pred_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 预测序列(的序列)。q (
float) – 损失感兴趣的分位数(浮点数 [0, 1])。intersect (
bool) – 对于在时间上重叠但没有相同时间索引的时间序列,设置 True 将仅考虑它们在共同时间间隔(时间交集)内的值。component_reduction (
Optional[Callable[[ndarray],float],None]) – 可选地,一个用于在组件/列轴上聚合指标的函数。它必须将形状为 (t, c) 的 np.ndarray 减少为形状为 (t,) 的 np.ndarray。该函数以一个np.ndarray和一个名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 1,对应于组件轴。如果为 None,将返回每个组件的指标。series_reduction (
Optional[Callable[[ndarray],Union[float,ndarray]],None]) – 可选地,一个用于在序列轴上聚合指标的函数。它必须将形状为 (s, t, c) 的 np.ndarray 减少为形状为 (t, c) 的 np.ndarray。该函数以np.ndarray和名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 0,对应于序列轴。如果为 None,将返回每个序列的指标。n_jobs (
int) – 要并行运行的作业数量。只有在输入为Sequence[TimeSeries]时才会创建并行作业,并行处理不同的TimeSeries。默认为 1`(顺序执行)。将参数设置为 `-1 表示使用所有可用的处理器。verbose (
bool) – 可选地,是否打印操作进度
- 返回类型
Union[float,List[float],ndarray,List[ndarray]]- 返回
float – 一个单一的指标评分:
单变量序列。
带有 component_reduction 的单变量序列。
包含 series_reduction 和 component_reduction 的单变量/多变量序列(列表)。
np.ndarray – 一个包含指标分数的 numpy 数组。该数组的形状为 (n 个组件,),没有组件减少。
单变量或多变量序列,且至少 component_reduction=None。
包括 series_reduction 和 component_reduction=None 的单变量/多变量序列序列。
List[float] – 与类型 float 相同,但适用于一系列序列。
List[np.ndarray] – 与类型 np.ndarray 相同,但适用于一系列序列。
- darts.metrics.metrics.mse(actual_series, pred_series, intersect=True, *, component_reduction=<function nanmean>, series_reduction=None, n_jobs=1, verbose=False)[源代码]¶
均方误差 (MSE)。
对于长度为 \(T\) 的真实序列 \(y\) 和预测序列 \(\hat{y}\),它是按组件/列计算的:
\[\frac{1}{T}\sum_{t=1}^T{(y_t - \hat{y}_t)^2}.\]如果序列中的任何一个包含多个样本(即随机),\(\hat{y}_t\) 是时间步 \(t\) 所有样本的中位数。
- 参数
actual_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 实际系列(的序列)。pred_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 预测序列(的序列)。intersect (
bool) – 对于在时间上重叠但没有相同时间索引的时间序列,设置 True 将仅考虑它们在共同时间间隔(时间交集)内的值。component_reduction (
Optional[Callable[[ndarray],float],None]) – 可选地,一个用于在组件/列轴上聚合指标的函数。它必须将形状为 (t, c) 的 np.ndarray 减少为形状为 (t,) 的 np.ndarray。该函数以一个np.ndarray和一个名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 1,对应于组件轴。如果为 None,将返回每个组件的指标。series_reduction (
Optional[Callable[[ndarray],Union[float,ndarray]],None]) – 可选地,一个用于在序列轴上聚合指标的函数。它必须将形状为 (s, t, c) 的 np.ndarray 减少为形状为 (t, c) 的 np.ndarray。该函数以np.ndarray和名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 0,对应于序列轴。如果为 None,将返回每个序列的指标。n_jobs (
int) – 要并行运行的作业数量。只有在输入为Sequence[TimeSeries]时才会创建并行作业,并行处理不同的TimeSeries。默认为 1`(顺序执行)。将参数设置为 `-1 表示使用所有可用的处理器。verbose (
bool) – 可选地,是否打印操作进度
- 返回类型
Union[float,List[float],ndarray,List[ndarray]]- 返回
float – 一个单一的指标评分:
单变量序列。
带有 component_reduction 的单变量序列。
包含 series_reduction 和 component_reduction 的单变量/多变量序列(列表)。
np.ndarray – 一个包含指标分数的 numpy 数组。该数组的形状为 (n 个组件,),没有组件减少。
单变量或多变量序列,且至少 component_reduction=None。
包括 series_reduction 和 component_reduction=None 的单变量/多变量序列序列。
List[float] – 与类型 float 相同,但适用于一系列序列。
List[np.ndarray] – 与类型 np.ndarray 相同,但适用于一系列序列。
- darts.metrics.metrics.msse(actual_series, pred_series, insample, m=1, intersect=True, *, component_reduction=<function nanmean>, series_reduction=None, n_jobs=1, verbose=False)[源代码]¶
均方缩放误差 (MSSE) (有关缩放预测误差的更多信息,请参见 [1] )。
它是均方误差(MSE)按朴素m季节性预测的MSE进行缩放的结果。
对于长度为 \(T\) 的真实序列 \(y\) 和预测序列 \(\hat{y}\),它是按组件/列计算的:
\[\frac{MSE(y_{t_p+1:t_p+T}, \hat{y}_{t_p+1:t_p+T})}{E_m},\]其中 \(t_p\) 是预测时间(在第一个预测点之前的一步),\(MSE\) 是均方误差(
mse()),而 \(E_m\) 是在 insample 系列 \(y_{0:t_p}\) 结尾的真实系列)上进行朴素 m-季节性预测的均方误差:\[E_m = MSE(y_{m:t_p}, y_{0:t_p - m})。\]如果序列中的任何一个包含多个样本(即随机),\(\hat{y}_t\) 是时间步 \(t\) 所有样本的中位数。
- 参数
actual_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 实际系列(的序列)。pred_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 预测序列(的序列)。insample (
Union[TimeSeries,Sequence[TimeSeries]]) – 用于预测 pred_series 的训练系列。该系列用于计算在训练数据上朴素预测器所获得误差的尺度。m (
int) – 用于计算误差尺度 \(E_m\) 的差分季节性(如指标描述中所述)。\(m=1\) 对应于非季节性的 \(E_m\) 对应于季节性的 \(E_m\)。intersect (
bool) – 对于在时间上重叠但没有相同时间索引的时间序列,设置 True 将仅考虑它们在共同时间间隔(时间交集)内的值。component_reduction (
Optional[Callable[[ndarray],float],None]) – 可选地,一个用于在组件/列轴上聚合指标的函数。它必须将形状为 (t, c) 的 np.ndarray 减少为形状为 (t,) 的 np.ndarray。该函数以一个np.ndarray和一个名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 1,对应于组件轴。如果为 None,将返回每个组件的指标。series_reduction (
Optional[Callable[[ndarray],Union[float,ndarray]],None]) – 可选地,一个用于在序列轴上聚合指标的函数。它必须将形状为 (s, t, c) 的 np.ndarray 减少为形状为 (t, c) 的 np.ndarray。该函数以np.ndarray和名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 0,对应于序列轴。如果为 None,将返回每个序列的指标。n_jobs (
int) – 要并行运行的作业数量。只有在输入为Sequence[TimeSeries]时才会创建并行作业,并行处理不同的TimeSeries。默认为 1`(顺序执行)。将参数设置为 `-1 表示使用所有可用的处理器。verbose (
bool) – 可选地,是否打印操作进度
- 引发
ValueError – 如果 insample 序列是周期性的( \(y_t = y_{t-m}\) ),或者 insample 中的任何序列在相应的 pred_series 预测开始前一个时间步长结束。
- 返回类型
Union[float,List[float],ndarray,List[ndarray]]- 返回
float – 一个单一的指标评分:
单变量序列。
带有 component_reduction 的单变量序列。
包含 series_reduction 和 component_reduction 的单变量/多变量序列(列表)。
np.ndarray – 一个包含指标分数的 numpy 数组。该数组的形状为 (n 个组件,),没有组件减少。
单变量或多变量序列,且至少 component_reduction=None。
包括 series_reduction 和 component_reduction=None 的单变量/多变量序列序列。
List[float] – 与类型 float 相同,但适用于一系列序列。
List[np.ndarray] – 与类型 np.ndarray 相同,但适用于一系列序列。
引用
- darts.metrics.metrics.multi_ts_support(func)[源代码]¶
这个装饰器进一步适应了那些以两个(或三个,对于带有 insample 的比例指标)单变量/多变量
TimeSeries实例作为输入的指标,增加了对等长TimeSeries序列的支持。装饰器计算具有相同索引的TimeSeries的成对指标,并返回一个浮点值,该值是根据所有成对指标使用作为指标函数参数传递的 series_reduction 子程序计算得出的。如果输入的是 ‘Sequence[TimeSeries]’,此装饰器还提供了关于不同
TimeSeries的指标评估的并行化(如果 n_jobs 参数未设置为 1)。- 返回类型
Callable[…,Union[float,List[float],ndarray,List[ndarray]]]
- darts.metrics.metrics.multivariate_support(func)[源代码]¶
这个装饰器将一个输入为两个单变量 TimeSeries 实例的度量函数转换为一个输入为两个等大小多变量 TimeSeries 实例的函数,计算具有相同索引的组件之间的成对单变量度量,并返回一个浮点值,该值是使用作为度量函数参数传递的 component_reduction 子例程对所有单变量度量进行函数计算的结果。
- 返回类型
Callable[…,Union[float,List[float],ndarray,List[ndarray]]]
- darts.metrics.metrics.ope(actual_series, pred_series, intersect=True, *, component_reduction=<function nanmean>, series_reduction=None, n_jobs=1, verbose=False)[源代码]¶
总体百分比误差 (OPE)。
对于真实序列 \(y\) 和预测序列 \(\hat{y}\),长度为 \(T\),它是按每个分量/列计算的百分比值:
\[100 \cdot \left| \frac{\sum_{t=1}^{T}{y_t} - \sum_{t=1}^{T}{\hat{y}_t}}{\sum_{t=1}^{T}{y_t}} \right|.\]如果序列中的任何一个包含多个样本(即随机),\(\hat{y}_t\) 是时间步 \(t\) 所有样本的中位数。
- 参数
actual_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 实际系列(的序列)。pred_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 预测序列(的序列)。intersect (
bool) – 对于在时间上重叠但没有相同时间索引的时间序列,设置 True 将仅考虑它们在共同时间间隔(时间交集)内的值。component_reduction (
Optional[Callable[[ndarray],float],None]) – 可选地,一个用于在组件/列轴上聚合指标的函数。它必须将形状为 (t, c) 的 np.ndarray 减少为形状为 (t,) 的 np.ndarray。该函数以一个np.ndarray和一个名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 1,对应于组件轴。如果为 None,将返回每个组件的指标。series_reduction (
Optional[Callable[[ndarray],Union[float,ndarray]],None]) – 可选地,一个用于在序列轴上聚合指标的函数。它必须将形状为 (s, t, c) 的 np.ndarray 减少为形状为 (t, c) 的 np.ndarray。该函数以np.ndarray和名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 0,对应于序列轴。如果为 None,将返回每个序列的指标。n_jobs (
int) – 要并行运行的作业数量。只有在输入为Sequence[TimeSeries]时才会创建并行作业,并行处理不同的TimeSeries。默认为 1`(顺序执行)。将参数设置为 `-1 表示使用所有可用的处理器。verbose (
bool) – 可选地,是否打印操作进度
- 引发
ValueError – 如果 \(\sum_{t=1}^{T}{y_t} = 0\)。
- 返回类型
Union[float,List[float],ndarray,List[ndarray]]- 返回
float – 一个单一的指标评分:
单变量序列。
带有 component_reduction 的单变量序列。
包含 series_reduction 和 component_reduction 的单变量/多变量序列(列表)。
np.ndarray – 一个包含指标分数的 numpy 数组。该数组的形状为 (n 个组件,),没有组件减少。
单变量或多变量序列,且至少 component_reduction=None。
包括 series_reduction 和 component_reduction=None 的单变量/多变量序列序列。
List[float] – 与类型 float 相同,但适用于一系列序列。
List[np.ndarray] – 与类型 np.ndarray 相同,但适用于一系列序列。
- darts.metrics.metrics.ql(actual_series, pred_series, q=0.5, intersect=True, *, time_reduction=None, component_reduction=<function nanmean>, series_reduction=None, n_jobs=1, verbose=False)[源代码]¶
分位数损失 (QL)。
也称为弹球损失。QL 是一种量化随机/概率 pred_series 中包含 N 个样本的预测值分布中特定分位数 \(q\) 准确性的指标。
QL 计算所有样本值的分位数以及每个时间步的损失。
对于真实序列 \(y\) 和预测的随机/概率序列(包含 N 个样本) \(\hat{y}\),其形状为 \(T \times N\),它是按列/分量和时间步 \(t\) 计算的:
\[ \begin{align}\begin{aligned}2 \max((q - 1) (y_t - \hat{y}_{t,q}), q (y_t - \hat{y}_{t,q})),\\2 \max((q - 1) (y_t - \hat{y}_{t,q}), q (y_t - \hat{y}_{t,q})),\end{aligned}\end{align} \]其中 \(\hat{y}_{t,q}\) 是时间 \(t\) 时所有预测样本值的分位数 \(q\)。因子 2 使得损失更具可解释性,因为对于 q=0.5,损失与绝对误差 (
ae()) 相同。- 参数
actual_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 实际系列(的序列)。pred_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 预测序列(的序列)。q (
float) – 损失感兴趣的分位数(浮点数 [0, 1])。intersect (
bool) – 对于在时间上重叠但没有相同时间索引的时间序列,设置 True 将仅考虑它们在共同时间间隔(时间交集)内的值。component_reduction (
Optional[Callable[[ndarray],float],None]) – 可选地,一个用于在组件/列轴上聚合指标的函数。它必须将形状为 (t, c) 的 np.ndarray 减少为形状为 (t,) 的 np.ndarray。该函数以一个np.ndarray和一个名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 1,对应于组件轴。如果为 None,将返回每个组件的指标。time_reduction (
Optional[Callable[…,ndarray],None]) – 可选地,一个用于在时间轴上聚合指标的函数。它必须将形状为 (t, c) 的 np.ndarray 缩减为形状为 (c,) 的 np.ndarray。该函数以np.ndarray和一个名为 axis 的参数作为输入,并返回缩减后的数组。axis 接收值 0,对应于时间轴。如果为 None,将返回每个时间步的指标。series_reduction (
Optional[Callable[[ndarray],Union[float,ndarray]],None]) – 可选地,一个用于在序列轴上聚合指标的函数。它必须将形状为 (s, t, c) 的 np.ndarray 减少为形状为 (t, c) 的 np.ndarray。该函数以np.ndarray和名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 0,对应于序列轴。如果为 None,将返回每个序列的指标。n_jobs (
int) – 要并行运行的作业数量。只有在输入为Sequence[TimeSeries]时才会创建并行作业,并行处理不同的TimeSeries。默认为 1`(顺序执行)。将参数设置为 `-1 表示使用所有可用的处理器。verbose (
bool) – 可选地,是否打印操作进度
- 返回类型
Union[float,List[float],ndarray,List[ndarray]]- 返回
float – 一个单一的指标评分:
单变量序列。
带有 component_reduction 的单变量序列。
一个包含 series_reduction、component_reduction 和 time_reduction 的单/多变量序列(列表)。
np.ndarray – 一个包含指标分数的 numpy 数组。该数组的形状为 (n 时间步长, n 组件),不包括时间和组件的减少。对于:
单变量或多变量序列,且至少 component_reduction=None。
单变量/多变量序列,且至少 time_reduction=None。
包括 series_reduction 在内的单变量/多变量序列,并且至少有一个 component_reduction=None 或 time_reduction=None。
List[float] – 与类型 float 相同,但适用于一系列序列。
List[np.ndarray] – 与类型 np.ndarray 相同,但适用于一系列序列。
- darts.metrics.metrics.qr(actual_series, pred_series, q=0.5, intersect=True, *, component_reduction=<function nanmean>, series_reduction=None, n_jobs=1, verbose=False)[源代码]¶
分位数风险 (QR)
QR 是一个度量标准,用于量化随机/概率 pred_series 中包含 N 个样本的预测值分布中特定分位数 \(q\) 的准确性。
与分位数损失(QL)的主要区别在于,分位数回归(QR)计算的是沿时间轴汇总的所有样本值总和的分位数和损失(QL 计算的是每个时间步的分位数和损失)。
对于真实的序列 \(y\) 和预测的随机/概率序列(包含 N 个样本) \(\hat{y}\) ,其形状为 \(T \times N\) ,它是按列/分量计算的:
\[2 \frac{QL(Z, \hat{Z}_q)}{Z},\]其中 \(QL\) 是分位数损失(
ql()),\(Z = \sum_{t=1}^{T} y_t\) 是所有目标/实际值的总和,\(\hat{Z} = \sum_{t=1}^{T} \hat{y}_t\) 是沿时间轴所有预测样本的总和,而 \(\hat{Z}_q\) 是该总和的分位数 \(q\)。- 参数
actual_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 实际系列(的序列)。pred_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 预测序列(的序列)。q (
float) – 风险评估中感兴趣的分位数(浮点数 [0, 1])。intersect (
bool) – 对于在时间上重叠但没有相同时间索引的时间序列,设置 True 将仅考虑它们在共同时间间隔(时间交集)内的值。component_reduction (
Optional[Callable[[ndarray],float],None]) – 可选地,一个用于在组件/列轴上聚合指标的函数。它必须将形状为 (t, c) 的 np.ndarray 减少为形状为 (t,) 的 np.ndarray。该函数以一个np.ndarray和一个名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 1,对应于组件轴。如果为 None,将返回每个组件的指标。series_reduction (
Optional[Callable[[ndarray],Union[float,ndarray]],None]) – 可选地,一个用于在序列轴上聚合指标的函数。它必须将形状为 (s, t, c) 的 np.ndarray 减少为形状为 (t, c) 的 np.ndarray。该函数以np.ndarray和名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 0,对应于序列轴。如果为 None,将返回每个序列的指标。n_jobs (
int) – 要并行运行的作业数量。只有在输入为Sequence[TimeSeries]时才会创建并行作业,并行处理不同的TimeSeries。默认为 1`(顺序执行)。将参数设置为 `-1 表示使用所有可用的处理器。verbose (
bool) – 可选地,是否打印操作进度
- 返回类型
Union[float,List[float],ndarray,List[ndarray]]- 返回
float – 一个单一的指标评分:
单变量序列。
带有 component_reduction 的单变量序列。
包含 series_reduction 和 component_reduction 的单变量/多变量序列(列表)。
np.ndarray – 一个包含指标分数的 numpy 数组。该数组的形状为 (n 个组件,),没有组件减少。
单变量或多变量序列,且至少 component_reduction=None。
包括 series_reduction 和 component_reduction=None 的单变量/多变量序列序列。
List[float] – 与类型 float 相同,但适用于一系列序列。
List[np.ndarray] – 与类型 np.ndarray 相同,但适用于一系列序列。
- darts.metrics.metrics.r2_score(actual_series, pred_series, intersect=True, *, component_reduction=<function nanmean>, series_reduction=None, n_jobs=1, verbose=False)[源代码]¶
决定系数 \(R^2\) (详见 [1] )。
对于长度为 \(T\) 的真实序列 \(y\) 和预测序列 \(\hat{y}\),它是按组件/列计算的:
\[1 - \frac{\sum_{t=1}^T{(y_t - \hat{y}_t)^2}}{\sum_{t=1}^T{(y_t - \bar{y})^2}},\]其中 \(\bar{y}\) 是 \(y\) 在所有时间步上的均值。
这个指标不是对称的。
如果序列中的任何一个包含多个样本(即随机),\(\hat{y}_t\) 是时间步 \(t\) 所有样本的中位数。
- 参数
actual_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 实际系列(的序列)。pred_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 预测序列(的序列)。intersect (
bool) – 对于在时间上重叠但没有相同时间索引的时间序列,设置 True 将仅考虑它们在共同时间间隔(时间交集)内的值。component_reduction (
Optional[Callable[[ndarray],float],None]) – 可选地,一个用于在组件/列轴上聚合指标的函数。它必须将形状为 (t, c) 的 np.ndarray 减少为形状为 (t,) 的 np.ndarray。该函数以一个np.ndarray和一个名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 1,对应于组件轴。如果为 None,将返回每个组件的指标。series_reduction (
Optional[Callable[[ndarray],Union[float,ndarray]],None]) – 可选地,一个用于在序列轴上聚合指标的函数。它必须将形状为 (s, t, c) 的 np.ndarray 减少为形状为 (t, c) 的 np.ndarray。该函数以np.ndarray和名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 0,对应于序列轴。如果为 None,将返回每个序列的指标。n_jobs (
int) – 要并行运行的作业数量。只有在输入为Sequence[TimeSeries]时才会创建并行作业,并行处理不同的TimeSeries。默认为 1`(顺序执行)。将参数设置为 `-1 表示使用所有可用的处理器。verbose (
bool) – 可选地,是否打印操作进度
- 返回类型
Union[float,List[float],ndarray,List[ndarray]]- 返回
float – 一个单一的指标评分:
单变量序列。
带有 component_reduction 的单变量序列。
包含 series_reduction 和 component_reduction 的单变量/多变量序列(列表)。
np.ndarray – 一个包含指标分数的 numpy 数组。该数组的形状为 (n 个组件,),没有组件减少。
单变量或多变量序列,且至少 component_reduction=None。
包括 series_reduction 和 component_reduction=None 的单变量/多变量序列序列。
List[float] – 与类型 float 相同,但适用于一系列序列。
List[np.ndarray] – 与类型 np.ndarray 相同,但适用于一系列序列。
引用
- darts.metrics.metrics.rmse(actual_series, pred_series, intersect=True, *, component_reduction=<function nanmean>, series_reduction=None, n_jobs=1, verbose=False)[源代码]¶
均方根误差 (RMSE)。
对于长度为 \(T\) 的真实序列 \(y\) 和预测序列 \(\hat{y}\),它是按组件/列计算的:
\[$\sqrt{\frac{1}{T}\sum_{t=1}^T{(y_t - \hat{y}_t)^2}}$\]如果序列中的任何一个包含多个样本(即随机),\(\hat{y}_t\) 是时间步 \(t\) 所有样本的中位数。
- 参数
actual_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 实际系列(的序列)。pred_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 预测序列(的序列)。intersect (
bool) – 对于在时间上重叠但没有相同时间索引的时间序列,设置 True 将仅考虑它们在共同时间间隔(时间交集)内的值。component_reduction (
Optional[Callable[[ndarray],float],None]) – 可选地,一个用于在组件/列轴上聚合指标的函数。它必须将形状为 (t, c) 的 np.ndarray 减少为形状为 (t,) 的 np.ndarray。该函数以一个np.ndarray和一个名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 1,对应于组件轴。如果为 None,将返回每个组件的指标。series_reduction (
Optional[Callable[[ndarray],Union[float,ndarray]],None]) – 可选地,一个用于在序列轴上聚合指标的函数。它必须将形状为 (s, t, c) 的 np.ndarray 减少为形状为 (t, c) 的 np.ndarray。该函数以np.ndarray和名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 0,对应于序列轴。如果为 None,将返回每个序列的指标。n_jobs (
int) – 要并行运行的作业数量。只有在输入为Sequence[TimeSeries]时才会创建并行作业,并行处理不同的TimeSeries。默认为 1`(顺序执行)。将参数设置为 `-1 表示使用所有可用的处理器。verbose (
bool) – 可选地,是否打印操作进度
- 返回类型
Union[float,List[float],ndarray,List[ndarray]]- 返回
float – 一个单一的指标评分:
单变量序列。
带有 component_reduction 的单变量序列。
包含 series_reduction 和 component_reduction 的单变量/多变量序列(列表)。
np.ndarray – 一个包含指标分数的 numpy 数组。该数组的形状为 (n 个组件,),没有组件减少。
单变量或多变量序列,且至少 component_reduction=None。
包括 series_reduction 和 component_reduction=None 的单变量/多变量序列序列。
List[float] – 与类型 float 相同,但适用于一系列序列。
List[np.ndarray] – 与类型 np.ndarray 相同,但适用于一系列序列。
- darts.metrics.metrics.rmsle(actual_series, pred_series, intersect=True, *, component_reduction=<function nanmean>, series_reduction=None, n_jobs=1, verbose=False)[源代码]¶
均方根对数误差 (RMSLE)。
对于长度为 \(T\) 的真实序列 \(y\) 和预测序列 \(\hat{y}\),它是按组件/列计算的:
\[$\sqrt{\frac{1}{T}\sum_{t=1}^T{\left(\log{(y_t + 1)} - \log{(\hat{y}_t + 1)}\right)^2}}$\]使用自然对数。
如果序列中的任何一个包含多个样本(即随机),\(\hat{y}_t\) 是时间步 \(t\) 所有样本的中位数。
- 参数
actual_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 实际系列(的序列)。pred_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 预测序列(的序列)。intersect (
bool) – 对于在时间上重叠但没有相同时间索引的时间序列,设置 True 将仅考虑它们在共同时间间隔(时间交集)内的值。component_reduction (
Optional[Callable[[ndarray],float],None]) – 可选地,一个用于在组件/列轴上聚合指标的函数。它必须将形状为 (t, c) 的 np.ndarray 减少为形状为 (t,) 的 np.ndarray。该函数以一个np.ndarray和一个名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 1,对应于组件轴。如果为 None,将返回每个组件的指标。series_reduction (
Optional[Callable[[ndarray],Union[float,ndarray]],None]) – 可选地,一个用于在序列轴上聚合指标的函数。它必须将形状为 (s, t, c) 的 np.ndarray 减少为形状为 (t, c) 的 np.ndarray。该函数以np.ndarray和名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 0,对应于序列轴。如果为 None,将返回每个序列的指标。n_jobs (
int) – 要并行运行的作业数量。只有在输入为Sequence[TimeSeries]时才会创建并行作业,并行处理不同的TimeSeries。默认为 1`(顺序执行)。将参数设置为 `-1 表示使用所有可用的处理器。verbose (
bool) – 可选地,是否打印操作进度
- 返回类型
Union[float,List[float],ndarray,List[ndarray]]- 返回
float – 一个单一的指标评分:
单变量序列。
带有 component_reduction 的单变量序列。
包含 series_reduction 和 component_reduction 的单变量/多变量序列(列表)。
np.ndarray – 一个包含指标分数的 numpy 数组。该数组的形状为 (n 个组件,),没有组件减少。
单变量或多变量序列,且至少 component_reduction=None。
包括 series_reduction 和 component_reduction=None 的单变量/多变量序列序列。
List[float] – 与类型 float 相同,但适用于一系列序列。
List[np.ndarray] – 与类型 np.ndarray 相同,但适用于一系列序列。
- darts.metrics.metrics.rmsse(actual_series, pred_series, insample, m=1, intersect=True, *, component_reduction=<function nanmean>, series_reduction=None, n_jobs=1, verbose=False)[源代码]¶
均方根尺度误差 (RMSSE) (有关尺度预测误差的更多信息,请参见 [1] )。
它是均方根误差(RMSE)按朴素m季节性预测的RMSE进行缩放的结果。
对于长度为 \(T\) 的真实序列 \(y\) 和预测序列 \(\hat{y}\),它是按组件/列计算的:
\[\frac{RMSE(y_{t_p+1:t_p+T}, \hat{y}_{t_p+1:t_p+T})}{E_m},\]其中 \(t_p\) 是预测时间(在第一个预测点之前的一步),\(RMSE\) 是均方根误差(
rmse()),而 \(E_m\) 是 insample 系列 \(y_{0:t_p}\) 结束的真实系列)上的朴素 m-季节性预测的 RMSE:\[E_m = RMSE(y_{m:t_p}, y_{0:t_p - m})。\]如果序列中的任何一个包含多个样本(即随机),\(\hat{y}_t\) 是时间步 \(t\) 所有样本的中位数。
- 参数
actual_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 实际系列(的序列)。pred_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 预测序列(的序列)。insample (
Union[TimeSeries,Sequence[TimeSeries]]) – 用于预测 pred_series 的训练系列。该系列用于计算在训练数据上朴素预测器所获得误差的尺度。m (
int) – 用于计算误差尺度 \(E_m\) 的差分季节性(如指标描述中所述)。\(m=1\) 对应于非季节性的 \(E_m\) 对应于季节性的 \(E_m\)。intersect (
bool) – 对于在时间上重叠但没有相同时间索引的时间序列,设置 True 将仅考虑它们在共同时间间隔(时间交集)内的值。component_reduction (
Optional[Callable[[ndarray],float],None]) – 可选地,一个用于在组件/列轴上聚合指标的函数。它必须将形状为 (t, c) 的 np.ndarray 减少为形状为 (t,) 的 np.ndarray。该函数以一个np.ndarray和一个名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 1,对应于组件轴。如果为 None,将返回每个组件的指标。series_reduction (
Optional[Callable[[ndarray],Union[float,ndarray]],None]) – 可选地,一个用于在序列轴上聚合指标的函数。它必须将形状为 (s, t, c) 的 np.ndarray 减少为形状为 (t, c) 的 np.ndarray。该函数以np.ndarray和名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 0,对应于序列轴。如果为 None,将返回每个序列的指标。n_jobs (
int) – 要并行运行的作业数量。只有在输入为Sequence[TimeSeries]时才会创建并行作业,并行处理不同的TimeSeries。默认为 1`(顺序执行)。将参数设置为 `-1 表示使用所有可用的处理器。verbose (
bool) – 可选地,是否打印操作进度
- 引发
ValueError – 如果 insample 序列是周期性的( \(y_t = y_{t-m}\) ),或者 insample 中的任何序列在相应的 pred_series 预测开始前一个时间步长结束。
- 返回类型
Union[float,List[float],ndarray,List[ndarray]]- 返回
float – 一个单一的指标评分:
单变量序列。
带有 component_reduction 的单变量序列。
包含 series_reduction 和 component_reduction 的单变量/多变量序列(列表)。
np.ndarray – 一个包含指标分数的 numpy 数组。该数组的形状为 (n 个组件,),没有组件减少。
单变量或多变量序列,且至少 component_reduction=None。
包括 series_reduction 和 component_reduction=None 的单变量/多变量序列序列。
List[float] – 与类型 float 相同,但适用于一系列序列。
List[np.ndarray] – 与类型 np.ndarray 相同,但适用于一系列序列。
引用
- darts.metrics.metrics.sape(actual_series, pred_series, intersect=True, *, time_reduction=None, component_reduction=<function nanmean>, series_reduction=None, n_jobs=1, verbose=False)[源代码]¶
对称绝对百分比误差 (sAPE)。
对于真实序列 \(y\) 和预测序列 \(\hat{y}\) ,长度为 \(T\) ,它是按每个分量/列和时间步 \(t\) 计算的百分比值:
\[200 \cdot \frac{\left| y_t - \hat{y}_t \right|}{\left| y_t \right| + \left| \hat{y}_t \right|}\]注意,如果对于某些 \(t\),\(\left| y_t \right| + \left| \hat{y}_t \right| = 0\),它将引发 ValueError。在这些情况下,考虑使用绝对缩放误差(
ase())。如果序列中的任何一个包含多个样本(即随机),\(\hat{y}_t\) 是时间步 \(t\) 所有样本的中位数。
- 参数
actual_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 实际系列(的序列)。pred_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 预测序列(的序列)。intersect (
bool) – 对于在时间上重叠但没有相同时间索引的时间序列,设置 True 将仅考虑它们在共同时间间隔(时间交集)内的值。time_reduction (
Optional[Callable[…,ndarray],None]) – 可选地,一个用于在时间轴上聚合指标的函数。它必须将形状为 (t, c) 的 np.ndarray 缩减为形状为 (c,) 的 np.ndarray。该函数以np.ndarray和一个名为 axis 的参数作为输入,并返回缩减后的数组。axis 接收值 0,对应于时间轴。如果为 None,将返回每个时间步的指标。component_reduction (
Optional[Callable[[ndarray],float],None]) – 可选地,一个用于在组件/列轴上聚合指标的函数。它必须将形状为 (t, c) 的 np.ndarray 减少为形状为 (t,) 的 np.ndarray。该函数以一个np.ndarray和一个名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 1,对应于组件轴。如果为 None,将返回每个组件的指标。series_reduction (
Optional[Callable[[ndarray],Union[float,ndarray]],None]) – 可选地,一个用于在序列轴上聚合指标的函数。它必须将形状为 (s, t, c) 的 np.ndarray 减少为形状为 (t, c) 的 np.ndarray。该函数以np.ndarray和名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 0,对应于序列轴。如果为 None,将返回每个序列的指标。n_jobs (
int) – 要并行运行的作业数量。只有在输入为Sequence[TimeSeries]时才会创建并行作业,并行处理不同的TimeSeries。默认为 1`(顺序执行)。将参数设置为 `-1 表示使用所有可用的处理器。verbose (
bool) – 可选地,是否打印操作进度
- 引发
ValueError – 如果 actual_series 和 pred_series 在同一时间索引处包含一些零。
- 返回类型
Union[float,List[float],ndarray,List[ndarray]]- 返回
float – 一个单一的指标评分:
单变量序列。
带有 component_reduction 的单变量序列。
一个包含 series_reduction、component_reduction 和 time_reduction 的单/多变量序列(列表)。
np.ndarray – 一个包含指标分数的 numpy 数组。该数组的形状为 (n 时间步长, n 组件),不包括时间和组件的减少。对于:
单变量或多变量序列,且至少 component_reduction=None。
单变量/多变量序列,且至少 time_reduction=None。
包括 series_reduction 在内的单变量/多变量序列,并且至少有一个 component_reduction=None 或 time_reduction=None。
List[float] – 与类型 float 相同,但适用于一系列序列。
List[np.ndarray] – 与类型 np.ndarray 相同,但适用于一系列序列。
- darts.metrics.metrics.se(actual_series, pred_series, intersect=True, *, time_reduction=None, component_reduction=<function nanmean>, series_reduction=None, n_jobs=1, verbose=False)[源代码]¶
平方误差 (SE)。
对于长度为 \(T\) 的真实序列 \(y\) 和预测序列 \(\hat{y}\),它是按组件/列和时间步 \(t\) 计算的:
\[(y_t - \hat{y}_t)^2.\]如果序列中的任何一个包含多个样本(即随机),\(\hat{y}_t\) 是时间步 \(t\) 所有样本的中位数。
- 参数
actual_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 实际系列(的序列)。pred_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 预测序列(的序列)。intersect (
bool) – 对于在时间上重叠但没有相同时间索引的时间序列,设置 True 将仅考虑它们在共同时间间隔(时间交集)内的值。time_reduction (
Optional[Callable[…,ndarray],None]) – 可选地,一个用于在时间轴上聚合指标的函数。它必须将形状为 (t, c) 的 np.ndarray 缩减为形状为 (c,) 的 np.ndarray。该函数以np.ndarray和一个名为 axis 的参数作为输入,并返回缩减后的数组。axis 接收值 0,对应于时间轴。如果为 None,将返回每个时间步的指标。component_reduction (
Optional[Callable[[ndarray],float],None]) – 可选地,一个用于在组件/列轴上聚合指标的函数。它必须将形状为 (t, c) 的 np.ndarray 减少为形状为 (t,) 的 np.ndarray。该函数以一个np.ndarray和一个名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 1,对应于组件轴。如果为 None,将返回每个组件的指标。series_reduction (
Optional[Callable[[ndarray],Union[float,ndarray]],None]) – 可选地,一个用于在序列轴上聚合指标的函数。它必须将形状为 (s, t, c) 的 np.ndarray 减少为形状为 (t, c) 的 np.ndarray。该函数以np.ndarray和名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 0,对应于序列轴。如果为 None,将返回每个序列的指标。n_jobs (
int) – 要并行运行的作业数量。只有在输入为Sequence[TimeSeries]时才会创建并行作业,并行处理不同的TimeSeries。默认为 1`(顺序执行)。将参数设置为 `-1 表示使用所有可用的处理器。verbose (
bool) – 可选地,是否打印操作进度
- 返回类型
Union[float,List[float],ndarray,List[ndarray]]- 返回
float – 一个单一的指标评分:
单变量序列。
带有 component_reduction 的单变量序列。
一个包含 series_reduction、component_reduction 和 time_reduction 的单/多变量序列(列表)。
np.ndarray – 一个包含指标分数的 numpy 数组。该数组的形状为 (n 时间步长, n 组件),不包括时间和组件的减少。对于:
单变量或多变量序列,且至少 component_reduction=None。
单变量/多变量序列,且至少 time_reduction=None。
包括 series_reduction 在内的单变量/多变量序列,并且至少有一个 component_reduction=None 或 time_reduction=None。
List[float] – 与类型 float 相同,但适用于一系列序列。
List[np.ndarray] – 与类型 np.ndarray 相同,但适用于一系列序列。
- darts.metrics.metrics.sle(actual_series, pred_series, intersect=True, *, time_reduction=None, component_reduction=<function nanmean>, series_reduction=None, n_jobs=1, verbose=False)[源代码]¶
平方对数误差 (SLE)。
对于长度为 \(T\) 的真实序列 \(y\) 和预测序列 \(\hat{y}\),它是按组件/列和时间步 \(t\) 计算的:
\[\begin{split}\\left(\\log{(y_t + 1)} - \\log{(\\hat{y} + 1)}\\right)^2\end{split}\]使用自然对数。
如果序列中的任何一个包含多个样本(即随机),\(\hat{y}_t\) 是时间步 \(t\) 所有样本的中位数。
- 参数
actual_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 实际系列(的序列)。pred_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 预测序列(的序列)。intersect (
bool) – 对于在时间上重叠但没有相同时间索引的时间序列,设置 True 将仅考虑它们在共同时间间隔(时间交集)内的值。time_reduction (
Optional[Callable[…,ndarray],None]) – 可选地,一个用于在时间轴上聚合指标的函数。它必须将形状为 (t, c) 的 np.ndarray 缩减为形状为 (c,) 的 np.ndarray。该函数以np.ndarray和一个名为 axis 的参数作为输入,并返回缩减后的数组。axis 接收值 0,对应于时间轴。如果为 None,将返回每个时间步的指标。component_reduction (
Optional[Callable[[ndarray],float],None]) – 可选地,一个用于在组件/列轴上聚合指标的函数。它必须将形状为 (t, c) 的 np.ndarray 减少为形状为 (t,) 的 np.ndarray。该函数以一个np.ndarray和一个名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 1,对应于组件轴。如果为 None,将返回每个组件的指标。series_reduction (
Optional[Callable[[ndarray],Union[float,ndarray]],None]) – 可选地,一个用于在序列轴上聚合指标的函数。它必须将形状为 (s, t, c) 的 np.ndarray 减少为形状为 (t, c) 的 np.ndarray。该函数以np.ndarray和名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 0,对应于序列轴。如果为 None,将返回每个序列的指标。n_jobs (
int) – 要并行运行的作业数量。只有在输入为Sequence[TimeSeries]时才会创建并行作业,并行处理不同的TimeSeries。默认为 1`(顺序执行)。将参数设置为 `-1 表示使用所有可用的处理器。verbose (
bool) – 可选地,是否打印操作进度
- 返回类型
Union[float,List[float],ndarray,List[ndarray]]- 返回
float – 一个单一的指标评分:
单变量序列。
带有 component_reduction 的单变量序列。
一个包含 series_reduction、component_reduction 和 time_reduction 的单/多变量序列(列表)。
np.ndarray – 一个包含指标分数的 numpy 数组。该数组的形状为 (n 时间步长, n 组件),不包括时间和组件的减少。对于:
单变量或多变量序列,且至少 component_reduction=None。
单变量/多变量序列,且至少 time_reduction=None。
包括 series_reduction 在内的单变量/多变量序列,并且至少有一个 component_reduction=None 或 time_reduction=None。
List[float] – 与类型 float 相同,但适用于一系列序列。
List[np.ndarray] – 与类型 np.ndarray 相同,但适用于一系列序列。
- darts.metrics.metrics.smape(actual_series, pred_series, intersect=True, *, component_reduction=<function nanmean>, series_reduction=None, n_jobs=1, verbose=False)[源代码]¶
对称平均绝对百分比误差 (sMAPE)。
对于真实序列 \(y\) 和预测序列 \(\hat{y}\),长度为 \(T\),它是按每个分量/列计算的百分比值:
\[ \begin{align}\begin{aligned}200 \cdot \frac{1}{T} \sum_{t=1}^{T}{\frac{\left| y_t - \hat{y}_t \right|}{\left| y_t \right| + \left| \hat{y}_t \right|} }\\200 \cdot \frac{1}{T} \sum_{t=1}^{T}{\frac{\left| y_t - \hat{y}_t \right|}{\left| y_t \right| + \left| \hat{y}_t \right|} }\end{aligned}\end{align} \]注意,如果对于某些 \(t\),\(\left| y_t \right| + \left| \hat{y}_t \right| = 0\),则会引发 ValueError。在这些情况下,请考虑使用平均绝对缩放误差(
mase())。如果序列中的任何一个包含多个样本(即随机),\(\hat{y}_t\) 是时间步 \(t\) 所有样本的中位数。
- 参数
actual_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 实际系列(的序列)。pred_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 预测序列(的序列)。intersect (
bool) – 对于在时间上重叠但没有相同时间索引的时间序列,设置 True 将仅考虑它们在共同时间间隔(时间交集)内的值。component_reduction (
Optional[Callable[[ndarray],float],None]) – 可选地,一个用于在组件/列轴上聚合指标的函数。它必须将形状为 (t, c) 的 np.ndarray 减少为形状为 (t,) 的 np.ndarray。该函数以一个np.ndarray和一个名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 1,对应于组件轴。如果为 None,将返回每个组件的指标。series_reduction (
Optional[Callable[[ndarray],Union[float,ndarray]],None]) – 可选地,一个用于在序列轴上聚合指标的函数。它必须将形状为 (s, t, c) 的 np.ndarray 减少为形状为 (t, c) 的 np.ndarray。该函数以np.ndarray和名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 0,对应于序列轴。如果为 None,将返回每个序列的指标。n_jobs (
int) – 要并行运行的作业数量。只有在输入为Sequence[TimeSeries]时才会创建并行作业,并行处理不同的TimeSeries。默认为 1`(顺序执行)。将参数设置为 `-1 表示使用所有可用的处理器。verbose (
bool) – 可选地,是否打印操作进度
- 引发
ValueError – 如果 actual_series 和 pred_series 在同一时间索引处包含一些零。
- 返回类型
Union[float,List[float],ndarray,List[ndarray]]- 返回
float – 一个单一的指标评分:
单变量序列。
带有 component_reduction 的单变量序列。
包含 series_reduction 和 component_reduction 的单变量/多变量序列(列表)。
np.ndarray – 一个包含指标分数的 numpy 数组。该数组的形状为 (n 个组件,),没有组件减少。
单变量或多变量序列,且至少 component_reduction=None。
包括 series_reduction 和 component_reduction=None 的单变量/多变量序列序列。
List[float] – 与类型 float 相同,但适用于一系列序列。
List[np.ndarray] – 与类型 np.ndarray 相同,但适用于一系列序列。
- darts.metrics.metrics.sse(actual_series, pred_series, insample, m=1, intersect=True, *, time_reduction=None, component_reduction=<function nanmean>, series_reduction=None, n_jobs=1, verbose=False)[源代码]¶
平方缩放误差 (SSE) (有关缩放预测误差的更多信息,请参见 [1] )。
它是平方误差(SE)按朴素m季节性预测的均方误差(MSE)缩放的结果。
对于长度为 \(T\) 的真实序列 \(y\) 和预测序列 \(\hat{y}\),它是按组件/列和时间步 \(t\) 计算的:
\[\frac{SE(y_{t_p+1:t_p+T}, \hat{y}_{t_p+1:t_p+T})}{E_m},\]其中 \(t_p\) 是预测时间(在第一个预测点之前的一步),\(SE\) 是平方误差(
se()),而 \(E_m\) 是 insample 系列 \(y_{0:t_p}\) 结束的真实系列)上的朴素 m-季节性预测的均方误差(MSE)。\[E_m = MSE(y_{m:t_p}, y_{0:t_p - m})。\]如果序列中的任何一个包含多个样本(即随机),\(\hat{y}_t\) 是时间步 \(t\) 所有样本的中位数。
- 参数
actual_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 实际系列(的序列)。pred_series (
Union[TimeSeries,Sequence[TimeSeries]]) – 预测序列(的序列)。insample (
Union[TimeSeries,Sequence[TimeSeries]]) – 用于预测 pred_series 的训练系列。该系列用于计算在训练数据上朴素预测器所获得误差的尺度。m (
int) – 用于计算误差尺度 \(E_m\) 的差分季节性(如指标描述中所述)。\(m=1\) 对应于非季节性的 \(E_m\) 对应于季节性的 \(E_m\)。intersect (
bool) – 对于在时间上重叠但没有相同时间索引的时间序列,设置 True 将仅考虑它们在共同时间间隔(时间交集)内的值。time_reduction (
Optional[Callable[…,ndarray],None]) – 可选地,一个用于在时间轴上聚合指标的函数。它必须将形状为 (t, c) 的 np.ndarray 缩减为形状为 (c,) 的 np.ndarray。该函数以np.ndarray和一个名为 axis 的参数作为输入,并返回缩减后的数组。axis 接收值 0,对应于时间轴。如果为 None,将返回每个时间步的指标。component_reduction (
Optional[Callable[[ndarray],float],None]) – 可选地,一个用于在组件/列轴上聚合指标的函数。它必须将形状为 (t, c) 的 np.ndarray 减少为形状为 (t,) 的 np.ndarray。该函数以一个np.ndarray和一个名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 1,对应于组件轴。如果为 None,将返回每个组件的指标。series_reduction (
Optional[Callable[[ndarray],Union[float,ndarray]],None]) – 可选地,一个用于在序列轴上聚合指标的函数。它必须将形状为 (s, t, c) 的 np.ndarray 减少为形状为 (t, c) 的 np.ndarray。该函数以np.ndarray和名为 axis 的参数作为输入,并返回减少后的数组。axis 接收值 0,对应于序列轴。如果为 None,将返回每个序列的指标。n_jobs (
int) – 要并行运行的作业数量。只有在输入为Sequence[TimeSeries]时才会创建并行作业,并行处理不同的TimeSeries。默认为 1`(顺序执行)。将参数设置为 `-1 表示使用所有可用的处理器。verbose (
bool) – 可选地,是否打印操作进度
- 引发
ValueError – 如果 insample 序列是周期性的( \(y_t = y_{t-m}\) ),或者 insample 中的任何序列在相应的 pred_series 预测开始前一个时间步长结束。
- 返回类型
Union[float,List[float],ndarray,List[ndarray]]- 返回
float – 一个单一的指标评分:
单变量序列。
带有 component_reduction 的单变量序列。
一个包含 series_reduction、component_reduction 和 time_reduction 的单/多变量序列(列表)。
np.ndarray – 一个包含指标分数的 numpy 数组。该数组的形状为 (n 时间步长, n 组件),不包括时间和组件的减少。对于:
单变量或多变量序列,且至少 component_reduction=None。
单变量/多变量序列,且至少 time_reduction=None。
包括 series_reduction 在内的单变量/多变量序列,并且至少有一个 component_reduction=None 或 time_reduction=None。
List[float] – 与类型 float 相同,但适用于一系列序列。
List[np.ndarray] – 与类型 np.ndarray 相同,但适用于一系列序列。
引用