python大数据之数据清洗

数据决定模型的上限,好的数据或数据处理,对模型的影响是非常大的,同样,对于数据的处理,不同的数据,处理情况也不一样,具体情况如下所示:

  • 缺省值处理
  • 异常值处理
  • 样本的数量
  • 特征的数量:特征筛选
  • 特征的类型(连续,整形,类别)
缺省值处理

对于缺省值,这个需要根据不同的情况,不同类型的数据来进行不同的处理。

  1. 删除法:如果缺失值样本较少的话,直接删除,或删除缺省值较大的

  2. 零近值填补:对每一列的缺失值,采用临近位置的数据进行填充。

  3. 平均值填充:一般针对数值型变量,采用平均值填写

  4. 众数填充:一般针对类别型变量,采用众数来填充

  5. 中位数填充:一般针对整数型变量,却中位数进行填充

  6. KNN填充:寻找与之最相近的k个数据,取平均值填充

  7. 回归:基于完整的数据建立回归方程,来对空值进行回归,得到的最后的结果。

异常值处理

1.简单统计分析:通过简单的观察,以及最大最小值来判断数据的合理性

2.3σ原则:处在3σ范围之内是正常数据

3.箱线图:超过上下须的值可以作为异常值处理

处理方法

  • 删除:直接删除异常值
  • 缺失值:视为缺失值
  • 平均值修正:修改为平均值
  • 盖帽法:通过99%和1%的点来对其进行处理。
  • 分箱法:分箱法通过考察数据的“近邻”来光滑有序数据的值。有序值分布到一些桶或箱中。包括等深分箱:每个分箱中的样本量一致;等宽分箱:每个分箱中的取值范围一致。
  • 不处理:根据该异常值的性质特点,使用更加稳健模型来修饰,然后直接在该数据集上进行数据挖掘。
样本的数量

如果样本数量较少的话,可以采用增多数据集

  • 人工增加,这个在比赛的时候肯定是用不了的

  • 图片数据,可以尝试旋转,翻转,裁剪,增加噪音等操作

  • GAN网络生成更多的样本数据

  • 建议使用简单的模型,例如多项式回归,岭回归等可以列出表达式,便于模型可解释性

特征的数量

如果特征数量过多,超过500多个,但是最后需要的特征数量只要求30个,那么我们需要着重处理的就是特征筛选,这里我们可以使用的方法如下:

  1. 相关性分析:去除特征的冗余问题
  2. 重要程度分析:通过模型进行训练,然后对特征重要程度进行排序
  3. 特征降维:将m维特征降维成n维特征,其中m≥n。(如果题目要求原有特征下的筛选,就不能使用降维)
  4. 缺省值分析:删除缺省值过大的
  5. 唯一属性分析:删除唯一属性

同样的,如果特征数量较少,可能需要用到特征构造

  1. 特征组合:对不同类型的特征进行笛卡尔积,加减乘除等操作
  2. 数学变换:通过基础数学公式进行变换,如对数变换,指数变换,Box-Cox变换
  3. 特征拆解:对于体积,时间戳等特征进行拆解
  4. 统计量构造:四分位数,中位数,平均值,标准差,偏差,偏度,偏锋等。
特征的类型
  • 类别变量:例如老年,中年,青年,这样的类别
  • 整型变量:例如年纪,多少岁
  • 浮点型变量:例如微信上的钱包,0.2元,
总结

以上就是我总结的大数据清洗的内容,具体详情,可以点开标题链接。

你可能感兴趣的:(python,python,数据挖掘,机器学习)