【冰糖Python】scikit-learn中的random_state参数

随机化是机器学习方法的一部分,使用伪随机是方法结果可再现的关键。

sklearn中的一个重要参数是random_state,用于控制随机数生成器,即设定随机种子。

比如,在train_test_split,svm.SVC中均存在random_state参数。

当random_state明确指定,对应函数可产生可再现的结果。将一个指定整数传递给random_state是最安全稳妥的方式。

但,sklearn中提到,random_state的存在并不意味着总是使用随机化,因为它可能取决于正在设置的另一个参数,例如shuffle。

random_state的三种取值:

1、None(Default)

未指定random_state时,将使用numpy.random中的全局随机状态实例。多次调用该函数将重用同一实例,并将产生不同的结果。

2、int

使用一个新的随机数生成器,以给定的整数为种子。使用int将在不同的调用中产生相同的结果。然而需要注意的是,在多个不同的随机种子中结果是否稳定。整数值必须在[0,2**32-1]范围内。

3、numpy.randomRandomState的实例

使用提供的随机状态,只影响同一随机状态实例的其他用户。多次调用函数将重用同一实例,并将产生不同的结果。(此参数没有使用过)

遇到过的一个坑:

在使用svm.SVC时,想要获得测试数据上的预测概率计算AUC,必须指定random_state,否则结果可能不一致,而此现象在其他语言中没有见过,因此稳妥的方式是在所有允许指定random_state的情况下都要额外注意。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰糖不在家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值