Python 绘图决策边界matplotlib

Python 绘图决策边界matplotlib,python,vector,matplotlib,machine-learning,perceptron,Python,Vector,Matplotlib,Machine Learning,Perceptron,我对matplotlib非常陌生,我正在做一些简单的项目来熟悉它。我想知道如何使用matplotlib绘制决策边界,它是[w1,w2]形式的权重向量,基本上将两个类分开,比如C1和C2 它是否像绘制一条从(0,0)到点(w1,w2)的直线一样简单(因为W是权重“向量”),如果是,如果需要,我如何在两个方向上扩展它 现在我所做的就是: import matplotlib.pyplot as plt plt.plot([0,w1],[0,w2]) plt.show() 提前感谢。决策

我对matplotlib非常陌生,我正在做一些简单的项目来熟悉它。我想知道如何使用matplotlib绘制决策边界,它是[w1,w2]形式的权重向量,基本上将两个类分开,比如C1和C2

它是否像绘制一条从(0,0)到点(w1,w2)的直线一样简单(因为W是权重“向量”),如果是,如果需要,我如何在两个方向上扩展它

现在我所做的就是:

 import matplotlib.pyplot as plt
   plt.plot([0,w1],[0,w2])
   plt.show()

提前感谢。

决策边界通常比一行复杂得多,因此(在二维情况下)最好使用通用情况下的代码,这也适用于线性分类器。最简单的方法是绘制决策函数的等高线图

# X - some data in 2dimensional np.array

x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1
y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1
xx, yy = np.meshgrid(np.arange(x_min, x_max, h),
                     np.arange(y_min, y_max, h))

# here "model" is your model's prediction (classification) function
Z = model(np.c_[xx.ravel(), yy.ravel()]) 

# Put the result into a color plot
Z = Z.reshape(xx.shape)
plt.contourf(xx, yy, Z, cmap=pl.cm.Paired)
plt.axis('off')

# Plot also the training points
plt.scatter(X[:, 0], X[:, 1], c=Y, cmap=pl.cm.Paired)
sklearn
文档中的一些示例


决策边界通常比一条直线复杂得多,因此(在二维情况下)最好使用通用情况下的代码,这也适用于线性分类器。最简单的方法是绘制决策函数的等高线图

# X - some data in 2dimensional np.array

x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1
y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1
xx, yy = np.meshgrid(np.arange(x_min, x_max, h),
                     np.arange(y_min, y_max, h))

# here "model" is your model's prediction (classification) function
Z = model(np.c_[xx.ravel(), yy.ravel()]) 

# Put the result into a color plot
Z = Z.reshape(xx.shape)
plt.contourf(xx, yy, Z, cmap=pl.cm.Paired)
plt.axis('off')

# Plot also the training points
plt.scatter(X[:, 0], X[:, 1], c=Y, cmap=pl.cm.Paired)
sklearn
文档中的一些示例


那么这里Z将是最终的权重向量?不,
Z
是分类矩阵,如果你的神经网络只包含两个权重(并且没有偏差)
Z(x,y)=sgn(w1*x+w2*y)
那么在这种情况下,在参数传递到我的模型的行上,我实际上会传递我正在分析的数据?或者我应该已经训练了我的分类器,然后传递这些数据吗?我对你的问题一无所知。提供的答案显示了如何绘制当前模型决策边界,您可以在训练期间或训练完成后绘制随机(刚刚初始化)模型的决策边界(它可视化了当前边界),因此,如果我的模型只有2个类,那么z将是一个列表,假设我的模型为每个输入返回+1或-1值+1和-1值,因为我对感知器的输出是+1或-1,这取决于权重向量和特征向量的点积是正值还是负值,所以这里Z将是结果权重向量?不,
Z
是分类矩阵,如果你的神经网络只包含两个权重(且没有偏差)
Z(x,y)=sgn(w1*x+w2*y)
因此,在本例中,在参数传递到模型的行上,我实际上会传递我正在分析的数据?或者我应该已经训练了我的分类器,然后传递这些数据吗?我对你的问题一无所知。提供的答案显示了如何绘制当前模型决策边界,您可以在训练期间或训练完成后绘制随机(刚刚初始化)模型的决策边界(它可视化了当前边界),因此,如果我的模型只有2个类,那么z将是一个列表,假设我的模型为每个输入返回+1或-1值+1和-1值,因为感知器的输出是+1或-1,这取决于权重向量和特征向量的点积是正值还是负值