Cách thức perceptionron dự đoán đầu ra trong mỗi lần lặp là theo phương trình:
yj=f[wTx]=f[w⃗ ⋅x⃗ ]=f[w0+w1x1+w2x2+...+wnxn]
Như bạn đã nói, trọng lượng của bạn chứa một thuật ngữ thiên vị . Do đó, bạn cần bao gồm trong đầu vào để duy trì kích thước trong sản phẩm chấm.w⃗ w01
Bạn thường bắt đầu với một vectơ cột cho các trọng số, nghĩa là một vectơ . Theo định nghĩa, sản phẩm chấm yêu cầu bạn hoán chuyển vectơ này để có vectơ trọng lượng và để bổ sung cho sản phẩm chấm đó, bạn cần một vectơ đầu vào . Đó là lý do tại sao một sự nhấn mạnh sự thay đổi giữa ký hiệu ma trận và ký hiệu vectơ trong phương trình trên, vì vậy bạn có thể thấy cách ký hiệu gợi ý cho bạn các kích thước phù hợp.n×11×nn×1
Hãy nhớ rằng, điều này được thực hiện cho mỗi đầu vào bạn có trong tập huấn luyện. Sau đó, cập nhật vectơ trọng số để sửa lỗi giữa đầu ra dự đoán và đầu ra thực.
Đối với ranh giới quyết định, đây là một sửa đổi của mã tìm hiểu scikit tôi tìm thấy ở đây :
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')
tạo ra cốt truyện sau:
Về cơ bản, ý tưởng là dự đoán một giá trị cho mỗi điểm trong một lưới bao gồm mọi điểm và vẽ từng dự đoán với một màu thích hợp bằng cách sử dụng contourf
.