如何使用多个目标变量多输出对样本数据进行上下采样?

问题描述

假设我有一个具有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)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...