机器学习--数据清洗

文章目录

      • 1.缺失值
        • 缺省值填充案例:
      • 2.异常值
      • 3.数据集成
      • 4.实体识别
      • 5.冗余属性识别
      • 6.数据变换
      • 7.亚编码
        • 什么是独热编码?

数据清洗主要是删除原始数据集中的无关数据、重复数据,平滑噪声数据,筛选掉与挖掘主题无关的数据,处理缺失值、异常值等。

1.缺失值

处理缺失值的方法可分为3类:删除记录、数据插补和不处理。
*缺失值的处理方法

插补方法 方法描述
均值/中位数/众数插补 根据属性值的类型,用该属性取值的平均数/中位数/众数进行插补
使用固定值 将缺失的属性值用一个常量替换。如广州一个工厂普通外来务工人员的“基本工资”属性的空缺值可以用2015年广州市普通外来务工人员工资标准1895元/月,该方法就是使用固定值
最近临插补 在记录中找到与缺失样本最接近的样本的该属性值插补
回归方法 对带有缺失值的变量,根据已有数据和与其有关的其他变量(因变量)的数据建立拟合模型来预测缺失的属性值
插值法 插值法是利用已知点建立合适的插值函数 f ( x ) f(x) f(x),未知值由对应点 x i x_i xi,求出的函数值 f ( x i ) f(x_i) f(xi)功近似代替

*如果通过简单的删除小部分记录达到既定的目标,那么删除含有缺失值的记录的方法是最有效的。然而,这种方法却有很大的局限性。它是以减少历史数据来换取数据的完备,会造成资源的大量浪费,将丢弃了大量隐藏在这些记录中的信息。尤其在数据集本来就包含很少记录的情况下,删除少量记录可能会严重影响到分析结果的客观性和正确性。

*一些模型可以将缺失值视作一种特殊的取值,允许直接在含有缺失值的数据上进行建模。

缺省值填充案例:

SimpleImputer(*, missing_values=nan, strategy=‘mean’, fill_value=None, verbose=0, copy=True, add_indicator=False)
fit(X) 返回值为SimpleImputer()类,通过fit(X)方法可以计算X矩阵的相关值的大小,以便填充其他缺失数据矩阵时进行使用。 transform(X) 填补缺失值,一般使用该方法前要先用fit()方法对矩阵进行处理。

from sklearn.impute import SimpleImputer
import numpy as np
X = np.array([[1, 2, 3],
             [4, 5, 6],
             [7, 8, 9]])
X1 = np.array([[1, 2, np.nan],
               [4, np.nan, 6],
               [np.nan, 8, 9]])
imp = SimpleImputer(missing_values=np.nan, strategy='mean'

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