数据分析

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

数据

链接:https://pan.baidu.com/s/1jiIOoselsqVQR4P_EaS3pA
提取码:t970

常见插补方法

点击链接前往

插值法-拉格朗日插值法

根据数学知识可知,对于平面上已知的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/data.xlsx' #销量数据路径
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(直线,不建议取)时也都还能接受。所以我么拟合出来的五个上下点时也并没有错,只是它拟合出来的函数就是在那个点上数值离谱。

感谢关注与支持

拉格朗日插值法--python相关推荐

  1. 解读 拉格朗日插值法python,保你学明白

    文章目录 概述拉格朗日插值法 什么是插值法 拉格朗日插值法的原理 拉格朗日公式 拉格朗日插值法的代码实现 Python 进行拉格朗日插值的主要知识点 Polyfit 函数 Polyval 函数 Lin ...

  2. 拉格朗日插值法+python实现

    拉格朗日插值法 1.数学原理 1.1 线性插值 1.2二次插值 1.3 n次拉格朗日插值多项式 2.Python实现 本文将介绍拉格朗日插值法得数学原理,并用Python实现. 1.数学原理 首先我们 ...

  3. 缺失值处理 - 拉格朗日插值法 - Python代码

    目录 缺失值处理 拉格朗日差值法的理论基础 拉格朗日插值法代码实现 其他数据预处理方法 缺失值处理 处理缺失值常用的办法可分为三类:删除记录.数据插补.不处理. 其中常见的数据插补法有: 如果通过删除 ...

  4. 拉格朗日插值法python实现

    目录 1.原理 2.涉及的Python库 3.例子 1.原理 对某个多项式函数有已知的k+1个点,假设任意两个不同的都互不相同,那么应用拉格朗日插值公式所得到的拉格朗日插值多项式为: L(x)=∑j= ...

  5. 拉格朗日插值法——python代码实现

    一.拉格朗日的基本思想: 二.线性插值 三.多个点 四.代码实现 def lagrange(xx,y):l=len(y)l_n = 0for k in range(l):xxx=xx.copy()x_ ...

  6. 拉格朗日插值法《python数据分析与挖掘实践》

    数据清洗 数据清洗主要是删除原始数据集中地无关数据.重复数据.平滑噪声数据,筛选掉与挖掘主题无关的数据,处理缺失值.异常值等. 缺失值处理的方法可分为3类:删除记录.数据插补和不处理. 删除含有缺失值 ...

  7. 拉格朗日插值法 【python】

    一.插值 设函数y=f(x)在区间[a,b]上连续,给定n+1个点 a≤x0<x1<....<xn≤b 已知,f(xk)=yk(k=0,1....n),在函数类P中寻找一个函数Φ(x ...

  8. python拉格朗日插值法_Python实现的拉格朗日插值法示例

    本文实例讲述了Python实现的拉格朗日插值法.分享给大家供大家参考,具体如下: 拉格朗日插值简单介绍 拉格朗日插值法是以法国十八世纪数学家约瑟夫·拉格朗日命名的一种多项式插值方法. 许多实际问题中都 ...

  9. 拉格朗日插值python代码_Python实现的拉格朗日插值法示例

    本文实例讲述了Python实现的拉格朗日插值法.分享给大家供大家参考,具体如下: 拉格朗日插值简单介绍 拉格朗日插值法是以法国十八世纪数学家约瑟夫·拉格朗日命名的一种多项式插值方法. 许多实际问题中都 ...

最新文章

  1. RzPageControl 关闭按钮
  2. 前端笔试题面试题记录(上)
  3. 队列优化dijsktra(SPFA)的玄学优化
  4. 过年7天乐,学nodejs 也快乐
  5. AppStore IPv6-only审核被拒原因分析及解决方案-a
  6. 2020-07-09 CVPR2020 VL论文讨论(4) 笔记
  7. ABAP package not extensible的原因
  8. mysql5.7.22打不开_windows下mysql-5.7.22-winx64突然启动不了,报错Could not open log file
  9. 【python】os.getcwd和getcwdu
  10. [5] ADB 与应用交互
  11. android studio提示要重写的方法,Android Studio 重写方法时参数命名异常
  12. ngnix 执行php 慢,【nginx】PHP有什么办法可以排查那些脚本或方法执行慢,需要优化?...
  13. python爬虫教程蝴蝶汤_Python 爬虫十六式 - 第五式:BeautifulSoup-美味的汤
  14. Android开发环境搭建之Eclipse/AndroidStudio
  15. 如何部署Windows Server 2016 中的Storage Spaces Direct超聚合解决方案
  16. Java IO之打印流,缓冲流,Scanner的用法
  17. Xv6 traps and system calls
  18. 2003服务器系统安装不上网卡,win2003无线网卡驱动无法安装怎么办
  19. 使用python PIL 模块合成图片
  20. 鸿蒙os系统使用技巧,鸿蒙OS 应用权限管理

热门文章

  1. 2022年TIOBE指数排行,Python位居榜首
  2. webservice:(2)体验查询号码归属地demo
  3. 论文写作总结(一)初级版
  4. 大数据舆情分析软件实时监控,TOOM大数据处理与舆情监控简介
  5. Whale 帷幄:用户旅程的「情绪算法」
  6. 身高和java 车架,自行车车架与身高尺寸(图文)
  7. [BZOJ]1003 物流运输题解
  8. 封神台—高校靶场ctf—第一期Web web_008
  9. 编辑文字,图片,网页
  10. Python爬虫入门,详细讲解爬虫过程