重点:
- 感知机是一种二类分类的线性分类模型,属于判别模型。感知机对应于特征空间中的分离超平面 w*x+b=0
- 损失函数:误分类点到分离超平面的总距离。
- 学习算法:随机梯度下降法。有原始和对偶两种形式。
- 当训练数据线性可分时,感知机学习算法存在无穷多解,其解由不同初值和迭代顺序而可能不同。
实现代码:
import numpy as np
import matplotlib.pyplot as plt
p_x = np.array([[3, 3], [4, 3], [1, 1]])
y = np.array([1, 1, -1])
plt.figure()
for i in range(len(p_x)):
if y[i] == 1:
plt.plot(p_x[i][0], p_x[i][1], 'ro')
else:
plt.plot(p_x[i][0], p_x[i][1], 'bo')
# 初始权重w0,偏置b0,学习率delta=1
w = np.array([1, 0])
b = 0
delta = 1
for i in range(1000):
choi