绘制决策边界 matplotlib
Posted
技术标签:
【中文标题】绘制决策边界 matplotlib【英文标题】:plot decision boundary matplotlib 【发布时间】:2013-10-03 23:55:15 【问题描述】:我对 matplotlib 很陌生,正在做一些简单的项目来熟悉它。我想知道如何绘制决策边界,它是 [w1,w2] 形式的权重向量,它基本上将两个类分开,比如说 C1 和 C2,使用 matplotlib。
是否像绘制从 (0,0) 到点 (w1,w2) 的线一样简单(因为 W 是权重“向量”)如果是这样,如果需要,我如何在两个方向上扩展它去?
现在我正在做的就是:
import matplotlib.pyplot as plt
plt.plot([0,w1],[0,w2])
plt.show()
提前致谢。
【问题讨论】:
***.com/questions/22294241/… 有一些很好的答案 【参考方案1】:决策边界通常比一条线复杂得多,因此(在二维情况下)最好使用通用情况的代码,这也适用于线性分类器。最简单的想法是绘制决策函数的等高线图
# 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,具体取决于权重向量和特征向量的点积是正值还是负值以上是关于绘制决策边界 matplotlib的主要内容,如果未能解决你的问题,请参考以下文章