使用SMOTE时确定要平衡的课程

时间:2017-04-27 18:27:30

标签: python machine-learning multiclass-classification

我正在使用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)))

0 个答案:

没有答案