【发布时间】:2013-10-04 22:35:00
【问题描述】:
我正在尝试绘制感知器算法的决策边界,但我对一些事情感到非常困惑。我的输入实例采用 [(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) 所表示的?
当我绘制下面 cmets 中提到的向量时,我得到一个长度非常小的向量,我怎么可能在两个方向上扩展这个决策边界?
图中位置[0,0]附近的小虚线是我的决策区域,我怎样才能让它在两个方向上都更长?如果我尝试将其每个组件相乘,则图形比例会发生变化,我正在使用 matplotlib.pyplot.plot() 函数来实现这一点。
【问题讨论】:
-
你告诉
matplotlib画一条从ww1到ww2的线,这正是它正在做的事情。如果您希望线更长,请沿同一条线添加更多点。
标签: python matplotlib perceptron