标签: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