我正在使用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(分别为alphal1_ratio)。但是,在重复运行中,我没有得到相同的最佳参数集。我很想知道为什么会这样,如果可能的话,我该如何克服呢?

最佳答案

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

关于python - 为什么GridSearchCV在重复运行时会给出不同的最优值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41215169/

10-12 22:43