拍拍贷金融风控案例(总结)拍拍贷案例『拍拍贷金融风控案例(总结)』
拍拍贷金融风控案例(摘要)
1.背景数据介绍,预测贷款人是否会偿还欠款是一个二分类问题!
2。清理数据、填充缺失值、识别异常值、字符串大小写、空格和其他问题!
3。原始信息的特征提取,主要是从原始数据中提取有用的特征,
4。特征选择/降维,主要是特征选择,未使用降维,
5。模型融合(混合)仍然是模型设计最主流的方法。有一个线性模型过程可以学习每个分类器的权重
。这五个类别中,第3项和第4项可以概括为特征工程!代码已经基本实现,模型还在训练中。我会把代码贴出来,并将数据上传到百度云盘(链接在最后)。自己学习并尝试一下。
1 训练样本中有3 个CSV 格式的表。 master_info表存储3W数据,login_info表存储5W+,update_info表存储37W+
。测试样品2W测试套件!
2。 idx 字段是包含在三个表中的字段(某些idx 不匹配- 这是难以处理的脏数据- 记住这个陷阱!)每个样本包含超过200 个特征!
master_info 表:
UserInfo_*:借款人特征字段
WeblogInfo_*:信息网络操作字段
Education_Info*:学术资格和学生身份字段
ThirdParty_Info_PeriodN_*:第三方数据周期N 字段
SocialNetwork_*:社交网络字段
LinstingInfo:贷款交易时间
For:默认标签(1=贷款违约,0=定期还款)。测试集不包含目标字段
。login_info 表:
Log_Info(借款人登录信息)
ListingInfo:贷款交易时间
LogInfo1:操作代码
LogInfo2:任务类别
LogInfo3:登录时间
idx:每笔贷款的唯一密钥
update_info 表:
Userupdate_Info(借款人更新信息)
ListingInfo1:贷款交易时间
UserupdateInfo1:内容修改
UserupdateInfo2:修改时间
idx:每笔贷款的唯一密钥
首先,这是非常脏的数据!
1。缺失值的多维处理
按列绘制缺失值:
前两项缺失值太多,我们无法学到任何东西,所以我们决定删除它们。
发现是分类数据,缺失值约为63%。在这里您可以选择将所有数据映射到一种类型,即将NA 视为一个新类别!但是数值呢?您可以选择使用随机森林(减少方差)来适合您的数据!
如果缺失值相对较少,我在这里选择的方法是填写分类数据的众数/中位数和数值数据的平均值!
在这里做出这个判断,你只要想一想就可以了。这样填充数据是可以的,因为有些数据留空,用户不想填写!
2。如何删除异常值
By row:标记缺失值可以让你根据缺失值找到少量异常值。如果缺失点太多,请将其删除。
按列:数值特征的统计标准差/方差,去除值非常小的特征。因为我们可以根据这些值来衡量特征值的离散性,所以当我们将它们全部收集起来时,我们会看到变化。太小了,学习就会困难。
根据模型:使用xgboost,使用原始数据训练模型,选择最好的top 20/40特征,然后计算top特征中每个样本的缺失值,以确定是否正确做。是一个异常值。如果一个好的特征有较多的缺失值,这些样本点就可以被认为是异常值!
3。字符串数据处理
通常包括字符串大小写问题(例如“_QQ”和“_qQ”)、字符串空格问题(例如主表中UserInfo_9 字段中的“China Mobile”和“China Mobile”)以及城市名称问题(例如. UserInfo_8字段中出现“重庆”和“重庆市”!
1贷款产品714。地理定位特征的特殊处理
省份:UserInfo_7字段代表省份,共有32种。我们选择了每个省份的拖欠率直方图,并筛选出了排名最高的几个省份。因为这些脂肪被认为更大。我要尽可能多地找到逾期的人! N 个特征的映射类似于one-hot 编码!
上述方法基于手动选择。如果有更多类别怎么办?示例:有超过300种城市信息
城市:可以使用xgboost对城市信息进行one-hot编码,然后发送给xgboost。只需保留前20/40 名即可。
这里挖掘城市信息时,能否区分一二三线城市?南方和北方城市的历史可查吗?
在挖掘中,为每个城市引入纬度和经度,您可以将纬度和经度拆分为两个数字特征,也可以直接计算距离并将其转换为一个特征!
挖掘将城市特征矢量化,计算每个城市(可能需要更改取值范围以取对数或指数),然后将函数曲线分为六段。将向量转换为1。这里这6个向量用6个特征维度来表示,还是和one-hot编码类似!
这里不再发布代码信息!
地理差异:
计算UserInfo_2,4,8,20的地理位置差异函数! diff_24 diff_28.如果有差异则为1,如果没有差异则为0!
交易时间特征:
对时间进行排序,并从每天交易量的样本中绘制拖欠数和拖欠数的两张折线图!
(蓝色为超额号码,红色为逾期号码)
从图中可以看到,时间信息比较强,拖欠数没有相应变化,但是和拖欠数的增加有很好的关系!
我们这里处理的是离散时间,每10天间隔一次!
2。标准化/one-hot 编码函数
对于其他函数来说,以上所有处理都是在这里完成的。类别类型使用one-hot 编码,并且数字类型已标准化!
3。创建组合特征
使用xgboost 选择前40/20,然后将它们组合成对(可以取对数并进行减、加或乘)。这里最好的效果是取对数并相乘。然后使用xgboost过滤生成的组合特征并选择前500个(你可以自己决定)!
4.更新并登录表
这里两个表的处理思路是一样的。您可以根据修改时间和借出间隔来配置功能,也可以使用更新计数和登录计数来配置这两种功能。我在这里只提供这个,剩下的你可以自己弄清楚!
1。选择功能
:最常见的用途是使用xgboost模型来选择前500个左右(最常用)。
:利用LR模型和L1正则对系数的绝对值进行排序,选择前500个左右。
:两者都是基于模型选择,并且选择是基于基于单个特征与目标值之间的相关性的评分。
有时我们甚至使用模型递归每次去掉最后5%-10%,直到误差大大减少!
2.降维
:一种实现降维的特征提取方法!
:通常基于PCA(旨在最大化方差)和LDA(线性判别模型),其目标是使类别内的点尽可能接近(集中),并使类别之间的点尽可能远离。可以组合多维数据。通过投影到一条直线上,相似数据的投影点尽可能靠近,不同数据点尽可能远离)来进行降维!
:降维是一种黑箱机制,可解释性较差,在比赛中常用,而且往往效果不是很好!
1。类别不平衡
标签的比例约为11:1,这表明类别严重不平衡。如果直接训练的话,模型可能会被判断为全0。这是因为误差可以是最小的。所以我们必须调整样本!
:上采样:直接使用SMOTH算法找到距离某个样本点最近的样本点,并生成它们之间的连接数据!
:成本敏感学习:直接使用模型的样本权重设置(结果可以与上采样进行比较)
:下采样:通常不考虑,大量数据直接丢弃。但你所要做的就是使用11 条数据训练11 个模型,然后投票!
2。模型融合(混合)
这里,主模型使用了三个模型:LR、SVM和Xgboost,然后输入三个模型的预测概率值作为线性模型的特征并学习权重集来评估三个模型。
模型组合由你决定。如果你急需2000元,也可以尝试一下特征工程。答案
一个花了两天时间完成的机器学习项目。完成机器学习后,我熟悉了pandas、numpy、matplotlib、sklearn库和几个简单的项目,并基于这些基础完成了纯手写。我自己实施的一个项目。索引重置问题导致了许多错误,例如训练模型无法学习值。但这两天,我的编码能力和API熟悉程度有了显着提高。现在最好的借贷平台是什么?借钱就是这个项目的全部内容。我得到了一些好的想法,我能够在以后的练习中尽可能多地学习如何思考我的想法,并且我能够参加kaggle/天池。和其他竞赛这里有一些关于您的Papayai 案例的想法,使用我们的软件可以在几秒钟内完成在线贷款支付!
我行各种贷款产品 贷款产品按资质 潮州企业贷款产品
本站所有文章、数据、图片均来自互联网,一切版权均归源网站或源作者所有。
如果侵犯了你的权益请来信告知我们删除。邮箱:3183984895@qq.com