Skip to main content
 首页 » 编程设计

python之Python 中的这个 random.uniform 行到底做了什么

2025年05月04日13虾米哥

我正在关注 tutorial here from Andrew Cross在 Python 中使用随机森林。我让代码运行良好,并且在大多数情况下我理解输出。但是,我不确定这一行到底是做什么的:

df['is_train'] = np.random.uniform(0, 1, len(df)) <= .75 

我知道它“在 0 和 1 之间创建(随机)均匀分布,并将 3/4 的数据分配到训练子集中。”然而,训练子集并不总是正好是子集的 3/4。有时它更小,有时它更大。那么是否选择了大约 75% 的随机大小子集?为什么不让它总是 75%?

请您参考如下方法:

np.random.uniform(0, 1, len(df))创建一个 len(df) 的数组随机数。
<= .75然后创建另一个包含 True 的数组其中数字符合该条件,并且 False在其他地方。
然后代码使用索引中的数据,其中 True被找到。由于随机分布是......好吧,随机的,你不会得到恰好 75% 的值。