在python中使用SMOTE进行升采样

时间:2019-08-01 11:30:14

标签: python-3.x machine-learning data-science imblearn

我正在尝试在python中使用SMOTE来处理高度不平衡的数据集。将数据集分为训练和测试后,我使用SMOTE生成了合成样本。然后,我在SMOTE生成的数据上使用xgboost算法。我的模型输出是为了预测原始数据集的概率。但是在实施SMOTE之后,样本数量已经增加,如何获得原始数据集来预测概率? 代码如下

X_train, X_test, y_train, y_test = train_test_split(X_final, Y_final, test_size=0.1, random_state = 27)  
sm = SMOTE(random_state=27, ratio=1.0)  
X_final_sm, Y_final_sm = sm.fit_sample(X_train, y_train)  
smote_xgb = XGBClassifier().fit(X_final_sm, Y_final_sm) 
smote_pred = smote_xgb.predict(X_final_sm)  
smote_pred_prob = smote_xgb.predict_proba(X_final_sm)

0 个答案:

没有答案