我是机器学习的新手,目前正在做一个有不平衡数据的项目,我想使用随机去采样来平衡数据。我很困惑,如果我应该在测试火车拆分后再做撤样,还是应该先做撤样,然后再做火车测试拆分?
我的方法:1.我用训练测试拆分得到:X_train,y_train用于训练,X_test和y_test用于测试.2.我把X_train和y_train合并成一个数据集,然后做撤样.3.撤样后,我根据F1得分进行交叉验证和模型选择,并使用X_test.,Y_test进行预测。
我的方法是否正确?如果我错了,请纠正我。
让我们通过你的方法。
我使用训练测试分割得到: X_train, y_train用于训练,X_test和y_test用于测试。 我把X_train和y_train合并成一个数据集,然后做了下采样。
这就对了。任何重采样技术都应该应用 只是 上的列车组。这将确保测试集反映现实情况。在这样的测试集上获得的模型性能将是对你的模型泛化能力的良好估计。如果对整个数据集进行重采样,你的模型性能会过于乐观。
在解除采样后,我进行了交叉验证和基于F1的模型选择。
在没有代码的情况下,很难理解到底做了什么,但似乎你已经在以下方面做了交叉验证 已经 重新采样的训练数据。这是不对的,在交叉验证过程中,应该对每个测试折线进行了欠采样。我们来考虑3折CV应该怎么做。
因此,你应该做的是:1.在训练和测试上分割数据.2.在你的训练集上执行CV。3.在CV的帮助下选择好模型后,对你的训练集进行解采样,并训练分类器4.估计未触及的测试集的性能。