感知器的决策边界太小

时间:2013-09-28 17:54:12

标签: python matplotlib perceptron

我试图绘制感知器算法的决策边界,并且我对一些事情感到困惑。我的输入实例的格式为[(x1,x2),target_Value],基本上是2-d输入实例和2类target_value [1或0]。

我的体重矢量因此形式为:[w1,w2]现在我必须加入一个额外的偏差参数w0,因此我的体重矢量变为3x1矢量?它是1x3矢量?我认为它应该是1x3,因为矢量只有1行和n列。

现在假设我将[w0,w1,w2]实例化为随机值,我将如何绘制决策边界?这意味着w0在这里意味着什么? w0 / norm(w)是决策区域与原点的距离吗?如果是这样,我如何使用matplotlib.pyplot或其matlab等效捕获这个并在python中绘制它?我真的很感激这个问题的一点帮助。

from pylab import norm
import matplotlib.pyplot as plt

n = norm(weight_vector) #this is of the form [w0,w1,w2], w0 is bias parameter
ww = weight_vector/n   #unit vector in the direction of weight_vector
ww1 = [ww[1],-ww[0]]
ww2 = [-ww[1],ww[0]]
plot([ww1[0], ww2[0]],[ww1[1], ww2[1]],'--k')

这里我想结合w0参数来指示权重向量与原点的位移距离,因为w0 / norm(w)表示的是什么? enter image description here

当我绘制下面评论中提到的向量时,我得到一个非常小的长度的向量,我怎样才能在两个方向上扩展这个决策边界?

图中位置[0,0]附近的小虚线是我的决策区域,如何在两个方向上延长?如果我尝试将每个组件相乘,图形比例会发生变化,我使用matplotlib.pyplot.plot()函数来实现这一点。

1 个答案:

答案 0 :(得分:0)

首先,您不应将偏差添加到输入向量。您只需要将偏差减去或添加到所有输入向量。 对于绘图,您可能想尝试绘制通过两个权重点的线性函数。