0%

统计学习方法笔记

感知机算法(P40)

算法的收敛性由Novikoff定理证明(P42)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 元素乘法:np.multiply(a,b)
# 矩阵乘法:np.dot(a,b) 或 np.matmul(a,b) 或 a.dot(b)
# 唯独注意:*,在 np.array 中重载为元素乘法,在 np.matrix 中重载为矩阵乘法!

# 感知机(原始形式)
import numpy as np

X = [np.matrix([3,3,1]).T,
np.matrix([4,3,1]).T,
np.matrix([1,1,1]).T]
Y = [1,1,-1]
w = np.zeros(2)
w = np.r_[w,0].reshape((3,1))
l_r = 1

def sign_result(ww,xx,yy):
return np.sum(w.T*x)*yy

while True:
flag = True
for x,y in zip(X,Y):
result = sign_result(w,x,y)
if result<=0:
w = w + l_r * y * x
flag = False
continue
if flag:
break
print(w)

朴素贝叶斯法

先验概率:结果事件发生的概率
通过学习先验概率和条件概率分布,预测后验概率。