Numpy:Pandas的random_state的作用是什么
在本文中,我们将介绍Numpy中的random_state以及它在Pandas中的作用。
阅读更多:Numpy 教程
什么是Numpy的random_state?
Numpy的random_state是一个数字或者NumPy的RandomState实例。如果指定了random_state,每次随机取数的结果都是相同的,这样可保证实验的可重复性。如果随机数生成器没有指定,每次生成的随机数都是不同的。
举个例子:
import numpy as np
np.random.seed(42)
print(np.random.rand(2, 3))
输出结果:
[[0.37454012 0.95071431 0.73199394]
[0.59865848 0.15601864 0.15599452]]
如果我们再次运行上述代码,结果将不会发生变化,因为我们指定了random_state
为42
。这就保证了该随机数生成器的可重复性。
因此,random_state
在机器学习中是非常有用的,因为可以保证每次运行模型时都使用相同的随机数,这样可以保证每次运行都得到相同的输出结果。
Pandas中的random_state
pandas中也有一些基于NumPy的随机数生成函数,其中一些函数需要一个随机种子。例如,当使用.sample()
方法从pandas数据框或序列中随机选择Samples时,可以使用random_state
参数指定随机种子。
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
print(df.sample(n=2, random_state=42))
输出结果:
A B C
1 2 5 8
0 1 4 7
这里我们指定random_state
为42
,结果与上面Numpy的例子一样。但如果不指定random_state
,每次随机结果也不同。
总结
本文中,我们介绍了Numpy随机数生成器中的random_state
以及它在Pandas中的应用。使用random_state
可以保证实验的可重复性,非常有用。如果你在使用模型训练时需要使用随机数,不妨试试指定random_state
看看效果。