def evaluate()

in src/autofill_model.py [0:0]


    def evaluate(self):
        def pprint_metrics(y_true, y_preds, with_cm=False):
            logger.info(f'Precision: {precision_score(y_true, y_preds, average="weighted", zero_division=0)}')
            logger.info(f'Recall: {recall_score(y_true, y_preds, average="weighted", zero_division=0)}')
            logger.info(f'F1: {f1_score(y_true, y_preds, average="weighted", zero_division=0)}')
            if with_cm:
                # log confusion matrix
                logger.info('\n')
                logger.info(confusion_matrix(y_true, y_preds))
                # log the classification report
                logger.info('\n')
                logger.info(
                    classification_report(
                        y_true,
                        y_preds,
                        digits=3,
                        zero_division=0,
                    )
                )
            return

        # Make predictions on test set
        logger.info('Testing metrics... \n')
        class_label = self.dataset['test'].features['labels'].int2str
        actuals = class_label(self.dataset['test']['labels'])
        # following gives predictions in format [{'label': 'Zip Code', 'score': '0.95'}]
        predictions = [p['label'] for p in self.predict(self.dataset['test']['html_cleaned'])]
        pprint_metrics(actuals, predictions, with_cm=True)
        return