【问题标题】:Generate random distribution生成随机分布
【发布时间】:2017-12-28 16:39:27
【问题描述】:

我需要生成以下随机分布:

200 个人和 250 个 A 类和 B 类实体:

  • 75% 的人拥有 A 类实体

  • 10% 的人拥有 B 类实体

  • 15% 的人有 2 个 B 类实体

有可能产生这样的随机分布吗?

【问题讨论】:

  • "at least", "at most", "exactly", "only A", "only B", "A and possible B", ... 这种信息好像少了从你的问题。
  • "A未知数,B未知数,共250个" ?
  • 最重要的是一个实体属于用户,它们必须以下列方式分布在他们之间:75% 的人有 N 个 A 类实体,10% 的人有 M 个实体在 B 类中,15% 的人拥有多个 (2) 个实体 = (P 个) B 类实体。N + M + P = 250。
  • 200*(.75) + 200 * (.1) + 2(200)(.15) = 230 不是250。你的数字不加起来。无论如何,“随机”的概念和“精确分布”的概念通常不能很好地混合。
  • 一个人可以有多个实体..

标签: math random statistics distribution


【解决方案1】:

你想说的可能是:共有三组人。 第 1 组:75% 的人与 A 型联系。 第 2 组:10% 的人与 B 类联系。 第 3 组:15% 的人同时使用这两种类型。

A类总数:200*(0.75 + 0.15) = 180 B类总数:200*(0.10 + 0.15) = 50

必须有 230 个 A 类和 B 类实体。

不管怎样,让我们​​暂时忘记实体的数量。

import numpy as np

# two dimensional features: type A, type B
persons = np.zeros((200, 2))
persons[:180, 0] = 1
persons[150:, 1] = 1
np.random.shuffle(persons)

如果分布是固定的,那么你可以洗牌人员 id(有点)。

【讨论】:

    猜你喜欢
    • 2011-03-31
    • 2020-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-04
    • 2020-09-28
    • 2021-04-26
    相关资源
    最近更新 更多