-
感知器分类算法 权重和训练样本进行点积,对点积结果求和得到z值,送至激活函数,若z>0,则通过激活函数输出结果为1,若z<0,输出为-1.这样就把数据进行了分类. 当然,其中涉及到权重和阈值的更新.查看全部
-
countourf 给数据画分类线查看全部
-
meshgrid函数的作用是把构造的向量扩展成二维矩阵查看全部
-
这个图好查看全部
-
输入之后与每个对应的权重做点积,然后看得到的结果与真实的结果是否相同,相同则OUTPUT,不同则通过激活函数Activation function,更新权重的值,再训练反复。查看全部
-
权重更新算法: 1,如果y=y',y-y'=0,&W(j)=0,W(j)=W(j)+&W(j)=W(j),就不需要更新; 2.W(j)是根据结果自动更新数值,n*是人为设置,根据自己的经验设定,不断探索出更准确的数值,这个n*会影响到最终的检测效果查看全部
-
if __name__ == '__main__': file = 'iris.data' df = pd.read_csv(file, header=None) # 需要第一行 y = df.loc[0:100, 4].values # 0-100行条目取出来 y = np.where(y == 'Iris-setosa', -1, 1) x = df.iloc[0:100, [0, 2]].values # 把第0列和第2列的0-100行数据抽取出来组成一个新的二维数组 # plt.scatter(x[:50, 0], x[:50, 1], color='red', marker='o', label='setosa') # plt.scatter(x[50:100, 0], x[50:100, 1], color='blue', marker='x', label='versicolor') # plt.xlabel(u'花瓣的长度') # plt.ylabel(u'花径的长度') # plt.legend(loc='upper left') # plt.show() ppn = Perceptron(eta=0.1, n_iter=10) ppn.fit(x, y) # plt.plot(range(1, len(ppn.errors_) + 1), ppn.errors_, marker='o') # plt.xlabel(u'Epochs') # plt.ylabel(u'错误分类次数') plot_decision_regions(x, y, ppn, resolution=0.02) plt.xlabel(u'花瓣的长度') plt.ylabel(u'花径的长度') plt.legend(loc='upper left') plt.show() pass查看全部
-
.
查看全部 -
感知器数据分类算法步骤:
1、把权重向量W初始化为0,或把每个分量初始化为【0,1】间任意小数
2、把训练样本输入感知器,得到分类结果(-1或1)
根据分类结果更新权重向量
查看全部 -
阈值的更新
查看全部 -
感知器算法试用范围
查看全部 -
权重更新算法
查看全部 -
ada = AdalineGD(eta = 0.001, n_iter = 50) ada.fit(x, y) plot_decision_region(x, y, classifier = ada) plt.title('Adaline-Gradient decent') plt.xlabel('the length of huajing') plt.ylabel('the length of huaban') plt.legend(loc='upper left') plt.show()
查看全部 -
class AdalineGD(object): def __init__(self, eta, n_iter): self.eta = eta self.n_iter = n_iter def fit(self, X, y): self.w_ = np.zeros(1 + X.shape[1]) self.cost_ [] for i in range(self.n_iter): output = self.net_input(X) errors = y - output self.w_[1:] += self.eta * X.T.dot(errors) self.w_[0] += self.eta * errors.sum() cost = (errors ** 2).sum() / 2.0 self.cost_.append(cost) return self def net_input(self, X): return np.dot(X, self.w_[1:]) + self.w_[0] def activation(self, X): return self.net_input(X) def predict(self, X): return np.where(self.activation(X) >= 0, 1, -1)
查看全部 -
η是前面提到的学习率,μ=-η。
查看全部
举报
0/150
提交
取消