def error_compoute(y_pred_upper, y_pred_lower, y_tes, alpha): # Ravel for ease of computation y_pred_upper = y_pred_upper.ravel() y_pred_lower = y_pred_lower.ravel() y_tes = y_tes.ravel() # Find out of bound indices for WS idx_oobl = np.where((y_tes < y_pred_lower))[0] # 低于下限 # idx_oolu = np.where((y_tes >= y_pred_lower & y_tes <= y_pred_upper))[0] # 介于上下限之间 idx_oobu = np.where((y_tes > y_pred_upper))[0] # 高于上限 picp = np.sum((y_tes > y_pred_lower) & (y_tes <= y_pred_upper)) / len(y_tes) * 100 ace = picp - (1 - alpha) * 100 pinaw = np.sum(y_pred_upper - y_pred_lower) / (np.max(y_tes) - np.min(y_tes)) / len(y_tes) ws = np.sum(np.sum(-2 * alpha * (y_pred_upper - y_pred_lower)) + np.sum(-4 * (y_pred_lower[idx_oobl] - y_tes[idx_oobl])) + np.sum(-4 * (y_tes[idx_oobu] - y_pred_upper[idx_oobu]))) / len(y_tes) print("PICP: {:.4f}%".format(picp)) print("ACE: {:.4f}".format(ace)) print("PINAW: {:.4f}".format(pinaw)) print("WS: {:.4f}".format(ws))
时间: 2024-04-11 10:29:34 浏览: 20
这段代码定义了一个名为 `error_compute()` 的函数,用于计算预测结果的误差指标。函数接受以下参数:
- `y_pred_upper`:预测结果的上限值
- `y_pred_lower`:预测结果的下限值
- `y_tes`:真实的目标值
- `alpha`:置信水平
首先,通过 `ravel()` 函数对输入的数组进行展平操作,以便于后续计算。然后,根据真实目标值和上下限值,找到超出边界的索引。其中,`idx_oobl` 存储低于下限的索引,`idx_oobu` 存储高于上限的索引。
接下来,通过计算 `(y_tes > y_pred_lower) & (y_tes <= y_pred_upper)` 来确定落在上下限之间的样本数量,并将其除以样本总数得到覆盖概率(PICP)。ACE 是覆盖概率与置信水平之差。
PINAW 是上下限范围的平均宽度与真实目标值范围的比值。
最后,计算 WS(预测误差分数),其中包括覆盖范围内的损失和超出范围的损失。
函数会打印出 PICP、ACE、PINAW 和 WS 的值。
请注意,函数中有一行被注释掉了,即 `idx_oolu` 的计算,可能是因为没有在后续计算中使用到。
相关问题
def median_absolute_percentage_error(y_true,y_pred):
该函数计算真实值和预测值之间的中位绝对百分比误差(Median Absolute Percentage Error,简称MAPE)。
以下是该函数的Python代码实现:
```
import numpy as np
def median_absolute_percentage_error(y_true, y_pred):
"""
Computes median absolute percentage error between two arrays.
"""
y_true = np.array(y_true)
y_pred = np.array(y_pred)
return np.median(np.abs((y_true - y_pred) / y_true)) * 100
```
该函数首先将真实值和预测值转换为numpy数组,然后计算它们之间的绝对误差,并将其除以真实值。最后,它返回绝对误差的中位数乘以100,即中位绝对百分比误差。
mean_squared_error(y_test, y_pred)
mean_squared_error() 是 scikit-learn 库中的一个函数,用于计算均方误差(Mean Squared Error, MSE)。它接受两个参数:y_test 和 y_pred。
y_test 是测试集中的真实目标变量的值,而 y_pred 是模型对测试集进行预测得到的目标变量的值。
mean_squared_error() 函数将根据这两个参数计算出均方误差的值,表示模型预测值和真实值之间的差异程度。均方误差越小,表示模型的预测越准确。
你可以使用 mean_squared_error() 函数来评估模型对测试集的预测性能,例如:
```python
from sklearn.metrics import mean_squared_error
mse = mean_squared_error(y_test, y_pred)
print("Mean Squared Error:", mse)
```
这段代码将计算出模型的均方误差,并打印输出结果。