2

パーセプトロン アルゴリズムの決定境界をプロットしようとしていますが、いくつかのことについて本当に混乱しています。私の入力インスタンスは [(x1,x2),target_Value] の形式で、基本的には 2 次元の入力インスタンスと 2 クラスの target_value [1 または 0] です。

[w1,w2] 追加のバイアス パラメータ w0 を組み込む必要があるため、重みベクトルは 3x1 ベクトルになりますか? それは1x3ベクトルですか?ベクトルには1行とn列しかないので、1x3にする必要があると思います。

[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

まず、入力ベクトルにバイアスを追加しないでください。すべての入力ベクトルに対してバイアスを減算または加算するだけです。プロットの場合、2 つの重みポイントを通過する線形関数をプロットしてみることをお勧めします。

于 2013-09-28T18:06:41.107 に答える