实战使用的数据集为天池-零基础入门金融风控-贷款违约预测的数据集。此处导入的数据集为已完成特征工程的数据集,特征工程思路可以参考:天池-金融风控训练营-task3-特征工程_nikita_zj的博客-优快云博客天池-金融风控训练营-task3-特征工程https://blog.youkuaiyun.com/nikita_zj/article/details/122499348
1. 数据导入
all_for_train = pd.read_csv('data/01_feature_all_for_train.csv', index_col = 0)
label_for_train = pd.read_csv('data/01_y_for_train.csv', index_col = 0)
all_for_train['isDefault'] = label_for_train.isDefault
data_test_a = pd.read_csv('data/01_test_for_predict.csv', index_col = 0)
2. EDA
-toad的eda部分类似dataframe的describe,展示一些基本信息。
eda_df = toad.detect(all_for_train)
eda_df.head()
3. 特征选择
特征选择同样在<天池-金融风控训练营>-task-特征工程中有提及,天池-金融风控训练营-task3-特征工程_nikita_zj的博客-优快云博客天池-金融风控训练营-task3-特征工程https://blog.youkuaiyun.com/nikita_zj/article/details/122499348
此处补充两个特征选择的思路:
3.1 iv值
可以基于iv值进行特征选择,iv值的计算可用toad包实现:
to_drop = ['postCode', 'title']
toad_quality = toad.quality(all_for_train.drop(to_drop, axis = 1), target='isDefault', iv_only=True)
toad_quality.head()
3.2 psi值
在比赛中可以考虑训练集和测试集上的psi值,剔除psi值较大(比如大于0.3)的特征。使用toad计算psi值的代码如下:
feat_lst = list(data_test_a.columns[1:])
psi_df = toad.metrics.PSI(all_for_train[feat_lst], data_test_a[feat_lst]).sort_values(0)
psi_df_ = psi_df.to_frame().reset_index().rename(columns = {'index':'feat',0:'psi'})
psi_df_.to_csv('data/psi_df.csv