这是我必须均匀随机选择 30 个数据点的代码。让我困惑的部分是我们为什么要检查if random.random() <= p?谁能解释一下?from sklearn import datasetsimport randomiris = datasets.load_iris()d = iris.data# sample 30 points uniform randomly from 150 points datasetn = 150m = 30p = m/nlst = []for i in range(0, n): if random.random() <= p: lst.append(d[i,:])
1 回答

猛跑小猪
TA贡献1858条经验 获得超8个赞
Sop
表示一个元素被选中的概率。
由于150
元素总数,且30
元素需要选取,选取一个元素的概率为30/150
。这被设置为p
。
然后迭代每个元素,如果random.random()
(0
和之间1
)的结果大于p
,则选择该元素(我假设是这样;我不完全了解您的数据集)。
平均而言,这应该给出关于30
元素的信息。
添加回答
举报
0/150
提交
取消