def calculate_metrics(actual_values: np.ndarray, predicted_values: np.ndarray):
    'Using actual_values, predicted_values calculates metrics such as accuracy, balanced accuracy, precision, recall,\n    and f1 scores.\n\n        Args:\n            actual_values: Actual action labels in the dataset\n            predicted_values: Action labels predicted by the currently trained model\n\n        Returns:\n            Dictionary contains keys as score names and values as scores which are floating point values.\n    '
    return {'accuracy_score': round((accuracy_score(actual_values, predicted_values) * 100), 3), 'balanced_accuracy_score': round((balanced_accuracy_score(actual_values, predicted_values) * 100), 3), 'precision_score': round((precision_score(actual_values, predicted_values, average='weighted', labels=np.unique(predicted_values)) * 100), 3), 'recall_score': round((recall_score(actual_values, predicted_values, average='weighted', labels=np.unique(predicted_values)) * 100), 3), 'f1_score': round((f1_score(actual_values, predicted_values, average='weighted', labels=np.unique(predicted_values)) * 100), 3)}
Using actual_values, predicted_values calculates metrics such as accuracy, balanced accuracy, precision, recall,
and f1 scores.

    Args:
        actual_values: Actual action labels in the dataset
        predicted_values: Action labels predicted by the currently trained model

    Returns:
        Dictionary contains keys as score names and values as scores which are floating point values.
def calculate_metrics(actual_values: np.ndarray, predicted_values: np.ndarray):
    'Using actual_values, predicted_values calculates metrics such as accuracy, balanced accuracy, precision, recall,\n    and f1 scores.\n\n        Args:\n            actual_values: Actual action labels in the dataset\n            predicted_values: Action labels predicted by the currently trained model\n\n        Returns:\n            Dictionary contains keys as score names and values as scores which are floating point values.\n    '
    return {'accuracy_score': round((accuracy_score(actual_values, predicted_values) * 100), 3), 'balanced_accuracy_score': round((balanced_accuracy_score(actual_values, predicted_values) * 100), 3), 'precision_score': round((precision_score(actual_values, predicted_values, average='weighted', labels=np.unique(predicted_values)) * 100), 3), 'recall_score': round((recall_score(actual_values, predicted_values, average='weighted', labels=np.unique(predicted_values)) * 100), 3), 'f1_score': round((f1_score(actual_values, predicted_values, average='weighted', labels=np.unique(predicted_values)) * 100), 3)}