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

y1aodyip  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(661)

关闭。这个问题需要更加突出重点。它目前不接受答案。
**想改进这个问题吗?**通过编辑这篇文章更新这个问题,使它只关注一个问题。

9小时前关门了。
改进这个问题
建立了贷款风险预测python机器学习模型,用于预测借款人是否能够偿还银行贷款。我的模型工作得非常好,准确率达到78%。然而,我的教授告诉我,首先我必须检查我的数据集是否平衡(如果不平衡,请使用imblearn库中的smote)。主要的问题是我不知道如何检查是否平衡。如果有人知道如何检查,请告诉我。
数据集链接:-https://www.kaggle.com/omkar5/dataset-for-bank-loan-prediction?select=credit_train.csv (我用来创建模型的数据集)

cqoc49vn

cqoc49vn1#

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

如果您检查death\u event=1和death\u event=0之间的比率,它是2:1,这意味着我们的数据集是不平衡的。
为了平衡,我们可以对数据进行过采样或欠采样。在这种情况下,欠采样将删除100行,其中死亡事件=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分数。

相关问题