李航例题感知机原始形式python代码

#author:xinxinzhang
import numpy as np
def loadData():            #加载数据
    X=np.mat([[3,3],
              [4,3],
              [1,1]])
    Y=[1,1,-1]
    return X,Y

def perceptron_s(X,Y):  #感知机算法原始形式
    w=np.mat([0,0])     #初始化w,b
    b=0
    m,n=np.shape(X)
    isfind=False
    while not isfind:
        for i in range(m):    #在训练集中选取数据xi,yi
            wx=int(np.dot(w,X[i].T))  
            if Y[i]*(wx+b) <=0:       #若分类错误,更新w,b 
                w+=Y[i]*X[i]
                b+=Y[i]
                print(w,b)
                break
            elif i==m-1:              #直至训练集中没有误分类点
                print(w,b)
                isfind=True

X,Y=loadData()
perceptron_s(X,Y)
#结果如表2.1
 
 
 
 
 
 
 

猜你喜欢

转载自blog.csdn.net/zuanfengxiao/article/details/79023489
今日推荐