闲聊数据建模流程

闲聊在数据建模之前的一些数据预处理步骤。
如何培养数据之间的敏感性,多看各指标的分布,通过直方图,柱形图,概率密度图能看到数据的分布情况,能看到数据集中在什么位置,边界值在什么位置。

1、取数:

首先是理解业务,理清逻辑,写sql去数据库里面取数

2、简单理解变量:

取数完成之后,放到excel或者是用python读取文件,浏览数据,记录下每一个变量的含义,并且对变量进行分组,比如在金融行业,将能代表还款意愿的变量放到一组,还款能力的变量放到一组,用户自己个人信息的放到一组,id类放到一组等等,形成良好的职业习惯,;另外顺便将每个变量都升降序排列,或者筛选看看,是连续的还是离散的,或者最大值,最小值等等这些,有助于理清思路

3、数据预处理:

(1)错误值:
首选是改对了(成本很高)、用缺失值替换、删掉记录
(2)缺失值:
1、其实要是比较少的话也可以直接删除

2、样本量小于20%的:
连续变量:用均值(正态分布)或中位数(左右偏)代替,现在也有使用随机森林来替补缺失值的;
分类变量:一般可以不做处理,直接当做一个类别来处理,或者使用众数进行代替

3、20%-50%的:
填补方法如上,同时生成哑变量(这个哑变量是有数据用0,缺失数据填补的用1来编码),让模型来决定是变量的值更重要还是有没有这个变量更重要,或者是结合在一起更有效

4、50%以上的:
根据业务理解,如果不太重要就直接删除这个变量;如果比较重要,原变量不再使用,只生成哑变量(二分类哑变量)参与建模

(3)异常值(定义,5倍标准差之外,平均值±2-3倍标准差、上下四分位数之外)
1、直接删除
2、盖帽法,比如0.01分位点和0.99分位点之外的统一使用两个极端值来进行代替
3、分箱法(等宽[等距]和等深[百分位数]分箱),比较推荐使用
(4)数据转化和one-hot编码等

4、数据探索看变量分布

(1)单变量描述性统计分析
有利于发现单个变量的数据质量,比如数据均衡性,异常值等问题。
离散变量:看频数和占比,能看到数据均衡性问题,可以使用直方图
连续变量:看均值、中位数、方差,用describe函数;看分布用hist做直方图;通过直方图能基本看到该变量的左右偏态和异常值情况

(2)双变量描述性统计-解释变量和被解释变量
有利于发现解释变量和被解释变量之间的关系。
离散对离散:直方图,能看出是否存在差异
离散对连续:箱线图,看中位数是否存在差异
连续对连续:散点图,可以看相关系数

(3)双变量描述性统计-重要解释变量交互
重要解释变量交互组合与被解释变量之间的关系

如果样本量太大的话,使用统计检验方法,需要对样本进行抽样,看P值。

5、特征选择:

有些变量单独拿出来效果不显著,但是有可能组合在一起会显著,考虑交互性;或者单独拿出来显著,组合在一起有多重共线性等问题也是需要考虑的。
1、人工筛选:id类、对建模毫无意义、某一列值全都一样的字段、缺失占比高的先剔除,基本上属于人为特征选择;
2、统计检验:可以根据统计检验里面的t检验、方差分析、相关系数来看相关性程度
3、根据IV、xgboost的importance,来筛选重要变量

6、建模与模型检验

根据业务需求选择合适的模型进行建模,可以使用网格搜索方法来调节参数,这个方法只能是满足局部最优,一个参数一个参数来调节。

模型效果不理想时,可以从以下方面来调整策略(参考金子老师):
1、调节正负样本的权重参数;调整模型参数
2、更换模型算法,或者同时使用几个算法,然后取最终结果
3、根据原始变量,生成衍生变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值