【超参数寻优】交叉验证(Cross Validation)超参数寻优的python实现:多参数寻优
交叉验证的基础知识可参考 上一篇博文,本博文主要介绍使用交叉验证进行多参数寻优时的参数搜索方法:网格搜索(Grid Search)以及网格搜索两种常用的python实现方式。
一、网格搜索原理
网格搜索是一种穷举搜索方法,通过循环遍历多参数的可能取值情况,性能最好的模型对应的参数就是最优参数。
二、网格搜索+交叉验证用于多参数寻优的python实现
代码及样本地址: https://github.com/shiluqiang/python_GridSearch-CV
1、训练模型及待寻优参数
本博文选用的多参数机器学习模型为非线性SVM(参考资料【1】),模型的优化问题为:
min W , e 1 2 ∥ W ∥ 2 + C 2 ∑ i = 1 m e i 2 s . t . y i ( W ⋅ φ ( x i ) + b ) ≥ 1 − e i , i = 1 , ⋯   , m e ≥ 0 , i = 1 , ⋯   , m \begin{array}{l} \mathop {\min }\limits_{W,e} \frac{1}{2}{\left\| W \right\|^2} + \frac{C}{2}\sum\limits_{i = 1}^m { {e_i}^2} \\ s.t.{y_i}\left( {W \cdot \varphi ({x_i}) + b} \right) \ge 1 - {e_i},i = 1, \cdots ,m\\ e \ge 0,i = 1, \cdots ,m \end{array} W,emin21∥W∥2+2Ci=1∑mei2s.t.yi(W⋅φ(xi)+b)≥1−ei,i=1,⋯,me≥0,i=1,⋯