规范化两个数组,第二个数组作为规范化第一个数组的基础



为了找到Pareto front的代际距离、倒代际距离、Epsilon指标和HyperVolume等质量指标,我想对基于参考前沿求解算法获得的近似前沿值进行归一化,我假设参考前沿包含近似前沿。

reference_front = np.array([[0.5, 2.0], [1, 1.0], [1.2, 0.833], [2.3, 0.435], [3, 0.333]])
approximation_front = np.array([[0.8, 2.5], [1.0, 2.0], [2.1, 0.952], [2.8, 0.714]])
reference_point = [max(approximation_front[:,0]),max(approximation_front[:,0])]

我使用下面的代码进行规范化。但是,它一次只能用于一个数组

from sklearn.preprocessing import MinMaxScaler
min_max_scaler = MinMaxScaler()
reference_front_norm = min_max_scaler.fit_transform(reference_front)
approximation_front_norm = min_max_scaler.fit_transform(approximation_front)
reference_point = [max(approximation_front[:,0]),max(approximation_front[:,0])]

这里,近似前和参考前分别归一化。我们能否根据参考前沿的最大值和最小值对0到1之间的近似前沿进行归一化?

在应用了fit_transform之后,您可以简单地使用transform。这将使用来自fit_transform调用的"fit"。

reference_front_norm = min_max_scaler.fit_transform(reference_front)
approximation_front_norm = min_max_scaler.transform(approximation_front)

最新更新