在数据挖掘中,数据每每会存在不完整的状况,本文主要采用拉格朗日插值法处理缺失值。python
拉格朗日插值法函数
定义:对于某个多项式函数,已知有给定的K+1个取值点:3d
其中x对应自变量的位置,y对应这函数在这个位置(每个y值都不等于0)的取值。excel
解设任意两个不一样的Xj都互不相同,对应的拉格朗日插值所获得的拉格朗日插值多项式为:code
下面采用拉格朗日插值对缺失值进行插补,数据的形式以下:blog
从图片能够看出16的位置为空缺值,程序代码以下:图片
#coding:utf-8 import pandas as pd from scipy.interpolate import lagrange#拉格朗日函数 data=pd.read_excel('data/catering_sale.xls') #自定义列向量插值函数 def ploy(s,n,k=6): y=s[list(range(n-k,n))+list(range(n+1,n+1+k))]#取数 y=y[y.notnull()] return lagrange(y.index,list(y))(n) for i in data.columns: for j in range(len(data)): if(data[i].isnull())[j]: data[i][j]=ploy(data[i],j) data.to_excel('data/1.xls')
使用缺失值先后6个未缺失的数据进行建模,结果以下:ip