我想在函数中计算 fb 先知预测的测试统计数据,因为我想在使用 fb-prophet cross_validation 获得 df_cv 后对不同预测和截止点的测试统计数据进行平均。我创建了一个函数,在按截止点分组后应用于数据帧,以便接收每个截止点的测量值。然后我计算所有这些值的平均值。
问题是我的函数不仅返回我要查找的值,还返回 0 以及 dtype 的信息。我仍然可以使用返回的值进行计算,但是当我想稍后绘制等时,它非常不方便。如何从输出中去除这些不必要的值?
def compute_avg_stats(df_cv,perf_measure):
measures = {'mse':mean_squared_error,'mae':mean_absolute_error,'mape':mean_absolute_percentage_error,'rmse':mean_squared_error}
performance_stats = {}
if perf_measure == 'rmse':
measure = np.sqrt(measures[perf_measure](y_true=df_cv['y'],y_pred=df_cv['yhat']))
else:
measure = measures[perf_measure](y_true=df_cv['yu'],y_pred=df_cv['yhat'])
return measure
df_cv.groupby('cutoff').apply(compute_avg_stats,perf_measure='rmse').to_frame().mean()