我是机器学习的新手,目前正在处理数据不平衡的项目。 我想使用随机欠采样来平衡数据。 我很困惑,如果我应该在测试火车分割后进行欠采样,还是应该先进行一次欠采样然后再进行火车测试分割?
我的方法: 1.我使用了训练测试拆分来获得:X_train,y_train进行训练以及X_test和y_test进行测试。 2.我将X_train和y_train合并为一个数据集,并进行了欠采样。 3.欠采样后,我根据F1得分并使用X_test。,Y_test进行预测以进行交叉验证和模型选择。
我的方法正确吗? 如果我错了,请纠正我。
答案 0 :(得分:2)
让我们来看看您的方法:
我使用火车测试拆分获得:X_train,y_train进行训练以及X_test和y_test进行测试。我将X_train和y_train合并为一个数据集,并进行了欠采样。
是的。任何重采样技术都应仅应用在火车上。这将确保测试集能够反映实际情况。在这样的测试集上获得的模型性能将很好地估计您模型的泛化能力。如果对整个数据集执行重新采样,则模型的性能将过于乐观。
欠采样后,我根据F1进行了交叉验证和模型选择
很难理解没有这些代码到底做了什么,但是看来您已经对已经重新采样的火车数据进行了交叉验证。这是错误的,并且应该在交叉验证期间对每个测试折叠进行欠采样。让我们考虑应采用的三折简历:
因此,您应该做的是: 1.在训练和测试中拆分数据。 2.在您的火车上进行简历。仅在测试折叠上应用欠采样。 3.在CV的帮助下选择了模型之后,对训练集进行欠采样并训练分类器。 4.估计未修改测试集的性能。