def METHOD_NAME(
    self, unfiltered_df: DataFrame, dk: FreqaiDataKitchen, **kwargs
) -> Tuple[DataFrame, npt.NDArray[np.int_]]:
    """
    Filter the prediction features data and predict with it.
    :param unfiltered_df: Full dataframe for the current backtest period.
    :return:
    :pred_df: dataframe containing the predictions
    :do_predict: np.array of 1s and 0s to indicate places where freqai needed to remove
    data (NaNs) or felt uncertain about data (PCA and DI index)
    """
    dk.find_features(unfiltered_df)
    dk.data_dictionary["prediction_features"], _ = dk.filter_features(
        unfiltered_df, dk.training_features_list, training_filter=False
    )
    dk.data_dictionary["prediction_features"], outliers, _ = dk.feature_pipeline.transform(
        dk.data_dictionary["prediction_features"], outlier_check=True)
    predictions = self.model.METHOD_NAME(dk.data_dictionary["prediction_features"])
    if self.CONV_WIDTH == 1:
        predictions = np.reshape(predictions, (-1, len(dk.label_list)))
    pred_df = DataFrame(predictions, columns=dk.label_list)
    pred_df, _, _ = dk.label_pipeline.inverse_transform(pred_df)
    if dk.feature_pipeline["di"]:
        dk.DI_values = dk.feature_pipeline["di"].di_values
    else:
        dk.DI_values = np.zeros(outliers.shape[0])
    dk.do_predict = outliers
    return (pred_df, dk.do_predict)