zoukankan      html  css  js  c++  java
  • 关于python中的随机种子——random_state

    random_state是一个随机种子,是在任意带有随机性的类或函数里作为参数来控制随机模式。当random_state取某一个值时,也就确定了一种规则。

    random_state可以用于很多函数,我比较熟悉的是用于以下三个地方:1、训练集测试集的划分 2、构建决策树 3、构建随机森林

    1、划分训练集和测试集的类train_test_split

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

    2、构建决策树的函数

    clf = tree.DecisionTreeClassifier(criterion="entropy",random_state=30,splitter="random")

      其取值不变时,用相同的训练集建树得到的结果一模一样,对测试集的预测结果也是一样的;

      其值改变时,得到的结果不同;

      若不设置此参数,则函数会自动选择一种随机模式,每次得到的结果也就不同。

    3、构建随机森林

    clf = RandomForestClassifier(random_state=0)

      其取值不变时,用相同的训练集建森林得到的结果一模一样,对测试集的预测结果也是一样的;

      其值改变时,建森林得到的结果不同;

      若不设置此参数,则函数会自动选择一种随机模式,每次得到的结果也就不同。

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

  • 相关阅读:
    mixer: 一个用go实现的mysql proxy
    【Unity Shaders】Using Textures for Effects——打包和混合textures
    sharding jdbc:分库、分表;读写分离;
    springboot(四):thymeleaf使用详解
    spring boot(三):spring data jpa的使用
    深入理解Java虚拟机JVM
    Java入门(4)内部类
    .NET 定时器类及使用方法
    JDK源码
    Java入门(3)面向对象三大特性:封装、继承、多态
  • 原文地址:https://www.cnblogs.com/simpleDi/p/9986198.html
Copyright © 2011-2022 走看看