位置: IT常识 - 正文

详解random_state参数的作用(random_state=123)

编辑:rootadmin
详解random_state参数的作用 前言

推荐整理分享详解random_state参数的作用(random_state=123),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:randn(state),random state,randn(state),random_state=123,random_state=123,random state,randomstate参数,random_state=1,内容如对您有帮助,希望把文章链接给更多的朋友!

在机器学习库sklearn中,构建模型、生成随机数据集、拆分数据集时经常会看到random_state这个参数,例如: data = make_blobs(n_samples=100, centers =2,random_state=9)//生成数据集时 X, y = make_regression(n_features=1,n_informative=1,noise=30,random_state=5)//构建模型 x_train, x_test, y_train,y_test=model_selection.train_test_split(x,y,test_size=0.2,random_state=0)//拆分数据集

一、设置随机种子作用

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

1.未设置随机种子案例 下面两段代码完全相同都没有设置 random seed。它每次取的结果就不同,它的随机数种子与当前系统时间有关。import randomfor i in range(10): print(random.randint(1,100))

95 53 39 3 97 76 88 22 93

for i in range(10): print(random.randint(1,100))

60 82 36 69 87 100 55 36 8 40 44

2.设置随机种子案例 下面这两段代码设置了相同的 random seed(789),它们取的随机数就完全相同,多运行几次也是这样。import randomrandom.seed(789)for i in range(10): print(random.randint(1,100))详解random_state参数的作用(random_state=123)

62 91 82 5 63 18 51 69 40 68

random.seed(789)for i in range(10): print(random.randint(1,100))

62 91 82 5 63 18 51 69 40 68 设置了随机种子的值后,那么当别人重新运行你的代码的时候就能得到完全一样的结果,复现和你一样的过程。

二、randstate的应用

random_state可以用于很多函数,我比较熟悉的是用于以下三个地方:1、训练集测试集的划分 2、构建机器学习模型 3、生成数据集

1. 划分训练集和测试集的类train_test_split 随机数种子控制每次划分训练集和测试集的模式,其取值不变时划分得到的结果一模一样,其值改变时,划分得到的结果不同。若不设置此参数,则函数会自动选择一种随机模式,得到的结果也就不同。```c

ate_unverified_context

2.构建机器学习模型clf = tree.DecisionTreeClassifier(criterion="entropy",random_state=30,splitter="random") 其取值不变时,用相同的训练集建树得到的结果一模一样,对测试集的预测结果也是一样的; 其值改变时,得到的结果不同; 若不设置此参数,则函数会自动选择一种随机模式,每次得到的结果也就不同。3.生成数据集

未设置random_state随机种子值的数据集,同一段代码连续执行两次结果如下图所示,可以看到两次生成不同的数据集。

#导入必要的库from sklearn.datasets import make_blobsfrom sklearn.neighbors import KNeighborsClassifierimport matplotlib.pyplot as pltfrom sklearn.model_selection import train_test_split#生成一个数据集#根据给定的参数生成数据,主要用来测试代码性能(没有实际数据的情况下)data = make_blobs(n_samples=100, centers =2)#没有设置随机种子#将特征和标签赋值给X和yX, y = data#使用散点图进行可视化plt.scatter(X[y==1,0], X[y==1,1], cmap=plt.cm.spring, edgecolor='k',marker='^')plt.scatter(X[y==0,0], X[y==0,1], cmap=plt.cm.spring, edgecolor='k',marker='o')#显示图像plt.show()

设置了random_state随机种子值的数据集,同一段代码连续执行两次结果如下图所示,可以看到两次生成相同的数据集。

#导入必要的库from sklearn.datasets import make_blobsfrom sklearn.neighbors import KNeighborsClassifierimport matplotlib.pyplot as pltfrom sklearn.model_selection import train_test_split#生成一个数据集#根据给定的参数生成数据,主要用来测试代码性能(没有实际数据的情况下)data = make_blobs(n_samples=100, centers =2,random_state=9)#设置随机种子random_state#将特征和标签赋值给X和yX, y = data#使用散点图进行可视化plt.scatter(X[y==1,0], X[y==1,1], cmap=plt.cm.spring, edgecolor='k',marker='^')plt.scatter(X[y==0,0], X[y==0,1], cmap=plt.cm.spring, edgecolor='k',marker='o')#显示图像plt.show()

提示:这里random_state的值是随机选取的,没有固定规律,只要保证取值一致,就可以得到完全一样的结果。

总结

在需要设置random_state的地方给其赋一个值,当多次运行此段代码能够得到完全一样的结果,别人运行此代码也可以复现你的过程。若不设置此参数则会随机选择一个种子,执行结果也会因此而不同了。虽然可以对random_state进行调参,但是调参后在训练集上表现好的模型未必在陌生训练集上表现好,所以一般会随便选取一个random_state的值作为参数。 参考网址: https://www.jianshu.com/p/4deb2cb2502f https://www.shuzhiduo.com/A/RnJW4yYw5q/

本文链接地址:https://www.jiuchutong.com/zhishi/292361.html 转载请保留说明!

上一篇:万字长文带你走进MySql优化(系统层面优化、软件层面优化、SQL层面优化)(万字短文)

下一篇:北坡自治市镇的伊维沙克河,阿拉斯加州 (© Don Paulson/Danita Delimont)(北坡镇人民政府)

  • 销售商品返还现金
  • 财务软件交多少钱印花税
  • 服务业费用有哪些
  • 建筑业挂靠企业所得税如何收取
  • 甲方给的工程奖项有哪些
  • 电子承兑到期怎么操作流程
  • 标书的资金类型是什么
  • 申请开红字发票,原蓝字发票要退回来吗
  • 贷款未收属于什么科目
  • 公司电话费用
  • 金税盘的进项发票怎么导出
  • 所得税汇算清缴报告在哪查
  • 黄金以旧换新工费多少钱一克
  • 固定资产月底怎么处理
  • 公司持有的房产税
  • 农产品收购发票上的买价含税吗
  • 工资表中有哪些项目
  • 营业额500万以上税率
  • 以下凭证免征印花税的有
  • 融资租赁租金及利息计算
  • 建筑 分包
  • 工业企业成本结转金额怎么确定
  • 普通合伙企业个税怎么算
  • 出租房屋免租期如何确认收入
  • 个人劳动供给曲线图
  • 小规模企业年末怎么结转
  • win10老是错误
  • 劳务派遣公司账目如何做
  • 工业会计做账的基本流程
  • 固定资产计提折旧是当月还是次月
  • 增值税进项税转出文件
  • 已冲销凭证是否可以作废
  • 黄石国家公园的建立意义
  • 在大运河上举办什么活动
  • php获取字符串中的指定字符
  • 存放同业属于什么会计制度
  • php 图片
  • 购买员工团体意外险肺炎能报销吗
  • 缴纳残保金的计税依据是什么
  • 减免残保金的操作方法
  • 职工教育经费年底要冲回吗
  • 归还股东投资款
  • 施工项目的费用包括
  • 不能抵扣的进项税转出账务处理
  • 存货跌价准备的结转会计分录
  • 人力资源公司开票税目
  • mysql5.0升级到8.0
  • 股权处置时点
  • 财务会计该如何处理客户以个人账号转款到公司公账?
  • SQL server2008数据不存储,重启后正常
  • 提供加工修理修配劳务包含哪些
  • 通货膨胀溢价的英文
  • 记账凭证应具备的基本内容包括
  • 哪些增值税专用发票不能抵扣进项税
  • 会计估计变更和政策变更有哪些
  • 企业间拆借资金是否合法
  • 国家知识产权专利网
  • 货代是否负责损失
  • 流动性比率怎么算
  • 税交多了可以退吗
  • 收到银联代收短信
  • 利息与资金占用费
  • 政府专项扶持资金
  • 会议服务公司名称大全
  • MySQL ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) 的原因分解决办法
  • Suse Linux 10中MySql安装与配置步骤
  • sqlserver存储过程实例详解
  • win系统文件在哪里
  • macbookpro如何语音输入
  • linux在实际工作中的应用
  • free怎么使用
  • opengl阴影平移
  • fragment的replace方法
  • unityai寻路
  • 利用jQuery及AJAX技术定时更新GridView的某一列数据
  • flask框架官方文档
  • Android 5.1 API 22 所有sdk文件下载地址
  • 个人的房产出租征收什么税
  • 内蒙古国家税务局网上电子税务局官网
  • 新疆喀什泽普县教育局联系电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设