首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用验证集测试模型的泛化能力

使用验证集测试模型的泛化能力
EN

Stack Overflow用户
提问于 2021-01-06 05:56:06
回答 1查看 58关注 0票数 0

我有一个关于超参数调优和寻找最佳拟合模型的问题(为特定的数据集寻找最合适的模型)。我被建议将我的数据分成三组,而不是两组(仅限于培训和测试):

_Training

_Validation

_Testing

在训练集上使用网格搜索(交叉验证),经过网格搜索(交叉验证)后,可以使用另一组“验证集”来测试模型的泛化能力(对未见数据的性能),之后可能会更改一些参数。但是,我不知道如何使用验证集来测试我的模型的泛化能力。

我的守则:

代码语言:javascript
复制
dt = DecisionTreeClassifier(random_state=12)
max_depth = [int(d) for d in np.linspace(1,20,20)]
max_features = ['log2', 'sqrt','auto']
criterion = ['gini', 'entropy']
min_samples_split = [2, 3, 50, 100]
min_samples_leaf = [1, 5, 8, 10]
grid_param_dt = dict(max_depth=max_depth, max_features=max_features, min_samples_split=min_samples_split, min_samples_leaf=min_samples_leaf, criterion=criterion)
gd_sr_dt = GridSearchCV(estimator=dt, param_grid=grid_param_dt, scoring='accuracy', cv=10)

gd_sr_dt.fit(x_train, y_train)
best_parameters_dt = gd_sr_dt.best_params_
print(best_parameters_dt)

我得到了如下的超参数调优:

代码语言:javascript
复制
{'criterion': 'gini', 'max_depth': 9, 'max_features': 'log2', 'min_samples_leaf': 10, 'min_samples_split': 50}

如何利用验证集测试具有这些参数的模型的泛化能力?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-06 08:47:29

这个问题还不清楚。但是,如果您的意思是您需要一个验证数据集,那么您已经在这样做了。通过每个可能的参数组合,您将创建10个折叠(通过GridSearchCV),这意味着10个折叠数据集,这些数据集基本上用于评估模型的泛化能力,使用选定的参数对未见数据进行评估。

如果您的意思是您需要另一个数据集并对模型进行验证,那么我个人遵循以下两个选项之一:

通过选择preds=model.predict(X_val).

  • Taking,然后对验证数据集进行测试,验证数据集将显示出最佳的性能:这样,您将获得每个折叠中生成的每个模型的平均预测值。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65590890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档