Machine learning 不平衡分类:过采样与缩放特征的顺序?

Machine learning 不平衡分类:过采样与缩放特征的顺序?,machine-learning,classification,logistic-regression,Machine Learning,Classification,Logistic Regression,当使用不平衡数据集(例如欺诈检测)执行分类(例如,逻辑回归)时,最好是在对少数类进行过度采样之前对特征进行缩放/zscore/标准化,还是在缩放特征之前对类进行平衡 其次,这些步骤的顺序是否会影响最终解释特征的方式(当使用所有数据(缩放+平衡)来训练最终模型时) 下面是一个例子: 首先缩放: 将数据拆分为序列/测试折叠 使用所有培训(不平衡)数据计算平均值/std;使用这些计算缩放训练数据 在培训数据中对少数班级进行过采样(例如,使用SMOTE) 用logistic回归模型拟合训练数据 使用平均

当使用不平衡数据集(例如欺诈检测)执行分类(例如,逻辑回归)时,最好是在对少数类进行过度采样之前对特征进行缩放/zscore/标准化,还是在缩放特征之前对类进行平衡

其次,这些步骤的顺序是否会影响最终解释特征的方式(当使用所有数据(缩放+平衡)来训练最终模型时)

下面是一个例子:

首先缩放:

  • 将数据拆分为序列/测试折叠
  • 使用所有培训(不平衡)数据计算平均值/std;使用这些计算缩放训练数据
  • 在培训数据中对少数班级进行过采样(例如,使用SMOTE)
  • 用logistic回归模型拟合训练数据
  • 使用平均值/std计算来缩放测试数据
  • 用不平衡测试数据预测类;评估acc/召回率/精确度/auc
  • 先过采样

  • 将数据拆分为序列/测试折叠
  • 在培训数据中对少数班级进行过采样(例如,使用SMOTE)
  • 使用平衡训练数据计算平均值/std;使用这些计算缩放训练数据
  • 用logistic回归模型拟合训练数据
  • 使用平均值/std计算来缩放测试数据
  • 用不平衡测试数据预测类;评估acc/召回率/精确度/auc

  • 您可能暗示了这一点,但您也需要应用mean/std来缩放训练数据,这需要在拟合模型之前进行

    除了这一点,没有一个明确的答案。最好的办法是两种方法都尝试一下,看看哪种方法最适合您的数据

    对于您自己对结果数据的模型的理解,您可能希望计算少数类和多数类的平均值和标准偏差。如果他们有相似的统计数据,那么我们就不会期望规模优先和样本优先之间有太大的差异

    如果平均值和标准偏差非常不同,结果可能会显著不同。但这也可能意味着问题有更大的分离,并且你可能期望更高的分类精度