数据预处理
1.数据清洗
数据预处理一方面是要提高数据质量,另一方面可以让数据更好的适应特定的挖掘技术。统计发现,数据建模过程中,数据预处理工作占了整个工作的60%。数据预处理的过程包括数据清洗,数据集成,数据变换和数据规约。码字不易,喜欢请点赞!!!
数据清洗的过程主要包括缺失值处理和异常值处理。
1.1缺失值处理
前面【数据探索篇】说过缺失值处理主要包括的方法有三种:删除记录、数据插补、不处理。这里主要分享常见的数据插补方法:
- 均值/中位数/众数插补
- 固定值插补
- 最近临插补:在记录中找到与缺失样本最接近的样本的属性值填补
- 回归方法:通过回归方程插补
- 插值法:拉格朗日插值法、牛顿插值法、分段插值法等
拉格朗日插值法
通过构造拉格朗日多项日,进行插值填补。如下代码展示了如何使用拉格朗日插值法对缺失值进行填补:
import pandas as pd
from scipy.interpolate import lagrange #拉格朗日插值函数
catering_sale = r"...\data\catering_sale.xls"
data = pd.read_excel(catering_sale)
#首先将异常值设置为空
#销量需要放在前面,否则值未更新
data['销量'][(data['销量']<400) | (data['销量']>5000)]=None
#s为列向量,n为插值位置,k为取前后数据个数,默认为5
#lagrange函数使用:f = lagrange(list_x,list_y),进行插值操作:a = f(i)
def ployinterp_columns(s,n,k=5):
y = s[list(range(n