python--数据处理与探索

根据收集到的数据,接下来要考虑的问题是数据是否满足我们模型构建的要求,数据质量是否过关?数据间的关联性如何?趋势和规律怎么样的?

通过数据的处理和探索,用统计手段通过制图等描绘数据,对数据进行初步的探索。

数据质量分析:

1、缺失值;2、异常值;3、不一致的值;4、重复数据且含有非法字符。

1、缺失值的处理:

缺失值产生原因:有些数据无法获取,或者获取的代价太大;信息收集时遗留;数据本身不存在;

缺失值的影响:丢失有用的消息,增加模型的不确定性,对于规律更难把握,模型建立过程及输出不可靠;

缺失值的解决:

删除该记录、插补、不处理;

用函数:dropna去除数据结构中为空的数据

from pandas import read_csv

df = read_csv(
    'C://Users//leon//Desktop//data.csv'
)

isNA = df.isnull() #找出空值的位置
df[isNA[['key', 'value']].any(axis=1)] #空值所在行
newDF = df.dropna()     #删除该行

 插补:

用均值、中位数、众数进行插补

临近值插补、回归方法、插值法

插值法:拉格朗日插值

概念

一般地,若已知
  
在互不相同 n+1 个点
  
处的函数值
  
( 即该函数过
  
这n+1个点),则可以考虑构造一个过这n+1 个点的、次数不超过n的多项式
  
,使其满足:
要估计任一点ξ,ξ≠xi,i=0,1,2,...,n,则可以用Pn(ξ)的值作为准确值f(ξ)的近似值,此方法叫做“插值法”。
称式(*)为插值条件(准则),含xi(i=0,1,...,n)的最小区间[a,b],其中a=min{x0,x1,...,xn},b=max{x0,x1,...,xn}。

定理

满足插值条件的、次数不超过n的多项式是存在而且是唯一的。
在平面上有
  
共n个点,现作一条函数
  
使其图像经过这n个点。
作法:设集合
  
是关于点
  
的角标的集合
  
,作n个多项式
  
。对于任意
 
,都有
 
使得
 
是n-1次多项式,且满足
  
并且
  
最后可得
  
形如上式的插值多项式
  
称为拉格朗日(Lagrange)插值多项式。
例如:当n=4时,上面的公式可简化为:
这是一个过4个点的唯一的三次多项式。[1] 

 代码过程:

def h(x,y,a):
    ans=0.0
    for i in range(len(y)):
        t=y[i]
        for j in range(len(y)):
            if i !=j:
                t*=(a-x[j])/(x[i]-x[j])
        ans +=t
    return ans
x=[1,0]
y=[0,2]
print(h(x,y,2))
  • x,y分别是对应点的x值和y值。具体详解下解释。
  • a为想要取得的函数的值。

在python中直接调用lagrange(x,y)

例如:(1,2) (3,5) (5,9)这三个点,作为函数输入应该这么写:

x=[1,3,5]

y =[2, 5, 9]

a=lagrange(x,y)

代码实现:

from scipy.interpolate import lagrange
x=[1,2,3,4,7]
y=[5,7,10,3,9]
a=lagrange(x,y)
print(a)
print(a(1),a(2),a(3))
print(a[0],a[2],a[3])

结果:

             4             3              2
0.5472 x - 7.306 x + 30.65 x - 47.03 x + 28.13

print(a(1),a(2),a(3))
5.0 7.0 10.0

print(a[0],a[2],a[3])
28.1333333333 30.6527777778 -7.30555555556

原文地址:https://www.cnblogs.com/leon507/p/7675418.html