from imblearn.over_sampling import SMOTE
over_samples = SMOTE(random_state=0)
# x为去除y和ID的数据,y为标签(label)
x, y = over_samples.fit_sample(x, y)
y
SMOTE(ratio=’auto’, random_state=None, k_neighbors=5, m_neighbors=10,
out_step=0.5, kind=’regular’, svm_estimator=None, n_jobs=1)
ratio:用于指定重抽样的比例,如果指定字符型的值,可以是’minority’,表示对少数类别的样本进行抽样、
’majority’,表示对多数类别的样本进行抽样、’not minority’表示采用欠采样方法、’all’表示采用过采样方法,
默认为’auto’,等同于’all’和’not minority’;如果指定字典型的值,其中键为各个类别标签,值为类别下的样本量;
random_state:用于指定随机数生成器的种子,默认为None,表示使用默认的随机数生成器;
k_neighbors:指定近邻个数,默认为5个;
m_neighbors:指定从近邻样本中随机挑选的样本个数,默认为10个;
kind:用于指定SMOTE算法在生成新样本时所使用的选项,默认为’regular’,表示对少数类别的样本进行随机采样,
也可以是’borderline1’、’borderline2’和’svm’;
svm_estimator:用于指定SVM分类器,默认为sklearn.svm.SVC,该参数的目的是利用支持向量机分类器生成支持向量,
然后再生成新的少数类别的样本;
n_jobs:用于指定SMOTE算法在过采样时所需的CPU数量,默认为1表示仅使用1个CPU运行算法,即不使用并行运算功能;