感知机算法实现(原始形式)

2019-04-18 09:01:46来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

参考:https://www.cnblogs.com/xzh0001/p/5660632.html

 1 import numpy as np
 2 
 3 def creatDataSet( ):
 4     group=np.array([[3,3],[4,3],[1,1]])
 5     label=[1,1,-1]
 6     return group,label
 7 
 8 def update( x , y ):
 9     global w , b
10     for i in range( len( x ) ):
11         w[ i ] += y * x[ i ]
12     b = b + y
13     
14 def cal( x , y ):
15     global w , b
16     result=0
17     for i in range( len( x ) ):
18         result += w[ i ] *  x[ i ]
19     result += b
20     result *= y
21     return result
22 
23 def perceptron_func( group , label ):
24     global w , b
25     isFind = False
26     n=group.shape[0]
27     x_col=group.shape[1]
28     w = [0] * x_col
29     b = 0
30     while isFind == False:
31         for i in range( n ):
32             if cal(group[ i ] , label[ i ]) <= 0:
33                 update(group[ i ] , label[ i ])
34                 print(i+1,w,b)
35                 break
36             elif i == n - 1:
37                 print(i+1,w,b)
38                 isFind = True
39 
40 g , l = creatDataSet( )
41 print('x   w    b')
42 perceptron_func(g,l)

 

 运行结果:

x   w    b
1 [3, 3] 1
3 [2, 2] 0
3 [1, 1] -1
3 [0, 0] -2
1 [3, 3] -1
3 [2, 2] -2
3 [1, 1] -3
3 [1, 1] -3


原文链接:https://www.cnblogs.com/bobomain/p/10723772.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:python高级-装饰器(19)

下一篇:如何给列表降维?sum()函数的妙用