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