基于Xgboost + LR + Keras 建模评估用户信用状态

  1. 项目背景
    拍拍贷“魔镜风控系统”基于400多个数据维度来对当前用户的信用状态进行评估,通过历史数据每个借款人的性别、年龄、籍贯、学历信息、通讯方式、网站登录信息、第三方时间信息等用户信息以及对应的分类标签,在此基础上结合新发标的用户信息,得到用户六个月内逾期率的预测,为金融平台提供关键的决策支持。

  2. 数据格式
    数据下载–点这里
    这里面包含三期数据,每期数据内容和格式相同,这里面包括两部分信息:
    一部分是Master
    PPD_dat_1.csv
    PPD_dat_2.csv
    PPD_dat_3.csv
    这里写图片描述
    一部分是Log info
    PPD_daht_1_LogInfo.csv PPD_daht_2_LogInfo.csv PPD_daht_3_LogInfo.csv
    这里写图片描述
    一部分是Update info
    PPD_daht_1_Userupdate.csv
    PPD_daht_2_Userupdate.csv
    PPD_daht_3_Userupdate.csv
    这里写图片描述

3. 问题思路

数据清洗

  • 对数据的合并:要把几次的数据合并到一起;要把主表和日志表合并在一起;要把训练集和测试集合并在一起。
  • 对字符空格的转换:存在着汉字和英文字符,需要转换成数值形式;存在着数据表达不统一的情况,比如北京和北京市,QQ和Qq,以及多空格等情况。
    • 对LogInfo与UserupdateInfo 日期信息的处理等:历史记录相对于主表的主要差异在于对于每个index的各项信息,主表是按列汇总,而历史记录是按行堆叠,因此将历史记录按index 分组,将各行信息汇总到各列上,使得各个index 对应唯一一行以与主表连接。此外,对每笔贷款的历史记录中的时间信息,通常其起始时间和登陆/更新信息的总频率对衡量借款人的行为较为重要。

数据摘要

  • 它的作用是简化并理解数据特征,主要包括了变量的类型、变量空值/非空值数据、变量频数前五的值与对应数量、其他值的数量、数字变量的统计量(均值、方差、四分位数)

特征工程

  • 数值特征的保留与非数值特征的转换:有额外信息的非数值变量转化为对应的数值:时间–>年月日周、相对天数,地名–>经纬度和城市等级,定序变量–>序数;其他非数值变量全部0-1哑变量处理。
  • 选取统计量概况一系列相似变量:取中位数、方差、求和、最值、空值树等概况各时期第三方信息、几个城市变量信息等,统计量尽量要相互独立
  • 3
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
这是一个比较复杂的机器学习模型融合的代码,需要很多前置知识和数据预处理,以下是一些伪代码: 1. 数据预处理 首先需要准备好数据集,将其分成训练集和测试集,并进行特征提取和降维等操作。 2. EEMD 对于每个样本,使用 EEMD(经验模态分解)方法对其进行信号分解,得到若干个 IMF(固有模态函数),并将其作为输入特征。 3. XGBoost 使用 XGBoost 模型对 EEMD 提取的特征进行训练和预测。以下是一些伪代码: ```python import xgboost as xgb # 训练集数据和标签 X_train, y_train = ... # 测试集数据和标签 X_test, y_test = ... # 定义 XGBoost 模型 model_xgb = xgb.XGBRegressor( max_depth=5, learning_rate=0.1, n_estimators=100, objective='reg:linear', ) # 训练模型 model_xgb.fit(X_train, y_train) # 预测结果 y_pred_xgb = model_xgb.predict(X_test) ``` 4. LightGBM 使用 LightGBM 模型对 EEMD 提取的特征进行训练和预测。以下是一些伪代码: ```python import lightgbm as lgb # 训练集数据和标签 X_train, y_train = ... # 测试集数据和标签 X_test, y_test = ... # 定义 LightGBM 模型 model_lgb = lgb.LGBMRegressor( max_depth=5, learning_rate=0.1, n_estimators=100, ) # 训练模型 model_lgb.fit(X_train, y_train) # 预测结果 y_pred_lgb = model_lgb.predict(X_test) ``` 5. LSTM 使用 LSTM 模型对原始数据进行训练和预测。以下是一些伪代码: ```python from keras.models import Sequential from keras.layers import LSTM, Dense # 训练集数据和标签 X_train, y_train = ... # 测试集数据和标签 X_test, y_test = ... # 定义 LSTM 模型 model_lstm = Sequential() model_lstm.add(LSTM(50, input_shape=(X_train.shape[1], X_train.shape[2]))) model_lstm.add(Dense(1)) model_lstm.compile(loss='mse', optimizer='adam') # 训练模型 model_lstm.fit(X_train, y_train, epochs=100, batch_size=64, verbose=0) # 预测结果 y_pred_lstm = model_lstm.predict(X_test) ``` 6. 模型融合 将 XGBoost、LightGBM 和 LSTM 预测的结果进行加权平均或者其他方式的融合,得到最终的预测结果。以下是一些伪代码: ```python # 加权平均融合 y_pred = (0.5 * y_pred_xgb) + (0.3 * y_pred_lgb) + (0.2 * y_pred_lstm) ``` 这只是一个简单的示例,实际上还需要进行更多的数据预处理和模型调参等操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值