数据分析

数据清洗:缺失值处理、1删除记录 2数据插补 3不处理

常见插补方法

插值法-拉格朗日插值法

根据数学知识可知,对于平面上已知的n个点(无两点在一条直线上可以找到n-1次多项式

,使次多项式曲线过这n个点。
1)求已知过n个点的n-1次多项式:

将n个点的坐标带入多项式:得到

解出拉格朗日插值多项式:

将缺失的函数值对应的点x带入多项式得到趋势值得近似值L(x)

#拉格朗日插值代码
import pandas as pd #导入数据分析库Pandas
import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import lagrange #导入拉格朗日插值函数inputfile = '../data/catering_sale.xls' #销量数据路径
outputfile = '../tmp/sales.xls' #输出数据路径data = pd.read_excel(inputfile) #读入数据
temp = data[u'销量'][(data[u'销量'] < 400) | (data[u'销量'] > 5000)] #找到不符合要求得值 data[列][行]
for i in range(temp.shape[0]):data.loc[temp.index[i],u'销量'] = np.nan #把不符合要求得值变为空值#自定义列向量插值函数
#s为列向量,n为被插值的位置,k为取前后的数据个数,默认为5
def ployinterp_column(s, n, k=5):y = s.iloc[list(range(n-k, n)) + list(range(n+1, n+1+k))] #取数 就是传入得datay = y[y.notnull()] #剔除空值f = lagrange(y.index, list(y))return f(n) #插值并返回插值结果#逐个元素判断是否需要插值
for i in data.columns:for j in range(len(data)):if (data[i].isnull())[j]: #如果为空即插值。data.loc[j,i] = ployinterp_column(data[i], j)data.to_excel(outputfile) #输出结果,写入文件
print("success")

运行结果:

这个代码是可以运行的


问题

没有SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame

我也不知道时怎么把这个警告消除的,反正就是找啊找,在我不注意的时候能运行了!好像是不能一下多个赋值,要分开赋值。

最后

但是我们细看可以发现插入的值有问题:把插入的值输出可以看到有一个异常值

我们在处理数据时把小于400,大于5000的值都变成空值,然后通过拉格朗日插值法插入值,想要把数据没有那么大的差值,但是给我们插入一个负数,并且很离谱。我检查了一下并没有发现哪里有错误;然后我把用到的数据和拟合出来的拉格朗日函数输出得到:
f=-0.008874 x + 11.53 x - 6657 x + 2.242e+06 x - 4.854e+08 x + 7.005e+10 x - 6.74e+12 x + 4.168e+14 x - 1.504e+16 x + 2.411e+17

并没有发现问题,让后我就想着是不是拟合出来的函数步够精确,我把取点增加,但是都没有好的结果,反而更离谱,这种情况就是过拟合了,就是这个模型可以把你训练的模型拟合的很好,但是测试模型并不好。
举个例子:下面一组数据可以看到用x4函数拟合的并没有太多的点在模型上,x4函数拟合的相对较多一点,但是如果进行测试,14次方的模型可能会预测的很离谱:

最后我把取值点减小发现上下取点4个时都会有一个好的结果,上下去点为3,2,1(直线,不建议取)时也都还能接受。所以我么拟合出来的五个上下点时也并没有错,只是它拟合出来的函数就是在那个点上数值离谱。
看到这里的都是妥妥的铁粉无疑了,底下是我的个人微信找到我的可是有大把源码,学习路线啥的,多的我就不透露,539413949看大家自己的积极性了啊

数据插补—拉格朗日插值法相关推荐

  1. 回归插补法_没有完美的数据插补法,只有最适合的

    数据缺失是数据科学家在处理数据时经常遇到的问题,本文作者基于不同的情境提供了相应的数据插补解决办法.没有完美的数据插补法,但总有一款更适合当下情况. 我在数据清理与探索性分析中遇到的最常见问题之一就是 ...

  2. CVPR 2019 | 全新缺失图像数据插补框架—CollaGAN

    在同一域下的图像和数据是符合一个整体流形分布的,一旦域中的数据缺失,能否利用已有的域中数据去还原丢失的数据呢? Collaborative GAN 提出了一种新的缺失图像数据插补框架,称为协同生成对抗 ...

  3. missforest_missforest最佳丢失数据插补算法

    missforest Missing data often plagues real-world datasets, and hence there is tremendous value in im ...

  4. python 插补数据_python 2020中缺少数据插补技术的快速指南

    python 插补数据 Most machine learning algorithms expect complete and clean noise-free datasets, unfortun ...

  5. 直线插补计算过程_【计鹏视角】风速数据插补对发电量的影响

    测风数据在插补时通常通过相关函数实现,相关函数一般采用线性方程函数,线性函数根据不同通道的风速相关性散点图来得到. 不同高度层的相关性散点图是成"带"状分布,相关系数越大,&quo ...

  6. KNN的数据插补方法总结

    sklearn中的KNN在缺失值填补中的用法 参考链接:K近邻填补缺失值 如果缺失值是离散的,使用K近邻分类器,投票选出K个邻居中最多的类别进行填补:如果为连续变量,则用K近邻回归器,拿K个邻居中该变 ...

  7. 面向单细胞RNA-seq数据插补及聚类方法研究

    许俊林博士生答辩公告 浏览次数:175日期:2021-09-06编辑:研究生秘书 学位论文简介 单细胞RNA测序 (single-cell RNA-sequencing, scRNA-seq) 技术可 ...

  8. 插值法补齐缺失数据_缺失数据处理-插值法

    缺失数据处理-插值法 在数据挖掘中,原始海量的数据中存在着大量不完整.不一致.有异常.偏离点的数据.这些问题数据轻则影响数据挖掘执行效率,重则影响执行结果.因此数据预处理工作必不可少,而其中常见工作的 ...

  9. 数据预处理 第3篇:数据预处理(使用插补法处理缺失值)

    插补法可以在一定程度上减少偏差,常用的插补法是热卡插补.拟合插补和多重插补.拟合插补,要求变量间存在强的相关性:多重插补(MCMC法),是在高缺失率下的首选插补方法,优点是考虑了缺失值的不确定性. 一 ...

最新文章

  1. php无刷新分页插件,jQuery插件jPaginate实现无刷新分页_jquery
  2. 3DSlicer17:Logics
  3. 无水印pdf编辑器_偷偷告诉你如何编辑PDF文件,轻松解决这万恶的千古难题
  4. mysql clean up_svn之clean up操作
  5. python运算符讲解_python运算符讲解
  6. 一个实用的显示Visual Studio Code文件绝对路径的扩展应用
  7. html5内容切换特效,html5+jQuery图片和文字内容同时左右切换特效
  8. c语言 extern_Visual C++ 6.0环境中C语言extern 变量使用过程报错
  9. seo自动工具_爱站SEO工具包详细介绍
  10. php js跨域上传文件,Jquery实现跨域异步上传文件步骤详解
  11. CVPR 2022 论文/代码分类汇总!持续更新中!
  12. python 读取txt中的英文内容 分析词频 可视化显示
  13. jdk中java程序调试_jcmd:JDK14中的调试神器
  14. STM32F1开发指南笔记46----字库原理及汉字库创建
  15. 宏碁台式计算机u盘启动,Acer台式机怎么U盘启动
  16. EChart饼图文字大小调整
  17. 补鞋匠(cobbler)的修仙之旅
  18. 西南大学网络与继续教育学院课程考试试题卷
  19. 一种高效的Polar码冻结比特编译码方法
  20. DOS命令篇(find 和 findstr)

热门文章

  1. Collectors.groupingBy
  2. 一款优秀数据库中间件的不完全解析
  3. ios 9 10 11 air mirror 交互协议
  4. python学画画_python学画画(下)
  5. 洛谷 P2495 [SDOI2011]消耗战 题解
  6. 3D 沙盒游戏之地面网格设计
  7. 激光雷达运动物体分割论文汇总(2021-2022)
  8. Vue ElementUI 表单设计器 代码生成器
  9. djangoday02
  10. Mycat(1):Mycat简介