机器学习里面通常需要寻找代价函数的最小值,所有如果可以把图形绘制出来,对于初学者分析起来就会简明很多。
下面取一个例子,绘制z=x²+y²,(x,y的取值范围是 [-5,5] )
实现的代码:import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from mpl_toolkits.mplot3d import Axes3D#创建一个Axes3d对象fig=plt.figure()
ax=Axes3D(fig)#x,y的取值返回是从-5到+5,每隔0.25取一个点x=np.arange(-5,5,0.25)
y=np.arange(-5,5,0.25)#[X,Y] = meshgrid(x,y) 将向量x和y定义的区域转换成矩阵X和Y,#这两个矩阵可以用来表示mesh和surf的三维空间点以及两个变量的赋值。#其中矩阵X的行向量是向量x的简单复制,而矩阵Y的列向量是向量y的简单复制。x,y=np.meshgrid(x,y)#r=np.sqrt(x**2+y**2)#z=np.sin(r)z=x**2+y**2#plot_surface 是绘制一个平面 ax.scatter 是绘制点surf=ax.plot_surface(x,y,z)
plt.show()
绘制的结果:
2017-05-28 18-37-21屏幕截图.png
补充
1. 对于x,y=np.meshgrid(x,y) 函数作用的分析:
例如, 要在"3<=x<=5,6<=y<=9,