改变向量的分布

数据挖掘 机器学习 特征工程 相似 分配 方差
2022-03-15 06:09:54

我有以下向量 my_vector=[0.059; 0.223;0.197;0.176; 0.173; 0.171; 0.0421; 0.209; 0.556;0.252;0.198; 0.255; 0.130; 0.176; 0.110; 0.0845; 0.270; 0.192; 0.199; 0.348]

我想以这样一种方式更改向量,以使输出派生向量具有最大可能的分布变化。这意味着两个向量的分布应该是高度不同的(比如具有较大的 KLD 值),但它们的分布应该仍然来自同一个族(比如 F 检验或双样本 K-S 检验不会拒绝它们的假设)来自同一分布)。

在满足约束(具有“最高”“可能”分布变化)的同时,如何从基本向量生成新向量?我需要一种机器学习(数据驱动)方法来实现这样的目标。

提前感谢您的任何帮助和建议。

1个回答

我认为 TwinPenguins 的答案(评论)为您提供了一个良好的开端。您可以通过使用 Metropolis Monte Carlo 方法来改进这一点,而不是一次又一次地尝试生成新向量。你可以做的是:

  1. 从您感兴趣的分布中随机抽样创建一个长度与您相似的新向量并计算 KLDold(参见双企鹅)
  2. 修改这个向量并计算 KLDnew.
  3. 如果(KLDnew比KLD好old),新向量成为你的旧向量
  4. 否则丢弃更改
  5. 回到 2,除非你达到 KLD 的给定目标值

(请注意,陷入局部最小值可能会有问题,但搜索蒙特卡洛文献,您会找到解决方案……您总是可以运行多次,然后获得最佳结果。)