python - 如何在具有多个目标变量(多输出)的样本数据上过度/不足?
问题描述
假设我有一个具有 2 个独立特征和 6 个从属特征的数据集,如下所示,其中AA and BB
独立和A,B,C,D,E,F
因变量。
AA BB A B C D E F
teacher No 1 0 0 1 0 0
student Yes 1 1 0 1 0 0
officer Yes 0 0 1 0 0 0
engineer Maybe 1 1 1 0 0 0
student Sure 0 1 1 0 0 1
lawyer Maybe 1 1 0 0 1 0
student Yes 1 0 0 1 1 0
teacher No 1 1 1 0 0 0
doctor No 0 1 1 0 0 0
engineer Maybe 1 0 0 1 1 0
如果假设我想通过上采样或下采样或过采样来平衡我的数据,我该怎么做?普通的 SMOTE 和 sklearn 技术不会采用多个目标并引发大量错误。有人可以帮我解决这个问题。
解决方案
免责声明:重采样类/加权损失函数只有在使训练集更接近测试集中的类分布时才会改善您的结果。在这种情况下,优先使用加权损失函数。
如何重新采样数据集:
class_counts = df['AA'].value_counts()
class_weights = len(class_counts)/class_counts
resampled_df = df.sample(
n=class_counts.max()*len(class_counts),
weights=df['AA'].map(class_weights),
replace=True)