Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 对sci工具包的一致回答_Python_Machine Learning_Scikit Learn - Fatal编程技术网

Python 对sci工具包的一致回答

Python 对sci工具包的一致回答,python,machine-learning,scikit-learn,Python,Machine Learning,Scikit Learn,如何在sci工具包学习中使用GridSearchCV获得一致的答案?我假设我得到了不同的答案b/c每次运行时,不同的随机数导致折叠不同,尽管我的理解是下面的代码应该解决这个问题,因为默认情况下KFold具有shuffle=False clf = GridSearchCV(SVC(), param_grid, cv=KFold(n, n_folds=10)) 正如您在评论中指出的,predict_proba不是确定性的 但它确实接受一个随机的状态(就像KFold一样)。我以前发现,如果数据是以非

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

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

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

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

随机状态:int种子、随机状态实例或无(默认)


伪随机数生成器的种子,用于对数据进行随机洗牌以进行概率估计。

我认为您正在查找此参数:random\u state=7

大多数具有随机_状态参数的东西都将其保留为None,这允许变化

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


我把它设为7,因为我喜欢7。选择任意数字。

一些估计器有一个
随机状态
,这可能会改变结果
SVC
应该是确定性的,正如您观察到的
KFold
一样。你确定脚本的其余部分是确定性的吗?非常确定。
SVC
predict\u proba()
输出是否具有确定性?如果我没记错的话,会运行交叉验证来估计一些参数以确定概率,但这是在LIBSVM中完成的,我认为也是确定性的。我问b/c我实际上没有使用
SVC
,但我创建了一个名为
ProbSVC
的子类,它将
predict
映射到
predict\u proba
似乎
predict\u proba()
是不确定的……是的,
predict\u proba
进行了5倍(我认为)交叉验证来校准概率输出。此外,您应该使用
Scorer
接口,而不是子类化imho;)正在等待开发版本发布,然后才使用
Scorer
…我还不够专业,无法使用最新版本:)
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)