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)
    filtered_df, _ = dk.filter_features(
        unfiltered_df, dk.training_features_list, training_filter=False
    )
    dk.data_dictionary["prediction_features"] = filtered_df
    dk.data_dictionary["prediction_features"], outliers, _ = dk.feature_pipeline.transform(
        dk.data_dictionary["prediction_features"], outlier_check=True)
    x = self.data_convertor.convert_x(
        dk.data_dictionary["prediction_features"],
        device=self.device
    )
    self.model.model.eval()
    y = self.model.model(x)
    pred_df = DataFrame(y.detach().tolist(), columns=[dk.label_list[0]])
    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)