import numpy as np
import matplotlib.pyplot as plt
from pymoo.indicators.hv import HV# Load the data set
approximation_front = np.loadtxt('data_set.csv',delimiter=',')
ref_point = np.max(approximation_front,0) + 1 #it's arbitrary reference point# estimate the hypervolume
ind = HV(ref_point)
print("HV", ind(approximation_front))HV 3.8279652805571587
# Sensitivity w.r.t reference point
ref_points = np.array([np.max(approximation_front,0) + 1, np.max(approximation_front,0) + 10,
np.max(approximation_front,0) + 100, np.max(approximation_front,0) + 1000])
HV_values = []
for r in ref_points:
ind = HV(r)
HV_values.append(ind(approximation_front))
print(HV_values)
plt.plot(HV_values, marker='o')
plt.ylabel('Hypervolume')
plt.show()[3.8279652805571587, 123.37119826469413, 10228.803528106066, 1002283.1268265197]
