《统计学习方法》2.3感知机学习算法。
# Perceptino感知机
import numpy as np
# 训练数据
trainingSet = [np.matrix([3, 3]), np.matrix([4, 3]), np.matrix([1, 1])]
ySet = [1, 1, -1]
# 参数初始化
eta = 0.1 # 学习率
w = np.matrix([1, 5])
b = 0
count = 0
while count < len(trainingSet):
if ySet[count] * (w * np.transpose(trainingSet[count]) + b) > 0:
count = count + 1
else:
w = w + eta * ySet[count] * trainingSet[count]
b = b + eta * ySet[count]
count = 0
print(w)
print(b)
以下为两个学习率不同的结果:
学习率为1:
学习率为0.1: