パーセプトロンが各反復で出力を予測する方法は、次の方程式に従います。
yj= f[ wTx ]=f[ w⃗ ⋅ X⃗ ] = f[ w0+ w1バツ1+ w2バツ2+ 。。。+ wんバツん]
w⃗ w01
n × 11 × nn × 1
これは、トレーニングセットにある各入力に対して行われることに注意してください。この後、重みベクトルを更新して、予測出力と実際の出力の間の誤差を修正します。
決定境界に関しては、ここで私がここで見つけたscikit学習コードの修正があります:
import numpy as np
from sklearn.linear_model import Perceptron
import matplotlib.pyplot as plt
X = np.array([[2,1],[3,4],[4,2],[3,1]])
Y = np.array([0,0,1,1])
h = .02 # step size in the mesh
# we create an instance of SVM and fit our data. We do not scale our
# data since we want to plot the support vectors
clf = Perceptron(n_iter=100).fit(X, Y)
# create a mesh to plot in
x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1
y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1
xx, yy = np.meshgrid(np.arange(x_min, x_max, h),
np.arange(y_min, y_max, h))
# Plot the decision boundary. For that, we will assign a color to each
# point in the mesh [x_min, m_max]x[y_min, y_max].
fig, ax = plt.subplots()
Z = clf.predict(np.c_[xx.ravel(), yy.ravel()])
# Put the result into a color plot
Z = Z.reshape(xx.shape)
ax.contourf(xx, yy, Z, cmap=plt.cm.Paired)
ax.axis('off')
# Plot also the training points
ax.scatter(X[:, 0], X[:, 1], c=Y, cmap=plt.cm.Paired)
ax.set_title('Perceptron')
次のプロットが生成されます。
基本的に、アイデアは、すべてのポイントをカバーするメッシュ内の各ポイントの値を予測し、を使用して適切な色で各予測をプロットすることcontourf
です。