实现一个简单的神经网络,做一个简单的二分类算法。为了理解神经网络,我们应该先理解神经网络的组成单元——神经元。神经元也叫做感知器。感知器算法在上个世纪50-70年代很流行,也成功解决了很多问题。并且,感知器算法也是非常简单的。在人工神经网络领域中,感知器也被指为单层的人工神经网络,以区别于较复杂的多层感知器(Multilayer Perceptron)。 作为一种线性分类器,(单层)感知器可说是最简单的前向人工神经网络形式。尽管结构简单,感知器能够学习并解决相当复杂的问题。感知器主要的本质缺陷是它不能处理线性不可分问题。
感知器有如下组成部分:
输入权值 激活函数 输出
以下程序切实实现权值更新,根据误差结果更新迭代,并且观察每次迭代后误差变化,网络趋于收敛。并且对测试集结果进行二分类,并且用可视化图片展示。
其中,在处理过程中,对python类概念、以及多个第三方库有一定了解,比如numpy、matplotlib等。
1.创建一个类作为分类器,可处理更新权重信息、记录误差信息
class AdalineG(object):
"""
eta:float
学习效率,处于0和1之间
n_iter:int 对训练数据进行学习改进次数
w_:一维向量
存储权重数值
error_: 存储每次迭代改进时,网络对数据进行错误判断的次数
"""
def __init__(self,eta=0.01,n_iter=50):
self.eta = eta
self.n_iter = n_iter
def net_input(self, X):
return np.dot(X, self.w_[1:]) + self.w_[0]
def activation(self, X):
r

本文介绍了一个基于感知器算法的简单神经网络实现过程,包括神经网络的基本组件介绍、Python类的设计与实现、权重更新机制及可视化展示。通过实际案例演示了如何使用感知器解决线性可分的二分类问题。
最低0.47元/天 解锁文章
421





