当构建机器学习模型时,当测试数据(一般近期时间维度)结果与训练、验证数据结果差异较大时,一般认为是模型存在过拟合问题。除此之外,近期的测试数据可能与模型训练数据本身就存在分布的差异,也会导致模型效果的下降。
下面提出一些初步判定模型分布的方法。
一、二分类模型,检查y标签是否存在较大差异,主要观察正样本占比:
# 阳性案件情况对比
print('训练数据:',len(model_train_y))
print('验证数据:',len(model_val_y))
print('测试数据:',len(model_test_y))
print('-----------')
print('训练数据阳性:', model_train_y.sum())
print('验证数据阳性:', model_val_y.sum())
print('测试数据阳性:',model_test_y.sum())
print('-----------')
print('训练数据阳性占比:', model_train_y.sum() / len(model_train_y))
print('验证数据阳性占比:', model_val_y.sum() / len(model_val_y))
print('测试数据阳性占比:',model_test_y.sum() / len(model_test_y))
二、观察入参X指标的分布
通过模型输出重点指标排序情况
# 模型特征重要性输出
clf_v4.feature_importances_
1、对于多类别型指标,直接按照类别画柱状图,观察柱状图差异分布是否存在差异
#