码迷,mamicode.com
首页 > 其他好文 > 详细

数据工具的使用

时间:2017-11-24 22:51:17      阅读:223      评论:0      收藏:0      [点我收藏+]

标签:cmap   war   分享图片   ima   imp   图片   src   sts   val   

1.线型回归

import numpy as np
import matplotlib.pyplot as plt

def f(x):
    return np.sin(x)+0.5*x

x = np.linspace(-2*np.pi,2*np.pi,50)
‘‘‘
# 画图
plt.plot(x,f(x),‘b‘)
plt.show()
‘‘‘

# 回归
reg = np.polyfit(x,f(x),deg=1)    # 拟合命令 deg 多项式的次数
ry  = np.polyval(reg,x)           # 根据拟合方程,返回拟合值

# 画图
plt.plot(x,f(x),b,label="f(x)")
plt.plot(x,ry,r.,label="regression")
plt.legend(loc=0)
plt.show()

技术分享图片

1.1 当deg改为5或者7时候

技术分享图片

技术分享图片

# 回归结果评价
print(np.allclose(f(x),ry))     # 看两个结果是否相同
print(np.sum((f(x)-ry)**2)/len(x))  # 平均误差

2.基函数

# 基函数求解
matrix = np.zeros((3+1,len(x)))   # 先来一个矩阵,3是多项式的次数,1是常数项。列数是x的次数
matrix[3,:] = x**3
matrix[2,:] = x**2
matrix[1,:] = x
matrix[0,:] = 1

reg2  = np.linalg.lstsq(matrix.T,f(x))[0]
ry = np.dot(reg2,matrix)
‘‘‘
# 画图
plt.plot(x,f(x),‘b‘,label="f(x)")
plt.plot(x,ry,‘r.‘,label="regression")
plt.legend(loc=0)
plt.show()
‘‘‘

技术分享图片

3. 3D绘图

# 3维绘图和拟合
def fm(x,y):                                          # z 值
    return np.sin(x)+0.25*x+np.sqrt(y)+0.5*y**2
x=np.linspace(0,10,20)
y=np.linspace(0,10,20)
X,Y= np.meshgrid(x,y)                                  # 网格化
Z  = fm(X,Y)
x = X.flatten()                                        # 切换值
y = Y.flatten()

# 绘图

fig=plt.figure(figsize=(9,6))
ax = fig.gca(projection=3d)
surf = ax.plot_surface(X,Y,Z,rstride=1,cstride=1,cmap=mpl.cm.coolwarm,linewidth=0.5,antialiased=True)
ax.set_xlabel(x)
ax.set_ylabel(y)
ax.set_zlabel(z)
fig.colorbar(surf,shrink=0.5,aspect=5)
plt.show()

技术分享图片

数据工具的使用

标签:cmap   war   分享图片   ima   imp   图片   src   sts   val   

原文地址:http://www.cnblogs.com/hanbb/p/7892310.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!