首页 > 编程知识 正文

插值法补齐缺失数据,excel补全缺失数据

时间:2023-05-04 20:14:31 阅读:114612 作者:3715

1 .前言在数据挖掘中,原始数据中存在大量不完整、不完整的数据。 这些问题数据轻则影响数据挖掘的执行效率,重则影响执行结果。 因此,数据的预处理是必不可少的。 其中经常进行的工作是数据集的缺失值处理。

数据缺失值处理可以分为两类。 一个是删除缺少的数据,另一个是进行数据插值。 前者比较简单粗暴,但这种方法的最大局限性是进行数据的完善以换取历史数据的减少,导致资源的大量浪费。 特别是在数据集本身较少的情况下,记录的删除可能直接影响分析结果的客观性和准确性

本文介绍数据的常用插值方法。 重点介绍和实现拉格朗日插值法和滑动平均窗法。

2.2.1介绍常用的插值方法。

这里只介绍插值法和窗口滑动平均。

2.2滑动平均窗口法在一个列表a中的第I个位置数据为缺失数据的情况下,将前后的窗个数据的平均值作为插值数据。 例如:

a=[ 3,4,5,6,None,4,5,2,5 ],窗口=3

None位置的数据为(4 5 6 4 5 2)/6=2.67

2.3拉格朗日插值法从数学概念上知道,对于平面上已知的n个点(在没有两点的直线上),可以通过这n个点找到n-1次多项式。

因此,求出多项式函数l(x )后,将与缺损值对应的点x带入插值多项式,得到缺损值的近似值l ) x )。 多项式函数L(x )的求出方法如下。

3.3.1代码# coding:utf-8#拉格朗日插值import pandas as pd #部署数据分析库pandasfromscipy.interpolateimportlagrange #部署图表原始数据data=PD.dataframe(['2015/3/1 ',59],['2015/2/28 ',2618.2],['2015/2/27 ',2608.4],) ['2015/2/22 ',3744.1],['2015/2/21 ',],[ 3295.5],['2015/2/16 ',2332.1],['2015/2/15 ['2015/2/10 ',2742.8],['2015/2/9 ',2173.5],['2015/2/8 ',3161.8],['2015/2/7 ',3023.8] 将销售额超过5000且低于400的异常值置换为Nonedata[u '销售额' ][(data[u '销售额' ] 400 )|(data [ u '销售额' ] 5000 ) ]=None#处理的数据series数据格式tmp_data_1=data[u '销售额' ].copy(tmp_data_2=data[u '销售额' ].copy ) ) depy 3360''3360paramseries:列向量:param pos:内插的位置:param window:前后数据数: return : ' ' y=series [ lies ] pos 1 window ) )取数y=y[y.notnull去除空值returnlagrange ) y.index,进行list(y ) (pos ) #插值,插值结果def SMA _ mom 返回pos,其中内插窗口=5) 3360''3360paramseries:列向量:param pos:的位置:param window:包括前后数据的数量: return : pos () list (范围(pos,pos窗口) )获取数y=y[y.notnull返回reduce (lambda,b: a b,y(/len ) y tmp _ data _1[ j ]=ploy interp _ column (tmp _ data _ 1,j ) print j,data.loc[j,u '日期' ],tmp _ data _1TTT

8 2015/2/21 4275.25476248

14 2015/2/14 3680.66999227

0 2015/3/1 2942.74

8 2015/2/21 3236.97

14 2015/2/14 2883.43

3.3在分析比较下,滑动窗口的方法输出还是合理的。 但是,拉格朗日插值在0位置的数据处理较差,表明插值为-291.4。 拟合点的数据格式为(x,y ),具体数据为(1,2618.2 ),2,2608.4 ),3,2651.9 ),4,3442.1 ),5,3393.1 )。 打印拉格朗日多项式:

L(x )=-94.97 x ^ 41065 x ^3- 3991 x ^ 25930 x ^1- 291.4

带x=0得到L(X )的话,得到-291.4。 其中x=0是L(x )的截距。 直觉上我觉得不太合理,估计拉格朗日插值法对边缘数据很敏感。 也就是说,如果插值需要左右两侧的数据提供信息,而左侧的数据信息缺失,则得到的结果不太合理。 请日后寻求证明。

4 .参考: 《python数据分析与挖掘实战》

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。