我正在使用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_params
(alpha
和l1_ratio
)。但是,在重复运行中,我没有获得相同的最佳参数集。我很想知道为什么会这样,如果可能的话,我怎么能克服它?
答案 0 :(得分:1)
如果您希望每次都获得相同的结果,请尝试设置随机种子。