Выходные данные Mean_squared_error в функции включают dtype и '0' - PullRequest
0 голосов
/ 14 октября 2019

Я хочу вычислить статистику теста для прогноза 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()

The output of the function, including the unwanted content ('0' and 'dtype: float64')

1 Ответ

1 голос
/ 16 октября 2019

Я думаю .mean() возвращает серию. Попробуйте с .mean()[0]

...