วิธีที่ perceptron ทำนายเอาท์พุทในการวนซ้ำแต่ละครั้งโดยทำตามสมการ:
YJ= f[ wTx ]=f[ w⃗ ⋅ x⃗ ] = f[ w0+ w1x1+ w2x2+ . . . + wnxn]
ในขณะที่คุณกล่าวว่าน้ำหนักของคุณมีคำที่เป็นอคติW 0 ดังนั้นคุณต้องรวม1ในอินพุตเพื่อรักษาขนาดในผลิตภัณฑ์ดอทW⃗ W01
คุณมักเริ่มด้วยเวกเตอร์คอลัมน์สำหรับตุ้มน้ำหนักนั่นคือเวกเตอร์ตามคำนิยามผลิตภัณฑ์ดอทต้องให้คุณแปลงเวกเตอร์นี้เพื่อให้ได้เวกเตอร์น้ำหนัก1 × nและเพื่อเติมเต็มผลิตภัณฑ์ดอทนั้นคุณต้องมีเวกเตอร์อินพุตn × 1 นั่นคือเหตุผลที่เน้นการเปลี่ยนแปลงระหว่างสัญกรณ์เมทริกซ์และสัญลักษณ์เวกเตอร์ในสมการข้างต้นเพื่อให้คุณสามารถดูว่าสัญลักษณ์แสดงมิติที่ถูกต้องให้คุณได้อย่างไรn × 11 × nn × 1
โปรดจำไว้ว่าสิ่งนี้จะทำสำหรับอินพุตที่คุณมีในชุดฝึกอบรม หลังจากนี้ให้อัปเดตเวกเตอร์น้ำหนักเพื่อแก้ไขข้อผิดพลาดระหว่างเอาต์พุตที่คาดการณ์และเอาต์พุตจริง
สำหรับขอบเขตการตัดสินใจนี่คือการปรับเปลี่ยน scikit Learn code ที่ฉันพบที่นี่ :
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
โดยทั่วไปความคิดที่จะคาดการณ์ค่าสำหรับจุดในตาข่ายที่ครอบคลุมทุกจุดในแต่ละครั้งและพล็อตแต่ละทำนายด้วยการใช้สีที่เหมาะสม