• estimator:一个学习器对象。它必须有.fit方法用于学习,.predict方法用于预测,有.score方法用于性能评分。

      • param_grid:字典或者字典的列表。每个字典都给出了学习器的一个超参数,其中:

        • 字典的键就是超参数名。
        • 字典的值是一个列表,指定了超参数对应的候选值序列。
      • fit_params:一个字典,用来给学习器的.fit方法传递参数。

      • iid:如果为True,则表示数据是独立同分布的。

      • refit:一个布尔值。如果为True,则在参数优化之后使用整个数据集来重新训练该最优的estimator

      • error_score:一个数值或者字符串'raise',指定当estimator训练发生异常时,如何处理:

        • 如果为'raise',则抛出异常。
        • 如果为数值,则将该数值作为本轮estimator的预测得分。
      • return_train_score: 一个布尔值,指示是否返回训练集的预测得分。

        如果为'warn',则等价于True 并抛出一个警告。

      • 其它参数参考cross_val_score

    1. 属性:

      • best_estimator_:一个学习器对象,代表了根据候选参数组合筛选出来的最佳的学习器。

        如果refit=False,则该属性不可用。

      • best_score_:最佳学习器的性能评分。

      • best_params_:最佳参数组合。

      • best_index_cv_results_中,第几组参数对应着最佳参数组合。

      • scorer_:评分函数。

      • n_splits_:交叉验证的 k 值。

    2. 方法:

      • fit(X[, y,groups]):执行参数优化。
      • predict(X) :使用学到的最佳学习器来预测数据。
      • predict_log_proba(X) :使用学到的最佳学习器来预测数据为各类别的概率的对数值。
      • predict_proba(X) :使用学到的最佳学习器来预测数据为各类别的概率。
      • score(X[, y]) :通过给定的数据集来判断学到的最佳学习器的预测性能。
      • transform(X):对最佳学习器执行transform
      • inverse_transform(X):对最佳学习器执行逆 transform
    3. GridSearchCV实现了estimator的、.score方法。这些方法内部会调用estimator的对应的方法。

    4.2 RandomizedSearchCV

    1. GridSearchCV采用的是暴力寻找的方法来寻找最优参数。当待优化的参数是离散的取值的时候,GridSearchCV能够顺利找出最优的参数。但是当待优化的参数是连续取值的时候,暴力寻找就有心无力。

      GridSearchCV的做法是从这些连续值中挑选几个值作为代表,从而在这些代表中挑选出最佳的参数。

    2. RandomizedSearchCV采用随机搜索所有的候选参数对的方法来寻找最优的参数组合。其原型为:

      1. class sklearn.model_selection.RandomizedSearchCV(estimator, param_distributions,
      2. n_iter=10, scoring=None, fit_params=None, n_jobs=1, iid=True, refit=True,
      3. cv=None, verbose=0, pre_dispatch='2*n_jobs', random_state=None,
      4. error_score='raise',return_train_score='warn')
      • param_distributions:字典或者字典的列表。每个字典都给出了学习器的一个参数,其中:

        • 字典的键就是参数名。

        • 字典的值是一个分布类,分布类必须提供.rvs方法。

          通常你可以使用scipy.stats模块中提供的分布类,比如scipy.expon(指数分布)、scipy.gamma(gamma分布)、scipy.uniform(均匀分布)、randint等等。

        • 字典的值也可以是一个数值序列,此时就在该序列中均匀采样。

      • n_iter:一个整数,指定每个参数采样的数量。通常该值越大,参数优化的效果越好。但是参数越大,运行时间也更长。

      • 其它参数参考GridSearchCV

    3. 方法:参考GridSearchCV