我有一个包含多个结果的数据框,每个结果包含5个变量,我想在R中优化这些变量。我使用了rPref,但这最多需要优化4个变量。有人知道如何对超过4个变量进行优化吗?
rPref
huwehgph1#
我是rPref包的作者,rPref只能计算4个变量的Pareto最优的信息根本就是错误的,优化目标的数量没有限制。考虑下面这个小例子:让我们创建一个数据集(a_1, ..., a_5),其中排除了a_i in {1, 2}和(1, 1, 1, 1, 1):
(a_1, ..., a_5)
a_i in {1, 2}
(1, 1, 1, 1, 1)
library(listcompr) df <- gen.data.frame(c(a_1, ..., a_5), a_ = 1:2, sum(a_1, ..., a_5) > 5)
数据集df具有以下31个条目:
df
> df a_1 a_2 a_3 a_4 a_5 1 2 1 1 1 1 2 1 2 1 1 1 3 2 2 1 1 1 [...] 30 1 2 2 2 2 31 2 2 2 2 2
现在,让我们使用rPref同时最小化所有5个变量:
> library(rPref) > psel(df, low(a_1) * low(a_2) * low(a_3) * low(a_4) * low(a_5)) a_1 a_2 a_3 a_4 a_5 1 2 1 1 1 1 2 1 2 1 1 1 4 1 1 2 1 1 8 1 1 1 2 1 16 1 1 1 1 2
帕累托最优是恰好具有恰好一个“2”的所有元组,因为(2, 1, 1, 1, 1)相对于例如(2, 2, 1, 1, 1)是帕累托显性的.
(2, 1, 1, 1, 1)
(2, 2, 1, 1, 1)
1条答案
按热度按时间huwehgph1#
我是rPref包的作者,rPref只能计算4个变量的Pareto最优的信息根本就是错误的,优化目标的数量没有限制。
考虑下面这个小例子:让我们创建一个数据集
(a_1, ..., a_5)
,其中排除了a_i in {1, 2}
和(1, 1, 1, 1, 1)
:数据集
df
具有以下31个条目:现在,让我们使用rPref同时最小化所有5个变量:
帕累托最优是恰好具有恰好一个“2”的所有元组,因为
(2, 1, 1, 1, 1)
相对于例如(2, 2, 1, 1, 1)
是帕累托显性的.