Python中的random_state参数

Python中的random_state参数

random_state参数
刚踩进机器学习的坑,在熟悉算法的路上用的读代码的笨办法,在看KNN算法的代码的时候看到了一个random_state参数

iris = datasets.load_iris()
X = iris.data
y = iris.target
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=2003)

看这段代码只知道是在拆分数据集为训练集和测试集,但是一开始不知道random_state这个参数的意义,随机状态到底是什么意思,为什么要设置为2003,出于好奇就去求解了。

发现 random_state 相当于随机数种子random.seed() 。random_state 与 random.seed() 作用是相同的。

random.seed() 就是控制随机数生成器,如果设置相同的随机数种子,之后再调用它的时候生成的随机数就是相同的,像这里的情况就是为了让拆分的数据集每次拆分的结果是相同的,如果不设定随机数种子可能就导致每一次训练集和测试集都不同,在后续训练模型的时候结果可能会出现差别。

因此这个时候需要控制随机状态,如果设置不同的random_state参数或者不设置random_state参数,数据集的结果可能完全不同,相当于要给这个随机的过程添加一个固定的控制器,否则对于模型和结果都可能出现很大的不确定性。^^

在机器学习里面好像有不少地方都会用到random_state这个参数,除了拆分数据集之外,在构建模型,生成数据集时都会用到。

  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值