Python中的随机种⼦——random_state
random_state是⼀个随机种⼦,是在任意带有随机性的类或函数⾥作为参数来控制随机模式。当random_state取某⼀个值时,也就确定了⼀种规则。
random_state可以⽤于很多函数,我⽐较熟悉的是⽤于以下三个地⽅:1、训练集测试集的划分 2、构建决策树 3、构建随机森林
random python1、划分训练集和测试集的类train_test_split
X_train,X_test, y_train, y_test =ain_test_split(train_data,train_target,test_size=0.3, random_state=0)
随机数种⼦控制每次划分训练集和测试集的模式,其取值不变时划分得到的结果⼀模⼀样,其值改变时,划分得到的结果不同。若不设置此参数,则函数会⾃动选择⼀种随机模式,得到的结果也就不同。
2、构建决策树的函数
clf = tree.DecisionTreeClassifier(criterion="entropy",random_state=30,splitter="random")
其取值不变时,⽤相同的训练集建树得到的结果⼀模⼀样,对测试集的预测结果也是⼀样的;
其值改变时,得到的结果不同;
若不设置此参数,则函数会⾃动选择⼀种随机模式,每次得到的结果也就不同。
3、构建随机森林
clf = RandomForestClassifier(random_state=0)
其取值不变时,⽤相同的训练集建森林得到的结果⼀模⼀样,对测试集的预测结果也是⼀样的;
其值改变时,建森林得到的结果不同;
若不设置此参数,则函数会⾃动选择⼀种随机模式,每次得到的结果也就不同。
总结:在需要设置random_state的地⽅给其赋⼀个值,当多次运⾏此段代码能够得到完全⼀样的结果,别⼈运⾏此代码也可以复现你的过程。若不设置此参数则会随机选择⼀个种⼦,执⾏结果也会因此⽽不同了。虽然可以对random_state进⾏调参,但是调参后在训练集上表现好的模型未必在陌⽣训练集上表现好,所以⼀般会随便选取⼀个random_state的值作为参数。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论