"""Evaluation script for measuring root mean squared error.""" import json import logging import pathlib import pickle import tarfile import numpy as np import pandas as pd import xgboost from sklearn.metrics import mean_squared_error logger = logging.getLogger() logger.setLevel(logging.INFO) logger.addHandler(logging.StreamHandler()) if __name__ == "__main__": logger.debug("Starting evaluation.") model_path = "/opt/ml/processing/model/model.tar.gz" with tarfile.open(model_path) as tar: tar.extractall(path=".") logger.info("Reading evaluation report") report_df = pd.read_csv("evaluation_report.csv") logger.debug("report shape %s", report_df.shape) report_dict = { "regression_metrics": { "rmse": { "value": report_df[report_df["metric"] == "root_mean_squared_error"][ "value" ].values[0] } } } output_dir = "/opt/ml/processing/evaluation" pathlib.Path(output_dir).mkdir(parents=True, exist_ok=True) logger.info("Writing out evaluation report:") evaluation_path = f"{output_dir}/evaluation.json" with open(evaluation_path, "w") as f: f.write(json.dumps(report_dict))