码迷,mamicode.com
首页 > 其他好文 > 详细

某行fintech比赛复盘

时间:2020-09-17 22:31:23      阅读:28      评论:0      收藏:0      [点我收藏+]

标签:方差   取值   很多   stop   经纬   成交   ack   提升   提高   

1.训练集数据量大,测试集数据了小,容易在复赛过拟合

2.数据:个人信息   App的使用信息   个人消费记录

3.处理过程:

1)数据清洗 

  1.1 对缺失值的对维度处理

    1.1.1 按列属性统计缺失值(可视化)

       剔除缺失值比例高的属性(90%左右);

       缺失值比例在40%~60%(缺省型-1);

       确实在20%左右,平均数或者众数填充;

       统计每个样本缺失值个数作为一个特征,通过比较训练集和测试集,作图可以看到离群点,从而剔除离群点

       剔除常变量(通过查看方差/标准差)

  1.2 对离群点的剔除方法

      在raw data 上训练Xgboost,用得到的xgb模型输出特征的重要性,去最重要的20(or 40)个特征,统计每个样本在这20个特征上的缺失值,将缺失值大于10个的样本删除    

  1.3 文本处理 

      (1)字符大小写转换:Qq,QQ

      (2)空格处理:“中国移动“,“中国移动  ””

      (3)城市名处理:“重庆市”,“重庆”

2)特征工程 (业务)(一般常用方法,log,e,离散化,one-hot)

  2.1 地理信息处理(类别变量->one-hot)

    (1)(人工)统计了每个省份(粗维度,少),设定阈值筛选出违约率较大的几个省,然后分别对这几个省做二值特征

    (2)(Xgboost)每个城市的违约率(细维度,多),为了得到有判别性的二值特征,首先对城市进行独热编码,得到333维的二值特征,然后在这333维稀疏特征上训练xgb模型,根据xgb输出的特征重要性选         取部分二值特征(对应的城市)

    (3)按城市等级合并:类别型特征取值个数太多,one-hot编码后太高纬度稀疏矩阵(拿不到权重,或者得到有用的区分信息),除了上面特征选择的方法外,还有合并变量的方法(聚类)

    (4)经纬度特征的引入:收集各个城市的经纬度,加入经纬度后,线下的分数提高千分位

    (5)城市特征向量化(个数):将城市特征里的城市计数,并取log(尝试指数),然后等值离散化到几个区间内(例如6个:100000)

    (6)地理位置差异特征:由于多列都是城市信息,构建一个城市差异的特征,比如diff_12表示1,2列城市是否相同,有千分位的提升

  2.2 成交时间

    (1)将成交时间连续化或者离散化处理

  2.3 类别型编码

    (1)组合特征:  

        Xgboost得到top features,于是用这部分特征构建了组合特征(两两相除得到了7000+个特征),然后使用Xgboost对这7000个特征单独训练,再取top 500达到0.73+,再把500个特征加进原始体系中, 

      从0.77+提到0.783,另外还有log(x*y),筛选出270多维,又提高到0.785

  2.4  修改信息表的特征

    (1)修改信息次数,修改信息时间到成交时间的跨度,每种信息的修改次数

  2.5  App标的特征

    (1)登录天数 ,平均登录间隔,每种操作代码的次数

3)特征选择

  Xgboost重要度排序,降低过拟合的风险

  特征的选择有很多:PCA,SVD(往往效果不好),皮尔森相关系数,正则化方法,最大信息系数,基于模型的特征排序(较好)

4)类别不平衡处理  

  代价敏感学习  与  过采样

5)模型设计与设计

   LR+(L1正则化,1700维) 0.772

  Xgboost(early stoping,bagging)

  svm(sklearn.svc)

  多模型的blending ensemble(stacking中的一种(linear))

某行fintech比赛复盘

标签:方差   取值   很多   stop   经纬   成交   ack   提升   提高   

原文地址:https://www.cnblogs.com/354151531blogs/p/13624549.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!