我正在使用 SMOTE (imblearn.over_sampling import SMOTE) 来解决多类分类问题,其中一些类高度不平衡。目前我已经创建了一个循环,它将通过一些迭代对具有最少观察的类进行过度采样。默认情况下,该库将采用样本最少的类并对其进行过采样,但我想决定要对哪个类进行过采样。我看不到图书馆如何支持这个选项 - 有什么想法吗?
我的代码:
df = pd.read_csv(rawdata)
X = df.iloc[:, :-1]
y = df.iloc[:, -1]
for x in range(1,3):
print("Run Number:", x)
print(X.shape)
print('Original dataset shape {}'.format(Counter(y)))
sm = SMOTE(ratio=0.5, random_state=42, k_neighbors=3)
X, y = sm.fit_sample(X, y)
print('Resampled dataset shape {}'.format(Counter(y)))