python - 使用 np.random.rand 对训练/测试数据进行分区
问题描述
我试图理解这行代码:
msk = np.random.rand(len(df)) < 0.8
据我了解,numpy.random.rand(len(df))
返回从均匀分布生成的 [0, 1) 之间的数字数组。
数组中的每个数字代表什么?值是数据的百分位数吗?
之后,我们得到布尔对象数组,然后创建训练集、测试集。
train = cdf[msk]
test = cdf[~msk]
在此代码中,对于其中的每一列,cdf
它是否与数组中的每个布尔对象匹配msk
,如果是True
,则获取该行并将其放入train
?如果False
进入test
设置?
我想知道我的理解是否正确
解决方案
np.random.rand(len(df))
从均匀 (0, 1) 分布中随机采样len(df)
浮点数。从此分布中采样会生成 0 到 1 之间的数字。
msk
是一个布尔数组。
msk[i]
是True
如果i
随机生成的 -th 值np.random.rand
小于 (<) 0.8
。
msk[i]
是False
如果i
随机生成的 -th 值np.random.rand
大于或等于 (>=) 0.8
。
~msk
翻转True
到False
和False
到True
。这样,cdf
where msk
is的值True
被分配给数组train
,cdf
where msk
is的值False
被分配给test
。
使用此设置,您预计大约 80% 的cdf
分区被划分为train
,其余约 20% 的分区被划分为test
.
推荐阅读
- swift - Xcode firebase 错误用户信息 NSlocalizedDescription 查询已取消
- javascript - 确定一个值是否在两个价格之间跳跃,或者它是否真的在演变
- php - 禁用按钮,直到购物车中有 x 数量的商品?
- search - 为什么我无法找到我的二叉搜索树的高度?
- firebase - 在 React Native 中将多个图像上传到 firebase
- c++ - 从自定义数据类型向量中删除重复元素
- android - android contacts2.db mimetype“TYPE”存储在数据表中的哪里,即不是mimetype_id?
- excel - 如何从 excel 中获取输入并使用该值在 as400 中运行宏
- google-cloud-platform - 如何在 Stackdriver 上获取 Spike Alert?
- electron - 为什么我的电子应用程序不能在任何窗口中运行?失败必须有一个合乎逻辑的解释