python中MLP分类器中的不平衡数据集

数据挖掘 Python 神经网络 分类 阶级失衡
2021-09-27 08:10:51

我正在处理不平衡的数据集,并尝试使用 MLP 分类器制作预测模型。不幸的是,该算法将测试集的所有观察结果分类为“1”类,因此分类报告中的 f1 分数和召回值为 0。有谁知道如何处理它?

model= MLPClassifier(solver='lbfgs', activation='tanh')
model.fit(X_train, y_train)
score=accuracy_score(y_test, model.predict(X_test), )
fpr, tpr, thresholds = roc_curve(y_test, model.predict_proba(X_test)[:,1])
roc=roc_auc_score(y_test, model.predict_proba(X_test)[:,1])
cr=classification_report(y_test, model.predict(X_test))
1个回答

您可以尝试使用数据重采样技术。它们可以分为四类:对多数类进行欠采样,对少数类进行过采样,结合过采样和欠采样,以及创建平衡数据集的集合。

上述方法和更多方法在 Python 中与 scikit-learn 接口的不平衡学习库中实现。有关示例,请参见ipython 笔记本