数据预处理
与本文有关的代码和数据包在以下百度云网盘中,欢迎大家下载实践。
链接:https://pan.baidu.com/s/1O9DXGSGNlT2fkHX1woBpBA
提取码:m69u
1)缺失值处理
方法:删除记录,数据插补和不处理。
常见的插补法:
- 均值/中位数/众数插补
根据属性值的类型,用该属性取值的平均数/中位数/众数进行插补 - 使用固定值
将缺失的属性值用一个常量替换。 - 最近临插法
在记录中找到与缺失的样本最接近的样本的该属性值插补 - 回归方法
对带由缺失值的变量,根据已有数据与其有关的其他变量(因变量)的数据建立拟合模型来预测缺失值属性。 - 插值法
插值法是利用已知点建立合适的插值函数f(x),未知值由对应 x i x_i xi求出的函数值f( x i x_i xi)近似代替
拉格朗日插值法:
牛顿插值法:
用拉格朗日插值法对缺失值进行插补的Python程序。
(数据详见:demo/data/catering_sale.xls)
emm以下代码本人运行总是会出错,上网也找不到原因,如果你们运行出错的话,请跳过本段代码。
#拉格朗日插值代码
import pandas as pd #导入数据分析库Pandas
from scipy.interpolate import lagrange #导入拉格朗日插值函数
inputfile = 'catering_sale.xls' #销量数据路径
outputfile = 'sals.xls' #输出数据路径
data = pd.read_excel(inputfile) #读入数据
data[u'销量'][(data[u'销量'] < 400) | (data[u'销量'] > 5000)] = None #过滤异常值,将其变为空值
#自定义列向量插值函数
<