我正在使用GridSearchCv
(python中的sklearn软件包)执行参数选择,其中模型是具有Logistic损失(即具有L1-和L2-范数正则化惩罚的Logistic回归)的Elastic Net。我正在使用SGDClassifier
来实现此模型。我对搜索以下两个最佳值感兴趣,有两个参数:alpha
(乘以正则化项的常数)和l1_ratio
(Elastic Net混合参数)。我的数据集约有30万行。我将模型初始化如下: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_params
(分别为alpha
和l1_ratio
)。但是,在重复运行中,我没有得到相同的最佳参数集。我很想知道为什么会这样,如果可能的话,我该如何克服呢?
最佳答案
如果您想每次都获得相同的结果,请尝试设置随机种子。
关于python - 为什么GridSearchCV在重复运行时会给出不同的最优值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41215169/