Scikit网格搜索参数(不是超参数)

时间:2016-03-24 15:26:02

标签: python scikit-learn regression minimize grid-search

当我想找到最好的超参数时,Scikit的GridSearch是完美的。我想使用相同的哲学来找到线性回归的最佳参数集,使用跨多个折叠的目标函数。如何在多个折叠上优化线性回归的参数(字面意思是beta和截距)?

用例(简化):
我有一个有三年数据的数据集。我想定义什么是最好的线性回归是什么"确定所有年份"。如果我对整个数据集进行线性回归拟合,我将得到一个减少所有数据上最小平方误差的数据集。实际上,我会尽量减少错误 enter image description here

然而,这(min(error))不是我的目标。我可以在这个目标上取得好成绩,因为分类器在第1年和第2年表现良好,这足以弥补第3年。

我真正想要最小化的是min(max(error_year_1, error_year_1, error_year_1))

关于这个的一个hacky方法是创建一个函数f(b0,b1,b2,year1,year2,year3),它返回错误的最大值,然后使用scipy最小化该函数。

实际问题:有没有办法在scikit中执行此操作?

1 个答案:

答案 0 :(得分:0)

在我看来,scikit只提供对scoring的直接api访问,我相信一次只能看到一次。

不是很漂亮,但我认为您最好的选择是浏览grid_scores_的{​​{1}} cv_validation_scores并手动获取最小化损失函数最大值的参数集你选。

不要认为它会保存分类器,如果你想用它做预测,你可能不得不重新训练另一个logit。