我需要创建一些测试数据以放入我的测试数据库中。我无法使用实时数据,并且当我想测试逻辑时,我需要在测试数据库中拥有“合理的”数据。 假设我只使用一个表T(对于许多表,我将需要做同样的事情),它具有几列,一些数字和一些类别。 对于分类“维度”,创建“合理的行”很容易:例如,如果我有3个类别,并且我看到50%的真实行具有类别A,30%拥有类别B和20%拥有类别C,则对于我创建的每个测试行,我可以生成一个随机数,并且:如果小于0.5,则选择A;如果大于0.8,则选择C,否则选择B。
对于连续尺寸,我想有一个类似的方法,为此,我想到了装仓。问题是,我不知道要使用多少个垃圾箱,以及使用不同大小的垃圾箱是否会更好。理想情况下,我希望bin包含以相似频率出现的所有连续值。不幸的是,我的发行版有些偏斜。 示例:C列的值为0 140万次,其余的10万行中,假设80K个不同的值,频率范围为1到250。
我需要一种无需人工干预就能处理这种极端情况的算法。 这里可能的分布是:对于每一行,取1到15之间的一个数字。如果它小于15,则测试列的值为0,否则它是一个从0到最大值(不包括0)的随机值。列。我不确定这是否可以很好地表示表格,而且最重要的是,我需要自动找到该分布,以获取可能的实际价值分布。
我已经尝试过Freedman–Diaconis规则,但是这给了我宽度为0的垃圾箱,因为IQR为0。 我还可以使用其他算法吗?
非常感谢