代码没有地方下载吗
```
import numpy as np
class perceptron(object):
"""
eta :学习率
n_iter: 权重向量的训练次数
w_: 神经分叉权重向量
errors_: 用于记录神经元判断出错次数
"""
def _int_(self,eta=0.01,n_iter=10):
self.eta=eta;
self.n_iter=n_iter;
pass
def fit(self,x,y):
"""
输入训练数据,培训神经元,x输入样本向量,y对应样本分类
x:shape[n_samples,n_features]
x:[[1,2,3],[4,5,6]]
n_samples: 2 (输入样本量)
n_features:3 (输入的信号有多少个)
y:[1,-1]
"""
"""
初始化权重向量为0
"""
self.w_=np.zero(1+x.shape[1]);
self.errors_=[]
"""
训练次数循环
"""
for _ in range(self.n_iter):
errors =0
"""
x:[[1,2,3],[4,5,6]]
y:[1,-1]
zip(x,y)=[[1,2,3,1],[4,5,6,-1]]
"""
for xi,target in zip(x,y):
"""
update=η*(y-y')
"""
update =self.eta*(target-self.predict(xi))
"""
xi 是一个向量
self.w_[1:]+=update*xi等价:
[▽w(1)=x[1]*update,▽w(2)=x[2]*update,▽w(3)=x[3]*update,]
"""
self.w_[1:]+=update*xi
self.w_[0]+=update;
errors+=int(update !=0.0)
self.errors_.appand(errors)
pass
pass
def net_input(self,x):
"""
z= W0*1+ W1*X1+ ....Wn*Xn
"""
return np.dot(x,self.w_[1:])+self.w_[0]
pass
def predict(self,x):
return np.where(self,net_input(x)>=0.0,1,-1)
pass
```
没有下载!