sklearn.model_selection.GridSearchCV 中文

                                                                 网格搜索最佳参数GridSearchCV

class sklearn.model_selection.GridSearchCV(estimatorparam_gridscoring=Nonefit_params=Nonen_jobs=1,iid=Truerefit=Truecv=Noneverbose=0pre_dispatch='2*n_jobs'error_score='raise',return_train_score=True)

对分类器的指定参数值进行详尽搜索

重要的成员是fitpredict

分类器的参数通过参数网格上的交叉验证网格搜索进行优化


参数:


1.estimator : estimator object.
scikit-learn分类器接口,估计者需要提供分数函数。如estimator = GradientBoostingClassifier(参数设置)

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_属性将不包括训练分数。 
 

属性:

cv_results_ : dict of numpy (masked) ndarrays
具有键作为列标题和值作为列的dict,可以导入到DataFrame中。注意,“params”键用于存储所有参数候选项的参数设置列表。
best_estimator_ : estimator
通过搜索选择的估计器,即在左侧数据上给出最高分数(或指定的最小损失)的估计器。 如果refit = False,则不可用。
best_score_ : float
best_estimator的分数
best_params_ : dict
在保存数据上给出最佳结果的参数设置
best_index_ : int
对应于最佳候选参数设置的索引(cv_results_数组)。
search.cv_results _ ['params'] [search.best_index_]中的dict给出了最佳模型的参数设置,给出了最高的平均分数(search.best_score_)。
scorer_ : function
Scorer function used on the held out data to choose the best parameters for the model.
n_splits_ : int
The number of cross-validation splits (folds/iterations).

方法

decision_function(*args**kwargs)调用具有最佳发现参数的估计器的decision_function[source]

Parameters:

X : indexable, length n_samples

Must fulfill the input assumptions of the underlying estimator.

fit ( X y=None groups=None )运行拟合所有参数集。 [source]
Parameters:

X : array-like, shape = [n_samples, n_features]

Training vector, where n_samples is the number of samples and n_features is the number of features.

y : array-like, shape = [n_samples] or [n_samples, n_output], optional

Target relative to X for classification or regression; None for unsupervised learning.

groups : array-like, with shape (n_samples,), optional

Group labels for the samples used while splitting the dataset into train/test set.

get_params ( deep=True )获取此估计器的参数。 [source]
Parameters:

deep : boolean, optional

If True, will return the parameters for this estimator and contained subobjects that are estimators.

Returns:

params : mapping of string to any

Parameter names mapped to their values.

inverse_transform ( *args **kwargs )使用最好的参数调用估计器上的inverse_transform。 [source]
Parameters:

Xt : indexable, length n_samples

Must fulfill the input assumptions of the underlying estimator.

predict ( *args **kwargs )使用最好的参数调用估计器的预测。 [source]
Parameters:

X : indexable, length n_samples

Must fulfill the input assumptions of the underlying estimator.

predict_log_proba ( *args **kwargs )在具有最佳发现参数的估计器上调用predict_log_proba。 [source]
Parameters:

X : indexable, length n_samples

Must fulfill the input assumptions of the underlying estimator.

predict_proba ( *args **kwargs ) [source]
Parameters:

X : indexable, length n_samples

Must fulfill the input assumptions of the underlying estimator.

score ( X y=None )如果估计器已被重新设计,则返回给定数据的分数 [source]
Parameters:

X : array-like, shape = [n_samples, n_features]

Input data, where n_samples is the number of samples and n_features is the number of features.

y : array-like, shape = [n_samples] or [n_samples, n_output], optional

Target relative to X for classification or regression; None for unsupervised learning.

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_



你可能感兴趣的:(译文)