猿问

虹膜上随机的均匀分布

这是我必须均匀随机选择 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,:])


暮色呼如
浏览 165回答 1
1回答

猛跑小猪

Sop表示一个元素被选中的概率。由于150元素总数,且30元素需要选取,选取一个元素的概率为30/150。这被设置为p。然后迭代每个元素,如果random.random()(0和之间1)的结果大于p,则选择该元素(我假设是这样;我不完全了解您的数据集)。平均而言,这应该给出关于30元素的信息。
随时随地看视频慕课网APP

相关分类

Python
我要回答