首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用np.random.rand对训练/测试数据进行分区

问使用np.random.rand对训练/测试数据进行分区
EN

Stack Overflow用户
提问于 2019-02-22 00:21:04
回答 1查看 3K关注 0票数 2

我正在尝试理解这行代码:

代码语言:javascript
复制
msk = np.random.rand(len(df)) < 0.8

据我所知,numpy.random.rand(len(df))返回一个介于[0,1)之间的数组,该数组是从均匀分布中生成的。

数组中的每个数字代表什么?值是数据的百分位数吗?

这样做之后,我们得到布尔对象的数组,然后创建训练,测试集。

代码语言:javascript
复制
train = cdf[msk]
test = cdf[~msk]

在这段代码中,对于cdf中的每一列,它是否与数组msk中的每个布尔对象相匹配,如果是True,则获取该行并将其放入train中?如果False到test集合中呢?

我想知道我的理解是否正确

EN

回答 1

Stack Overflow用户

发布于 2019-02-22 00:29:34

np.random.rand(len(df))从均匀(0,1)分布中随机采样len(df)浮点数。从该分布中采样会生成0到1之间的数字。

msk是一个布尔数组。

如果msk[i]随机生成的i-th值小于(<) np.random.rand,则0.8为0.8。

如果msk[i]随机生成的i-th值大于或等于( np.random.rand ) 0.8,则np.random.rand为0.8。

~msk将True翻转为False,将False翻转为True。这样,将msk为True的cdf的值赋给数组train,将msk为False的cdf的值赋给test。

使用这种设置,您预计大约80%的cdf将被分区到train中,其余的大约20%将被分区到test中。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54811762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档