如何在 sci-kit learn 中使用 GridSearchCV 获得一致的答案?我假设我得到不同的答案 b/c 不同的随机数导致每次运行时折叠都不同,尽管我的理解是下面的代码应该默认解决这个KFold
问题shuffle=False
。
clf = GridSearchCV(SVC(), param_grid, cv=KFold(n, n_folds=10))
如何在 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。选择任何数字。