0

我想在函数中计算 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()

函数的输出,包括不需要的内容('0' 和 'dtype: float64')

4

1 回答 1

1

我认为.mean()返回一个系列。尝试.mean()[0]

于 2019-10-16T20:24:55.883 回答