我正在寻找一些与任何特定平台/软件分离的概念输入,以解决以下问题:
令 R 为 Nx2 矩阵,第一列表示对象 ID,第二列表示类别(例如,从 1 到 10)。
ID | Category
1 | 1
2 | 1
3 | 1
4 | 2
5 | 2
6 | 3
7 | 3
8 | 3
9 | 3
. | .
. | .
此外,假设我们有一个矩阵 C,它为每个类别分配一个数字,例如:
Category | Number
1 | 0.5
2 | 0.2
3 | 0.9
. | .
. | .
因此,对于矩阵 R 中的每个对象,可以根据矩阵 C 映射一个数字(例如,对于 ID=1 且类别=1,根据矩阵 C 的数字是 0.5)。
现在的目标是创建一种算法,该算法在预先指定的类别范围内随机化对象,其中列号(映射到相应类别)的总体平均值保持不变。
例如,假设类别范围被定义为 2,这意味着来自类别 1 的每个对象都可以停留在类别 1 中,随机转移到类别 2 甚至到类别 3。类似地,具有选定类别范围的类别 3 中的对象1 可以向下移动到第 2 类,停留在第 3 类或上升到第 4 类)。如果一个对象现在转移到另一个类别,它会根据矩阵 C 分配一个新数字,这会影响列numbers的整体平均值。
但是,所有交换都必须在纯随机的基础上执行,附加约束是随机化后列号的平均值等于从一开始的平均值。
任何投入将不胜感激。