【发布时间】:2017-10-01 13:51:43
【问题描述】:
我正在处理一个不平衡的分类问题,我的负类比我的正类多 1000 倍。我的策略是在平衡(50/50 比率)训练集(我有足够的模拟样本)上训练深度神经网络,然后使用不平衡(1/1000 比率)验证集来选择最佳模型并优化超参数.
由于参数数量很大,我想使用scikit-learn RandomizedSearchCV,即随机网格搜索。
据我了解,sk-learn GridSearch 在训练集上应用一个指标来选择最佳的超参数集。然而,在我的例子中,这意味着 GridSearch 将选择对 平衡 训练集表现最佳的模型,而不是对更现实的不平衡数据。
我的问题是:有没有办法在特定的、用户定义的验证集上使用估计的性能进行网格搜索?
【问题讨论】:
-
也许 PredefinedSplit 是您需要的 - 阅读更多 here。将此传递给 RandomizedSearchCV 或 GridSearchCV 的
cv参数。 -
看起来是这样。万分感谢!顺便说一句,使用“PredefinedSplit”关键字我可以找到a similar StackOverflow question。我可以选择您的评论作为接受的答案吗?
-
不需要。如果对您有帮助,请在此处投票赞成该答案。如果在实施过程中有任何疑问或困难,请在此处评论更新问题。
-
确实是重复的,我会这样标记的。但在那之前:我在使用 PredefinedSplit 方法时遇到了麻烦,我真的不明白它是如何工作的。如果我有例如numpy 数组:X_train、Y_train、X_test、Y_test,我该如何使用该方法?
标签: python validation machine-learning scikit-learn grid-search