2

我正在尝试绘制感知器算法的决策边界,并且对一些事情感到非常困惑。我的输入实例采用 [(x1,x2),target_Value] 的形式,基本上是一个二维输入实例和一个 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) 所表示的? 在此处输入图像描述

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

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

4

1 回答 1

0

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

于 2013-09-28T18:06:41.107 回答