对 sklearn 中 GridSearchCV 的说明
Clarifications on GridSearchCV in sklearn
关于 sklearn 中的 GridSearchCV
我有以下问题。我试过但找不到明确的答案。
下面是我使用 -
的代码补丁
dep = df2['responder_flag']
indep = df2.drop(df2.columns[[0,85]], axis = 1)
X_train, X_test, y_train, y_test = train_test_split(indep, dep,test_size=0.25, random_state = 23)
train = xgb.XGBClassifier(objective='binary:logistic')
param_grid = {'max_depth': [4,5], 'n_estimators': [500], 'learning_rate': [0.02,0.01]}
grid = GridSearchCV(train, param_grid,cv=5, scoring='roc_auc')
grid.fit(X_train, y_train)
是cross_validation
,即GridSearchCV
中的cv参数等同于Kfold
或在训练时使用cross_validation_score
和其他类似函数明确应用的其他CV技术数据?
我可以使用 GridsearchCV
进行交叉验证吗?
说如果我不提供多参数列表,它是否等于交叉验证技术?
执行 grid.fit(X_train, y_train)
语句后,是否会根据已识别的最佳参数训练模型并可直接用于模型预测,或者我是否需要使用 [= 定义另一个估算器18=] 然后训练并使用它进行预测?
如果较早回答这些问题,我们深表歉意。
答案如下:
cv
参数相当于k折。
在 GridSearchCV
中,我们给出了一组我们希望模型采用的参数值。假设我们从 [0.0001, 0.001, 0.01, 0.1, 1, 10] 中取 learning_rate
= 0.0001。当我们在gridsearch
中指定cv=5时,它将对000.1
执行5-fold cv
。同样,它也会对剩余的值执行5-fold cv
。 k 在这种情况下是 5。
从某种意义上说,是的。但是不要这样做,因为 GridSearchCV 需要一个参数列表。
GridSearchCV
是一种进行超参数调优的方法。如果您不指定多个参数列表,它会破坏使用 GridSearch 的目的。
不需要在完成 grid.fit(X_train, y_train)
后手动在训练集上使用 grid.best_params_
拟合模型。 GridSearchv
有一个名为 refit
的参数,如果我们设置 refit = True
,它将自动将 grid.best_esitmator_
重新拟合到整个训练集。它默认设置为 True
。 Documentation
关于 sklearn 中的 GridSearchCV
我有以下问题。我试过但找不到明确的答案。
下面是我使用 -
dep = df2['responder_flag']
indep = df2.drop(df2.columns[[0,85]], axis = 1)
X_train, X_test, y_train, y_test = train_test_split(indep, dep,test_size=0.25, random_state = 23)
train = xgb.XGBClassifier(objective='binary:logistic')
param_grid = {'max_depth': [4,5], 'n_estimators': [500], 'learning_rate': [0.02,0.01]}
grid = GridSearchCV(train, param_grid,cv=5, scoring='roc_auc')
grid.fit(X_train, y_train)
是
cross_validation
,即GridSearchCV
中的cv参数等同于Kfold
或在训练时使用cross_validation_score
和其他类似函数明确应用的其他CV技术数据?我可以使用
GridsearchCV
进行交叉验证吗? 说如果我不提供多参数列表,它是否等于交叉验证技术?执行
grid.fit(X_train, y_train)
语句后,是否会根据已识别的最佳参数训练模型并可直接用于模型预测,或者我是否需要使用 [= 定义另一个估算器18=] 然后训练并使用它进行预测?
如果较早回答这些问题,我们深表歉意。
答案如下:
cv
参数相当于k折。
在GridSearchCV
中,我们给出了一组我们希望模型采用的参数值。假设我们从 [0.0001, 0.001, 0.01, 0.1, 1, 10] 中取learning_rate
= 0.0001。当我们在gridsearch
中指定cv=5时,它将对000.1
执行5-fold cv
。同样,它也会对剩余的值执行5-fold cv
。 k 在这种情况下是 5。从某种意义上说,是的。但是不要这样做,因为 GridSearchCV 需要一个参数列表。
GridSearchCV
是一种进行超参数调优的方法。如果您不指定多个参数列表,它会破坏使用 GridSearch 的目的。不需要在完成
grid.fit(X_train, y_train)
后手动在训练集上使用grid.best_params_
拟合模型。GridSearchv
有一个名为refit
的参数,如果我们设置refit = True
,它将自动将grid.best_esitmator_
重新拟合到整个训练集。它默认设置为True
。 Documentation