数据探索和预处理

1、数据类型

数据分析中主要有两类变量:

  • 分类变量:分类变量取值一个集合,每一个值表示变量的一个分类,分类变量可以分为顺序变量和名称变量
    • 顺序变量可以按照一定顺序排列起来,如:评价体检结果:不良<一般<良好
    • 名称变量不存在顺序关系,如:性别男或者女
  • 数值变量:本身是数值型,其次可以进行数值操作,如:平均值和标准差等

2、数据探索

数据探索中,主要计算数据的一些统计量,并通过图和表的形式进行总结

2、1常用的统计量

一般来说,得到数据后首先检查数据的质量,如:每个变量的取值是否合乎数据定义,通常通过计算数据的一些统计量来检查数据是否存在问题。另一个问题是数据通常存在缺失值,进行数据探索时要计算每个变量是否存在缺失值,以及缺失值的比例等。

统计变量包括两个方面:

  • 单个变量的统计量,如数值变量的平均值、极值,分类变量的所有不同取值等
  • 变量之间的统计量,如每两个变量之间的相关系数

对分类变量:

  • 有多少个不同的取值
  • 每个取值的频率
  • 最常见的取值

对数值变量:

  • 均值
  • 方差和标准差
  • 中位数
  • 下四分位数
  • 上四分位数
  • 最小和最大值
  • 偏度
  • 数据的具体分布等

 

3、数据预处理

实际建模中,数据预处理是非常关键的一步,直接影响最终模型结果的好坏,大多数情况下,原始数据都不宜直接用来建模,需要对数据进行预处理后才可以建模,数据预处理包括:

  • 删除部分数据,如直接删除多余或者无关的数据
  • 增加新的数据,从已有数据中构建新的特征
  • 数据的变换,原始数据不适合直接建模,需要做一些变换以便建模

基于树的模型对数据不是特别敏感,线性回归对数据敏感

3.1缺失值处理

第一步:明确缺失数据的重要性,如果对目标值的预测不重要,直接删除改变量,如果很重要,第一种方法通常采用能够处理缺失数据的算法进行建模(如:基于决策树的模型),第二种方法是缺失值填充。

缺失值填充的常用方法:

  • 使用平均值合作中位数填充
  • 使用k近邻进行填充

k近邻进行填充:假设样本X_i的第j个变量缺失记为x_ij,目标就是要估计x_ij,首先利用x_i中没有缺失的变量,找到最相识的k个样本,并用这k个样本的第j个变量的平均值作为x_ij的估计值,缺失算法填充对主要的控制参数k不敏感

3.2数据的标准化

对数值变量,每个变量都有自己的单位,为了解决这个问题,通常先进行数据标准化,经过标准化后的数据,均值都是0,标准差都是1

        X_std = (X_i - X_mean)/X_标准差

 

3.3数据的归一化

归一化是把数据变为【0,1】之间:X_a = (X-X_min)/(X_max-X_min)

3.4删除已有变量

主成分分析PCA降维,但是新的变量是原来变量的线性组合,这样一般难以解释新变量

启发式方法,计算变量之间两两之间的相关系数,接近1或者-1,就需要删除其中一个变量,实际操作中可以要求两个变量之间相关系数的绝对值低于一个阀值(如0.75)

  • 1、计算变量两两之间的相关系数,得到一个dXd的矩阵,若该矩阵所有元素的绝对值都小于规定的阀值,退出。
  • 2、从该矩阵中选出相关系数绝对值最大的两个变量(v和a)
  • 3、计算变量v和所有其它变量的相关系数的绝对值平均值,C1;同样为变量a计算对应C2;
  • 4、如果C1>=C2,则删除变量v,否则删除变量a
  • 5、重复2-4,直到剩余变量两两之间相关系数的绝对值都小于规定的阀值

3.5数据变换

如:变量中有质量和体积,就可以新增密度,删除质量和体积等

 

3.6构建新的变量:哑变量

决策树模型能够较好的处理分类变量,线性回归和逻辑回归不能之间处理分类变量,通常把分类变量转化为多个哑变量,取值只能为0和1,如果一个分类变量有k中不同的取值,可以建立k-1个新的哑变量来代替,如果一个分类变量不同取值太多,需要进行简化,如:体检打分:按照从差到好A、B、C、D、E和F,为了缩小变量取值范围,A、B=差 ,C、D=中,E、F=好

3.7离群数据的处理

离主流数据很远的数据点定义为离群数据,一种常用的处理方法是对数据分组,具体是把所有样本变量的取值从小到大排序,然后分成若干组,然后对应组中数据的均值或者中位数来对他进行修正,常用的分组方法有:

  • 等距分组:把整个数据分布区间分成若干个等长的子区间
  • 等频分组:在划分过程中每个区间样本数一样

4、数据可视化

1、直方图、茎叶图显示样本分布的有效方法

2、柱状图通常用来研究分类变量不同取值的分布情况

3、箱线图:下四分位数、上四分位数、中位数

4、散点图研究变量之间的关系, x和y为不同的两个变量

 

posted @ 2019-03-10 13:49  起航追梦人  阅读(1584)  评论(0编辑  收藏  举报