为什么GridSearchCV会在重复运行时给出不同的优化?

时间:2016-12-19 02:55:31

标签: python machine-learning scikit-learn cross-validation grid-search

我正在使用GridSearchCv(python中的sklearn包)执行参数选择,其中模型是具有Logistic损失的弹性网络(即具有L1和L2范数正则化罚分的逻辑回归)。我正在使用SGDClassifier来实现此模型。我有两个参数搜索最佳值:alpha(与正则化项相乘的常数)和l1_ratio(弹性网络混合参数)。我的数据集有大约300,000行。我按如下方式初始化模型:
sgd_ela = SGDClassifier(alpha=0.00001, fit_intercept=True, l1_ratio=0.1,loss='log', penalty='elasticnet')
和搜索fxn。如下:
GridSearchCV(estimator=sgd_ela, cv=8, param_grid=tune_para)
带调整参数:
tune_para = [{'l1_ratio': np.linspace(0.1,1,10).tolist(),'alpha':[0.00001, 0.0001, 0.001, 0.01, 0.1, 1]}]

运行代码后,我得到best_paramsalphal1_ratio)。但是,在重复运行中,我没有获得相同的最佳参数集。我很想知道为什么会这样,如果可能的话,我怎么能克服它?

1 个答案:

答案 0 :(得分:1)

如果您希望每次都获得相同的结果,请尝试设置随机种子。