如何计算感知器决策边界

时间:2013-09-28 15:39:08

标签: python matplotlib machine-learning 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)指示的位置?

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

1 个答案:

答案 0 :(得分:3)

由于您的决策函数只是sgn(w1*x+w2*y+w3),因此决策边界方程是规范形式的w1*x + w2*y + w3 = 0行。

|w3|/||w||是与原点的距离,w3本身没有良好的几何解释(只要w不是单位长度)。

为了使用这样的等式绘制线条,您只需在(0,-w3/w2)(-w3/w1,0)中画一条线(假设w1w2都非零)< / p>