数据分析——建模分析基本流程

2023-09-28 14:43:55

     日常的数据分析工作中,除了基本的拆解法对比法做分析外,也经常需要用到模型的方法来做预测或者分类,这里会介绍建模分析的基本流程及常见处理方法。




1、 描述性分析


       在拿到数据后,不能着急立刻开始清洗数据或者模型训练,而是先了解数据(除建模分析外,其他的数据开发也要做这一步),这样才能避免后期的踩坑,否则十有八九是要复工的。


 那“了解数据”这一环节,具体要了解哪些东西呢?


      01.了解各个特征的业务含义和计算逻辑


      02.各个特征的分布是否符合预期


      03.特征之间的相关性如何,是否符合基本逻辑


      04.特征和目标值的相关性如何,是否符合基本逻辑


在相关性分析这里,数值型变量之间可通过计算相关系数或者画图呈现;数值型变量和分类变量可通过箱线图呈现关系。




2 、缺失值处理


在初步了解数据后,需要做一些数据预处理的行为。


第一步就是对缺失值处理,一般根据样本量多少以及缺失比例,来判断是“宁缺毋滥”的删除,还是缺失值填充。


具体处理的思路可以是这样的:


      01.统计计算样本量n,各个特征数据缺失率y,各样本数据特征缺失率x;


      02.特征缺失率x比较高的样本一般都建议删除;因为多个特征都缺失,填补也比较困难,即使填补信息偏差也会比较大。


      03.如果某特征缺失率y比较大,则删除此特征;如果特征缺失率低且样本量比较大的话,可删除特征缺失的样本;如果样本量少不可删除,则对缺失值做填充。


缺失值填充的方法有:


      01.根据特征的众数、中位数或者平均值来填充;也可以对样本做分类,根据所在类的平均值众数等填充;


      02.通过回归法来做样本填充,缺失值作为因变量,其他特征做自变量去预测;


      03.还可通过比较复杂的方法,如多重插补法。




3、数据标准化处理


     对于很多模型,如线性回归、逻辑回归、Kmeans聚类等,需要计算不同特征的系数,或者计算样本距离。这种情况下,如果不同特征的数值量级差的特别大,会严重影响系数和距离的计算,甚至这种计算都会失去意义;所以在建模前必须要做的就是要去量纲,做标准化处理当然有些模型是不需要做数据标准化处理的,如决策树、随机森林、朴素贝叶斯等。



当前最常用的数据标准化处理方法有:


1.最小—最大规范化

   (x-min)/(max-min),将其规范到[0,1]之间


2.z值规范化

   (x-均值)/标准差,将其规范为均值为0,标准差为1。如果这种情况,受离群点影响比较大的话,可以用中位数代替均值,用绝对标准差代替标准差。


还需要注意的是,如果样本分布非常有偏的话,可以先做box-cox变换,将其往正态分布变换后再标准化。




4、特征选择


在做完基本的数据清洗以及特征变换后,需要做的是特征选择,一般做特征选择的原因是:


      01.某些特征存在多重共线性,这种情况对线性回归和逻辑回归影响比较大;


      02.特征太多,有些特征增加了模型复杂性却与模型无关,不能全部入模,需要筛选出价值更高的特征。




不同的模型和应用场景下特征筛选方式不同:


      01.对于二分类问题来说,筛选逻辑是:筛选出对二分类结果区分度比较高的特征;可以通过计算IV(information value)值的大小来筛选,一般IV值越大,此特征对二分类结果更有区分度。


      02.对于回归预测问题,主要针对多元线性回归。筛选特征的方法有:特征子集选择法、正则化法以及降维法。


1)特征子集选择法


特征子集选择法有向前逐步选择法和向后逐步选择法:


      a)向前逐步选择

     具体方法就是从0个特征开始,一个一个逐步从剩余特征中添加使得模型拟合误差最小的特征,在添加过程中得到模型拟合最优的特征组合。


      b)向后逐步选择

     和向前逐步选择类似,只是反过来了,让所有特征入模,再一步一步剔除效果不好的特征,从而达到最优。


2)正则化压缩无意义特征的系数


      比较好用的方法是lasso。

      一般的线形回归我们只会希望它的误差平方和最小,但是lasso的目标函数在原有目标函数后面加了一项系数惩罚项。这样让目标函数最小,可以实现无意义特征的系数为0,从而实现特征选择。


3)PCA降维

      这个是将原有有一定线性关系的特征线形组合成新的相互独立的特征,所以不适合原有特征已经相互独立的情况。