Scikit learn 具有GroupKFold交叉有效性的优化模型在预测时需要组参数

Scikit learn 具有GroupKFold交叉有效性的优化模型在预测时需要组参数,scikit-learn,grouping,random-forest,cross-validation,k-fold,Scikit Learn,Grouping,Random Forest,Cross Validation,K Fold,我使用GroupKFold优化了RandomForest(以防止数据泄漏,因为有些行来自同一个组) 我得到了一个最适合的模型,但是当我对测试数据进行预测时,它说它需要组特性 这有意义吗?奇怪的是,群组功能也是最重要的功能之一 我只是想知道我是不是做错了什么 感谢您在scikit learn Github repo或“group_feature”或任何类似内容上进行搜索,因此我将继续并假设您的数据集中有一个名为“group”的特性,预测模型需要该特性作为输入以生成输出 请记住,预测模型基本上是一个

我使用GroupKFold优化了RandomForest(以防止数据泄漏,因为有些行来自同一个组)

我得到了一个最适合的模型,但是当我对测试数据进行预测时,它说它需要组特性

这有意义吗?奇怪的是,群组功能也是最重要的功能之一

我只是想知道我是不是做错了什么


感谢您在scikit learn Github repo或“group_feature”或任何类似内容上进行搜索,因此我将继续并假设您的数据集中有一个名为“group”的特性,预测模型需要该特性作为输入以生成输出


请记住,预测模型基本上是一个函数,它接受输入(“预测”变量)并返回输出(“预测”变量)。如果一个名为“组”的变量被定义为预测模型的输入,那么scikit learn将请求它是有意义的。

该组是否在训练集中显示为列?如果是,请将其拆下并重新训练。看起来您只是在使用它来生成拆分。如果它不是您需要预测的输入数据的一部分,那么它不应该在培训集中。

您能提供一个最小的、可复制的代码示例吗?我认为没有必要。这是一个关于理论的问题@Kimtangok,对我来说,你现在的问题太模糊了,无法理解这个问题。您使用GroupKFold创建的折叠之一训练了一个RandomForestClassifier,然后当您进行预测时,您会得到一个错误,请求“组特征”?这是什么“群体特征”?我在RandomForestClassifier或GroupKFold的文档中找不到任何相关信息。我同意@KimTang的观点,我们缺乏关于您真正在做什么的详细信息,一个代码示例可以作为讨论的良好基础(没有措辞问题),并且可以消除任何关于简单编码错误的疑问!它显示在这里:。您作为.split()方法的一部分传入组:当您想要执行交叉验证时,您不需要拆分,只需将启动的交叉验证迭代器对象,比如“GroupKFold(n_splits=5)”传递给“sklearn.model_selection.GridSearchCV”。用最少的例子帮助会更有效。