Machine learning 使用小数据集和SMOTE进行深度学习

Machine learning 使用小数据集和SMOTE进行深度学习,machine-learning,deep-learning,time-series,imbalanced-data,smote,Machine Learning,Deep Learning,Time Series,Imbalanced Data,Smote,我有6000条记录的数据。我有一个60-20-20的训练、验证和测试集。使用XGboost,我的准确率约为76%。我将数据转换成时间序列,并应用LSTM/1-D转换网络,精确度约为60%。我的数据集是否太小,无法进行深入学习 第二,可以在每个列车上应用SMOTE,测试和验证集(在分割数据之后),我知道在将数据分割为列车/测试/验证之前不应应用SMOTE。拆分集合后,可以进行上采样、训练/测试/验证集合吗 如果在拆分列车/测试/验证集后对其进行上采样,我会在LSTM(80%)左右获得更好的结果,但

我有6000条记录的数据。我有一个60-20-20的训练、验证和测试集。使用XGboost,我的准确率约为76%。我将数据转换成时间序列,并应用LSTM/1-D转换网络,精确度约为60%。我的数据集是否太小,无法进行深入学习

第二,可以在每个列车上应用SMOTE,测试和验证集(在分割数据之后),我知道在将数据分割为列车/测试/验证之前不应应用SMOTE。拆分集合后,可以进行上采样、训练/测试/验证集合吗


如果在拆分列车/测试/验证集后对其进行上采样,我会在LSTM(80%)左右获得更好的结果,但这是一种方法吗?我只是想说明,有了更多的数据,我们可以提高深度学习算法的准确性。

一般来说,SMOTE应该只在列车上应用,您可以使用valid调整超参数,而不用进行测试


在您的情况下,我不确定您如何将SMOTE应用于时间序列数据。应该对可能影响结果的因素进行一些假设。

但是,如果我们将SMOTE单独应用于培训、验证和测试集,会怎么样?我每次都创建一个新的SMOTE对象。我不是在申请SMOTE然后拆分。所以从技术上讲,信息不能从训练集泄露到测试集。我将SMOTE应用于常规数据,并将其转换为时间序列,注意是真实目标的近似值。若要在验证和测试数据集中仅包含真实目标,您将获得最准确的验证和测试结果。我仍然关心过采样和转换到时间序列部分。我认为时间序列中的关键概念是交叉时间相关性,而简单的SMOTE不能做到这一点。基本上,我有一个会议数据集。多人互动的地方。我必须预测下一位发言者是谁。因为之前的一系列对话可能会对下一位演讲者产生影响。我正在使用之前对话中的数据,如前一个演讲者、前一个对话等,来构建一个时间序列。我认为如果你把所有之前的对话和上下文作为特征,运行SMOTE,它可能会工作。从统计学的角度来看,由于在过采样方法中忽略协方差,这将导致问题。但对于深度学习方法,我不是专家,到目前为止,我认为它不会在预测方面造成问题;更适合于。