数据预处理(1)数据清洗

数据预处理的内容主要包括数据清洗,数据集成,数据变换和数据规约。

数据清洗

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

缺失值处理

缺失值处理的方法可分为三类:
删除记录、数据插补和不处理。
常用的数据 插补方法有:
均值中位数众数插补
使用固定值插补
使用最近临插补
回归方法 建立拟合模型预测缺失的属性值
插值法 利用已知点建立插值函数
这里重点介绍 拉格朗日插值法
拉格朗日插值法
数学基础
数学上来说,拉格朗日插值法可以给出一个恰好穿过二维平面上若干个已知点的多项式函数。
即给出若干个已知点,可以找出一个多项式穿过这些点。
假设f(a1)=b1,f(a2)=b2,f(a3)=b3
第一项则为
f(x)1=b1 * (x-a2)(x-a3) /(a1-a2)(a1-a3)
将a1带入 (a1-a2)
(a1-a3) /(a1-a2)(a1-a3)为1,因此在a1的值即为b1
将这些多项式加起来
对于经过的点,带入x的值,其他多项式会由于包含该点的多项式而为0.
例如本例,最后多项式的结果应该是
f(x)1=b1 * (x-a2)(x-a3) /(a1-a2)(a1-a3)
f(x)2=b2 * (x-a1)
(x-a3) /(a2-a1)(a2-a3)
f(x)3=b3 * (x-a1)*(x-a2) /(a3-a2)(a3-a1)
这三项的和。
将点a3,b3带入前两个多项式,由于前两个多项式都包含(x-a3)项,因此两者的值均为0,所以带入点后,整个拉格朗日多项式的值为b3。
由此画出的曲线具有一定的数学基础。

拉格朗日插值公式结构紧凑,在理论分析中很方便,但是当插值节点增加时,插值多项式也会随之改变,这在实际计算中是很不方便的。为了克服这一缺点,提出了牛顿插值法。
牛顿插值法在拉格朗日插值法上做了一定的改进,具有承袭性和易于变动节点的特性,从本质上两者给出结果是一致的,我们可以证明在固定阶次下拉格朗日多项式的唯一性,两者只是表示的形式不同。
在python的scipy中只实现了拉格朗日插值法,如果要使用牛顿插值法还需要自己去实现。
lagrange为拉格朗日插值函数
使用时
from scipy.interpolate import lagrange #导入拉格朗日插值函数

异常值处理

异常值处理常用方法有如下几种:

  • 删除含有异常值的记录
  • 视为缺失值
  • 平均值修正
  • 不处理

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