python – 使scikit确定性?
发布时间:2020-12-16 23:54:33 所属栏目:Python 来源:网络整理
导读:我正在使用scikit-learn训练一些分类器.我做交叉验证,然后计算AUC.但是,每次运行测试时,我都会获得不同的AUC编号,尽管我确保使用种子和RandomState.我希望我的测试是确定性的.这是我的代码: from sklearn.utils import shuffleSEED = 0random_state = np.ra
我正在使用scikit-learn训练一些分类器.我做交叉验证,然后计算AUC.但是,每次运行测试时,我都会获得不同的AUC编号,尽管我确保使用种子和RandomState.我希望我的测试是确定性的.这是我的代码:
我的问题: 编辑: 我刚试过这个:
然后我做了:
然后我做了:
如你所见,虽然我使用了相同的random_state,但我得到了不同的结果!怎么解决这个? 最佳答案
LogisticRegression在内部使用随机性,并且有一个(未记录的,稍后会修复)random_state参数.
没有设置随机状态的全局方法,因为遗憾的是LogisticRegression上的随机状态和SVM代码只能以hacky方式设置.那是因为这段代码来自Liblinear和LibSVM,后者使用C标准库的rand函数,无法以原则方式播种. 编辑以上是正确的,但可能不是问题的原因.您正在通过调用线程化单个np.random.RandomState,而您应该传递相同的整数种子以便于重现. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |