我看到,在gridsearchcv中,最佳参数是基于cross-validation确定的,但我真正想要做的是根据one held out validation set而不是cross validation来确定最佳参数。
不确定是否有办法做到这一点。我发现了一些类似的帖子,其中定制了cross-validation folds。然而,我真正需要的是在一个集合上进行训练,并在一个验证集上验证参数。
关于我的数据集的另一个信息基本上是由text series type创建的panda。
发布于 2016-06-19 04:33:10
我确实通过使用PredefinedSplit来回答我自己的问题。
for i in range(len(doc_train)-1):
train_ind[i] = -1
for i in range(len(doc_val)-1):
val_ind[i] = 0
ps = PredefinedSplit(test_fold=np.concatenate((train_ind,val_ind)))然后在gridsearchCV参数中
grid_search = GridSearchCV(pipeline, parameters, n_jobs=7, verbose=1 , cv=ps)发布于 2018-07-07 11:09:45
使用hypopt Python包(pip install hypopt)。这是一个专业的包,专门为参数优化创建一个验证集。它适用于任何科学工具-学习模型的开箱即用,并可用于Tensorflow,PyTorch,Caffe2等。
# Code from https://github.com/cgnorthcutt/hypopt
# Assuming you already have train, test, val sets and a model.
from hypopt import GridSearch
param_grid = [
{'C': [1, 10, 100], 'kernel': ['linear']},
{'C': [1, 10, 100], 'gamma': [0.001, 0.0001], 'kernel': ['rbf']},
]
# Grid-search all parameter combinations using a validation set.
opt = GridSearch(model = SVR(), param_grid = param_grid)
opt.fit(X_train, y_train, X_val, y_val)
print('Test Score for Optimized Parameters:', opt.score(X_test, y_test))https://stackoverflow.com/questions/37803463
复制相似问题