繁体   English   中英

sci-kit learn GridSearchCV 的一致答案

[英]Consistent answer to sci-kit learn GridSearchCV

如何在 sci-kit learn 中使用 GridSearchCV 获得一致的答案? 我假设我得到不同的答案 b/c 不同的随机数导致每次运行时折叠都不同,尽管我的理解是下面的代码应该解决这个问题,因为KFold默认具有shuffle=False

clf = GridSearchCV(SVC(), param_grid, cv=KFold(n, n_folds=10))

正如您在评论中指出的那样, predict_proba 不是确定性的!

但它确实接受 random_state (就像 KFold 一样)。 我之前发现,如果您的数据是以非随机顺序收集的,那么设置 shuffle=False 会导致非常糟糕的结果,所以恕我直言,您最好使用 shuffle 并将 random_state 设置为某个数字。

文档

class sklearn.svm.SVC(C=1.0, kernel='rbf', degree=3, gamma=0.0, coef0=0.0, shrinking=True, probability=False, tol=0.001, cache_size=200, class_weight=None, verbose=False, max_iter=-1, random_state=None)

random_state : int 种子、RandomState 实例或无(默认)

在对数据进行混洗以进行概率估计时使用的伪随机数生成器的种子。

我想你正在寻找这个参数:random_state=7

大多数具有 random_state 参数的东西都将其保留为 None,这允许变化。

您必须将其设置为某个数字才能获得一致的结果。

我将它设置为 7,因为我喜欢 7。选择任何数字。

对于GridSearchCV ,设置numpy.random.seed以获得可重现的结果也很重要。 除了在估计器中设置random_stateseed之外,还必须这样做。

numpy.random.seed(42)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM