多类数据再分配

数据挖掘 优化 采样
2022-02-15 02:22:58

我想根据新的比例重新分配类中的数据,并想知道什么是最佳方法。例如我有

10 30 60 elements in each class a,b,c

显然每个班级的分数如下:

0.1 0.3 0.6

如果我想按如下方式设置分数怎么办:

0.3 0.2 0.5

并丢弃其他数据。无法生成新数据,应保留最大数量的数据点。它可以推广到一百个类吗?

UPD:我得出了一些最小化问题:

minnf(n)=pinewlogp^i=pinewlog(n^i/N^)

=log(N^)pinewlog(n^i)
英石
n^inic,i1:C
N^=in^i

但我不知道如何制定条件n^i同时也应该最大化。

在哪里n^是我正在寻找的第 i 个类中的一些元素,N是元素的总数和C是一些类。 pinew是一个类划分。ni是给定类中元素的原始数量

如何解决?

1个回答

我认为有一个简单的方法来计算这个:

  1. 对于每个类计算比率新比例/旧比例:
  • 一个:0.3 / 0.1 = 3
  • b: 0.2 / 0.3 = 0.67
  • c: 0.5 / 0.6 = 0.83
  1. 这些比率的最大值是唯一重要的,因为它定义了实例数量的硬限制。例如,在这种情况下,a 类需要 3 倍以上的数据,因此必须将完整样本减少 3。假设您有 1000 个实例:
  • a 保留其 100 个实例,因此样本的完整大小必须为 100/0.3 = 333
  • b 有 0.2 * 333 = 67
  • c 有 0.5 * 333 = 166

(我没有检查这是否适用于所有情况)