class sklearn.model_selection.
GridSearchCV
(estimator, param_grid, scoring=None, fit_params=None, n_jobs=1,iid=True, refit=True, cv=None, verbose=0, pre_dispatch='2*n_jobs', error_score='raise',return_train_score=True)
对分类器的指定参数值进行详尽搜索
重要的成员是fit和predict
分类器的参数通过参数网格上的交叉验证网格搜索进行优化
参数: |
|
---|
2.param_grid : dict or list of dictionaries
具有参数名称(字符串)作为键的字典和要实数值的参数设置的列表,或者这些字典的列表,在这种情况下,会探索列表中每个字典跨越的网格。 这样可以根据任何参数设置的顺序进行最优参数的搜索。
如param_test = {'n_estimators':range(20,81,10)}
param_dist = {"max_depth": [3, None],
"max_features": [1,5,7,11],
"min_samples_split": [1,5,7,11],
"min_samples_leaf": [1,5,7,11],
"bootstrap": [True, False],
"criterion": ["gini", "entropy"]}
3.scoring : string, callable or None, default=None
字符串(见模型评估文档)或具有签名记分器(estimator,X,y)的可调用对象/函数。 如果没有,则使用估计器的分数法
如scoring='roc_auc'
4.fit_params : dict, optional
要传递给拟合方法的参数
5.n_jobs : int, default=1
并行运行的作业数
6.pre_dispatch : int, or string, optional
控制在并行执行期间调度的作业数。 减少这个数字可以有效地避免在调度更多的作业时不超过CPU可以处理的内存消耗。 该参数可以是: None,在这种情况下,所有的作业立即被创建和产生。 将其用于轻量级和快速运行的作业,以避免由于按需生成作业导致的延迟 int,给出所产生的总作业的确切数量 string,给出一个表达式作为n_jobs的函数,如'2 * n_jobs'
7.iid : boolean, default=True
如果为True,则假定数据在折叠中相同分布,损失最小化是每个样本的总损失,而不是折叠的平均损失。
8.cv : int, cross-validation generator or an iterable, optional
确定交叉验证分裂策略。 cv的可能输入是: 无,使用默认的3折交叉验证, 整数,用于指定一个(分层)KFold中的折叠数。一个用作交叉验证生成器的对象。一个可迭代的生成列,测试分割。对于整数/无输入,如果估计器是分类器,y是 使用二进制或多类,使用StratifiedKFold。 在所有其他情况下,使用KFold。
cv=5
9.refit : boolean, default=True
使用整个数据集重新设计最佳的估计值。 如果为“False”,则在拟合之后不可能使用此GridSearchCV实例进行预测。
10.verbose : integer
控制冗长度:越高,消息越多
11.error_score : ‘raise’ (default) or numeric
12.return_train_score : boolean, default=True
如果“False”,cv_results_属性将不包括训练分数。
decision_function
(*args, **kwargs)调用具有最佳发现参数的估计器的decision_function[source]
Parameters: | X : indexable, length n_samples
|
---|
fit
(
X
,
y=None
,
groups=None
)运行拟合所有参数集。
[source]
Parameters: | X : array-like, shape = [n_samples, n_features]
y : array-like, shape = [n_samples] or [n_samples, n_output], optional
groups : array-like, with shape (n_samples,), optional
|
---|
get_params
(
deep=True
)获取此估计器的参数。
[source]
Parameters: | deep : boolean, optional
|
---|---|
Returns: | params : mapping of string to any
|
inverse_transform
(
*args
,
**kwargs
)使用最好的参数调用估计器上的inverse_transform。
[source]
Parameters: | Xt : indexable, length n_samples
|
---|
predict
(
*args
,
**kwargs
)使用最好的参数调用估计器的预测。
[source]
Parameters: | X : indexable, length n_samples
|
---|
predict_log_proba
(
*args
,
**kwargs
)在具有最佳发现参数的估计器上调用predict_log_proba。
[source]
Parameters: | X : indexable, length n_samples
|
---|
predict_proba
(
*args
,
**kwargs
)
[source]
Parameters: | X : indexable, length n_samples
|
---|
score
(
X
,
y=None
)如果估计器已被重新设计,则返回给定数据的分数
[source]
Parameters: | X : array-like, shape = [n_samples, n_features]
y : array-like, shape = [n_samples] or [n_samples, n_output], optional
|
---|---|
Returns: | score : float |
predictors = [x for x in train.columns if x not in [target, IDcol]]
param_test1 = {'n_estimators':range(20,101,10)}#代表从20到81,间隔10(不包含81)
gsearch1 = GridSearchCV(estimator = GradientBoostingClassifier(learning_rate=0.1, min_samples_split=500,min_samples_leaf=50,max_depth=8,max_features='sqrt',subsample=0.8,random_state=10),
param_grid = param_test1, scoring='roc_auc',n_jobs=4,iid=False, cv=5)
gsearch1.fit(train[predictors],train[target])
gsearch1.grid_scores_, gsearch1.best_params_, gsearch1.best_score_