我正在尝试使用imbalanced_learn RandomUnderSampler,但每当我执行它时,它会对标签进行排序,使数据无效。 Y包含整数,1或0.这是代码:
X, Y = df.iloc[:, 1:], df.iloc[:, 0]
X_res, Y_res = RandomUnderSampler().fit_sample(X, Y)
print(Y_res)
打印Y给我0 1 0 0 0 1 1 1 1 0 1 0
- >按预期随机。
打印Y_res时给我0 0 0 0 0 0 0 0 0 0 0
虽然最后的是1 1 1 1 1 1 1 ...
我该如何解决这个问题?
答案 0 :(得分:1)
它正在做它应该做的事情。返回具有相等比例的2个类的数据集的子集。如果您的初始数据集有偏差,比如90:10 :: 1:0,欠采样的X_res,则Y_res是数据集的一部分,其中1:0接近50:50。现在你可以按照你的要求随意拆分X_res,Y_res,测试,验证