交叉验证与网格搜索

1. K折交叉验证

原理:通过将数据集均分成k个子集,并依次将其中的K-1个子集作为训练集,剩下的1个子集用作测试集。在K折交叉验证的过程中每一个子集都将被验证一次。
使用K折交叉验证的步骤如下:

  • 首先将数据集均分为K个子集
  • 依次选其中的K-1个子集作为训练集,剩下的1个子集用作测试集进行试验。
  • 计算每次验证结果的平均值作为最终结果
    其具体图示如下:

    在scikit-learn中API:
    sklearn。model_selection.cross_val_score
    主要参数:
    cross_val_score(estimator ,x , y ,cv…..)
    estimator:所需要验证的模型
    x: 特征值组成的数组
    y: 目标值组成的数组
    cv: k折的数量(通常选10)

2. 网格搜索(超参数搜索)

网格搜索算法是一种通过遍历给定的参数组合来优化模型表现的方法。以决策树为例,当我们确定了要使用决策树算法的时候,为了能够更好地拟合和预测,我们需要调整它的参数。在决策树算法中,我们通常选择的参数是决策树的最大深度。在scikit-learn中通常是将交叉验证与网格搜索混合使用
API: sklearn.model_selection.GridSearchCV
主要参数
GridSearchCV(estimator ,param_grid ,cv ,……)
estimator:需要网格搜索的估计器对象
param_grid:字典格式如{“参数名”:[列表里可以放入需要验证的参数值]}
cv:交叉验证折叠数
代码如下:

0条评论