-
权重更新算法查看全部
-
算法流程查看全部
-
权重更新算法查看全部
-
自适应线性神经元没有看查看全部
-
自适应线性神经元没有看查看全部
-
权重更新算法查看全部
-
Z =Z.reshape(xx1.shape) plt.contourf(xx1,xx2,Z,alpha=0.4, cmap=cmap) plt.xlim(xx1.min(),xx1.max()) plt.ylim(xx2.min(),xx2.max()) for idx,cl in enumerate(np.unique(y)): plt.scatter(x=x[y==cl,0],y=X[y==cl,1],alpha=0.8,c=cmap(idx), marker =markers[idx],label=cl) plot_decision_regions(X,y,ppn,resolution=0.02) plt.xlabel('花径长度') plt.ylabel('花瓣长度') plt.legend(loc='upper left') plt.show()查看全部
-
ppn =Perceptron(eta=0.1,n_iter=10) ppn.fit(X,y) plot.plot(range(1,len(ppn.errors_)+1),ppn.errors_,marker='o') plt.xlabel('Epochs') plt.ylabel('错误分类次数') #plt.show() from matplotlib.colors import ListedColormap def plot_decision_regions(X,y,classifier,resolution=0.02): marker = ('s','x','o','v') colors =('red','blue','lightgreen','gray','cyan') cmap =ListedColormap(colors[:len(np.unique(y))]) x1_min,x1_max =X[:,0].min() -1, X[:,0].max() x2_min,x2_max =X[:,1].min() -1, X[:,1].max() print(x1_min,x1_max) print(x2_min,x2_max) xx1,xx2 =np.meshgrid(np.arange(x1_min,x1_max,resolution), np.arange(x2_min,x2_max,reolution)) #print(np.arange(x1_min,x1_max,resolution).shape) #print(np.arange(x1_min,x1_max,resolution)) #print(xx1.shape) #print(xx1) Z =classifier.predict(np.array([xx1.ravel(),xx2,ravel()]).T) print(xx1.ravel()) print(xx2.ravel()) print(Z)查看全部
-
import numpy as np class Peerceptron(object): def_int_(self,eta=0.01,n_iter=10) “”eta:学习率,n_iter:权重向量的训练次数,w_:神经分叉权重向量error:用于记录神经元判断出错次数“” self.eta=eta; self.n_iter=n_iter pass def fit(self,x,y): ""输入训练数据,训练神经元,x输入样本向量,y对应样本分类 x:shape(n_sample,n_features) x:[[1,2,3],[4,5,6]] y:[1,-1]"" "初始化权重向量为0 加一是因为前面算法提到的是w0,也就是步调函数阈值" 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=yita*(y-y') " update= self.eta*(target-self.predict(xi)) "xi是一个向量 update*xi等价: [w(1)=x[1]*update,w(2)=x[2]*update,w(3)=x[3]*update] " self.w_[1:]+=update*xi pass pass pass pass查看全部
-
学习查看全部
-
算法框图查看全部
-
感知器算法适用范围:可以将两种数据用一条线分割开来查看全部
-
阈值需要随着权重变量w0的变化而变化,两者在值上保持相等查看全部
-
“分类”:1或-1 学习率:需要自己调整查看全部
-
步调函数和阈值查看全部
举报
0/150
提交
取消