如何确定我的数据集是否平衡?

2024-06-28 19:13:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建了贷款风险预测python机器学习模型,用于预测借款人是否能够支付银行贷款。我的模型工作得非常好,有78%的准确率。然而,我的教授告诉我,首先我必须检查我的数据集是否平衡(如果不平衡,则从IMBRearn库应用SMOTE)。主要问题是我不知道如何检查是否平衡。如果有人知道如何检查,请告诉我

数据集链接:-https://www.kaggle.com/omkar5/dataset-for-bank-loan-prediction?select=credit_train.csv (我用来创建模型的数据集)


Tags: 数据https模型com机器链接www教授
1条回答
网友
1楼 · 发布于 2024-06-28 19:13:03

简单地说,您需要检查目标变量中的类是否存在不平衡

例如: enter image description here

如果您检查DEATH_EVENT=1和DEATH_EVENT=0之间的比率,它是2:1,这意味着我们的数据集是不平衡的

为了平衡,我们可以对数据进行过采样或欠采样。 在这种情况下,欠采样将删除100行,其中DEATH_事件=0,比率为1:1,但在此过程中会丢失大量数据

另一方面,SMOTE可以帮助我们为少数类生成行。 可以使用以下代码执行此操作:

from imblearn.over_sampling import SMOTE
smote = SMOTE()
X, y = smote.fit_resample(X, y)

df = pd.concat([pd.DataFrame(X), pd.DataFrame(y)], axis=1)

现在谈到模型的“高”准确度,因为大多数数据属于大多数类别0,所以仅预测所有行的0应该会给我一个高准确度,因此您应该检查其他性能指标,如召回率、精确度和f1分数

相关问题 更多 >