1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 散点图拟合曲线

散点图拟合曲线

时间:2019-12-28 21:17:00

相关推荐

散点图拟合曲线

散点图拟合曲线

1 导入库2 构造散点2 利用polyfit拟合图形3 拟合评估(R方)4 输出拟合方程

1 导入库

import numpy as npimport matplotlib.pyplot as pltimport seaborn as snssns.set()pd.set_option('float_format', lambda x: '%.2f' % x)plt.style.use('seaborn')%matplotlib inlineplt.rcParams['font.sans-serif'] = ['Simhei']plt.rcParams['axes.unicode_minus'] = False

2 构造散点

np.random.seed(0)X = np.linspace(-1,1,50) # 也可以利用np.arange构建y = 3 * np.sin(x * 2) + np.random.rand(len(x))plt.scatter(x, y)plt.show()

2 利用polyfit拟合图形

numpy.polyfit(x, y, deg)

x:拟合点的横坐标y:拟合点的纵坐标deg:自由度

# 利用X,y拟合一个三元函数parameter = np.polyfit(x, y, 3)parameter

此时输出的是拟合函数的自由度参数。

array([-3.30760789, -0.09234456, 5.80750986, 0.57000303])

# 方法一:手动拼接拟合函数y2 = parameter[0] * x ** 3 + parameter[1] * x ** 2 + parameter[2] * x + parameter[3]plt.scatter(x, y)plt.plot(x, y2, color='r')plt.show()

# 方法二:利用poly1d函数自动拟合函数p = np.poly1d(parameter)plt.scatter(x, y)plt.plot(x, p(x), color='r')plt.show()

两种方法都能得到下图结果

3 拟合评估(R方)

判断拟合曲线拟合的程度,引入评估指标R方。感兴趣的可以了解一下关于最小二乘中相关系数与R方的关系推导

# 利用np.corrcoef()函数得到相关矩阵np.corrcoef(y, y2)

输出得到一个相关矩阵

array([[1. , 0.99333342], [0.99333342, 1. ]])

correlation = np.corrcoef(y, y2)[0,1] #相关系数correlation**2

输出R方

0.966508101562565

4 输出拟合方程

# 方法一:利用函数手动输入a=''i=1while i<=len(parameter):b=round(parameter[i-1],2)c=bif b>0:b='+'+str(b)else:b=str(b)if i==len(parameter):a=a+belse:a=a+b+'x^'+str(len(parameter)-i)i=i+1if a.find('+',1):a.lstrip('+')print(a)

# 方法二:利用poly1d()函数封装p = np.poly1d(parameter,variable='x')print(p)

- END -

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。