虹膜随机分布均匀

时间:2019-01-07 20:23:58

标签: python python-3.x

这是我必须均匀地随机选择30个数据点的代码。让我感到困惑的部分是为什么我们要检查if random.random() <= p?谁能解释?

from sklearn import datasets
import random
iris = datasets.load_iris()
d = iris.data

# sample 30 points uniform randomly from 150 points dataset
n = 150
m = 30
p = m/n

lst = []
for i in range(0, n):
    if random.random() <= p:
        lst.append(d[i,:])

1 个答案:

答案 0 :(得分:3)

所以p代表元素被选中的概率。

由于共有150个元素,并且需要选择30个元素,因此选择一个元素的概率为30/150。设置为p

然后迭代每个元素,并且如果random.random()(在01之间)的结果大于p,则该元素被选中(我假设这个;我不完全了解您的数据集。

平均而言,这应该包含约30个元素。