random_state ---summary

1-简介

random_state 相当于随机数种子random.seed() 。random_state 与 random seed 作用是相同的。可参考:https://www.jianshu.com/p/4deb2cb2502f

对模型没有影响,但是对于一些进行随机选择的过程有影响。比如随机拆分训练集和测试集。随机种子一致的时候能保证每次结果的一致性

random_state--- 如果你在需要设置随机数种子的地方都设置好,那么当别人重新运行你的代码的时候就能得到完全一样的结果,复现和你一样的过程。

2-原理(转载自https://blog.csdn.net/Perfect_Accepted/article/details/81151952

我们在使用sklearn的train_test_split函数随机划分数据集生成training set 于test set时,在函数train_test_split中有一个参数为random_state。

random_state:随机数种子——其实就是该组随机数的编号,在需要重复试验的时候,保证得到一组一样的随机数。比如每次都为1,其他参数一样的情况下你得到的随机数组是一样的。当为None时,产生的随机数组也会是随机的。

随机数的产生取决于种子,随机数和种子之间的关系遵从以下两个规则:种子不同,产生不同的随机数;种子相同,即使实例不同也产生相同的随机数。

下面我们通俗的解释一下就是:

参数test_size:如果是浮点数,在0-1之间,表示test set的样本占比;如果是整数的话就表示test set样本数量。

test_size只是确定training set于test set的各自所占比例或者数量,并没有确定数据的划分规则。比如我们有数据集[1,2,3,4,5,6,7,8,9],我们确定test_size=3,那问题是我们应该取哪三个数作为test set呢,这时候就应该使用random_state来确定我们的划分规则,假设我们取random_state=1,它按一定的规则去取出我们的数据,当我们random_state=2时,它又换成另一种规则去取我们的数据,random_state的取值范围为0-2^32。当random_state=None时,可以理解为随机分配一个整数给random_state,这样就导致每次运行的结果都可能不同。

3-疑问

00-random_state=数值,内部是否封装了一个算法,算法是?

01-random_state的取值范围为为什么是0-2^32?

4-待做

查看random_state源码

原文地址:https://www.cnblogs.com/xin-qing3/p/11188138.html