我试图在分类问题中同时使用cross_validate
函数和SMOTE
函数,我想知道如何正确地做到这一点。
这是我用来在机器学习分类算法中调用 cross_validation 的简单函数:
def bayes(dataIn, dataOut, cv, statistic):
# trainning method
naive_bayes = GaussianNB()
# applying the method
outputBayes = cross_validate(estimator = naive_bayes,
X = dataIn, y = dataOut,
cv = cv, scoring = statistic)
return outputBayes
我访问了cross_validate 文档以搜索是否可以在调用 cross_validate 函数之前确定训练数据集和测试数据集,并且不发送完整的 dataInput 和 dataOutput。因为我想使用 SMOTE 功能,并且要做到这一点,我需要在进行交叉验证之前分离数据集。如果我在跨数据集中使用 SMOTE,结果会出现偏差。
我该如何解决?我应该做我的交叉验证功能吗?我不想这样做,因为 cross_validate 函数返回非常好用,我不知道如何做完全相同的返回。
我看到了其他关于它的问题,但我没有找到那个具体的问题: