我想使用库在 python 中使用 SMOTE 算法执行过采样imblearn.over_sampling
。我的输入数据有四个目标类。我不想对所有少数类分布进行过度采样以匹配多数类分布。我想以不同的方式对我的每个少数族裔进行过采样。
当我使用时SMOTE(sampling_strategy = 1, k_neighbors=2,random_state = 1000)
,出现以下错误。
ValueError: "sampling_strategy" can be a float only when the type of target is binary. For multi-class, use a dict.
然后,根据错误,我使用字典作为“sampling_strategy”,如下所示,
SMOTE(sampling_strategy={'1.0':70,'3.0':255,'2.0':50,'0.0':150},k_neighbors=2,random_state = 1000)
但是,它给出了以下错误,
ValueError: The {'2.0', '1.0', '0.0', '3.0'} target class is/are not present in the data.
有谁知道我们如何定义字典以使用 SMOTE 对数据进行不同的过采样?