使用imblearn
这个库:
from imblearn.over_sampling import SVMSMOTE, SMOTE, ADASYN, KMeansSMOTE
import pandas as pd
import numpy as np
# 首先生成dataframe
df = pd.DataFrame(np.random.randint(0, 100, size=(100, 5)))
df.loc[:90, 'label'] = 1
df.loc[90:, 'label'] = 0
# 使用SMOTE算法生成数据
smote = SMOTE(random_state=0)
x_train, y_train = smote.fit_resample(df.drop(['label'], axis=1), df['label'])
# 最后的 y_train 里1与0是一样多的