# --- 感知机--- # 原始问题 from numpy import * x=array([[3,3],[4,3],[1,1]]) y=array([1,1,-1]) w=zeros((1,len(x[0]))) b=0 def sign(w,b,x): return mat(w)*mat(x).T+b def train(x,y,w,b,alpha=1): flag=True while flag: count = 0 # 代表误分类的点数 for i in range(len(x)): loss_func=sign(w,b,x[i]) if y[i]*loss_func <= 0: w+=alpha*y[i]*x[i] b+=alpha*y[i] count+=1 # 此时存在一个误分类的点 print(w) print(b) if count==0: flag=False return w,b c=train(x,y,w,b) print(c)
李航统计学习感知机学习算法 原始形式
最新推荐文章于 2024-01-03 16:22:28 发布