人工神经网络之Python 实战

引言:Python是最好最热门的编程语言之一,以简单易学、应用广泛、类库强大而著称,是实现机器学习算法的首选语言。本文以人工神经网络的实战为例,证明需要深入理解算法的原理、优劣势等特点以及应用场景,以能达到应用自如的程度。
本文选自《Python大战机器学习:数据科学家的第一个小目标》。

  在本次操作前,这里需要导入的包为:
               

感知机学习算法的原始形式

  给出生成线性可分数据集的生成算法:
              

  • 参数
     ■n:正类的样本点数量,也是负类的样本点数量。总的样本点数量为2n。
  • 返回值:所有的样本点组成的数组,形状为(2*n,4)。数组中的每一行代表一个样本点,由其特征x和标记y组成。

其过程为:首先在z轴坐标为20 的上方生成n个随机点作为正类,在z轴坐标为10 的下方生成n个随机点作为负类。此时在平面z= 10, z= 20 作为隔离带。然后45度旋转x坐标轴,再返回这些点在新坐标轴中的坐标。注意这里混洗了数据,否则会发现数据集的前半部分都是正类,后半部分都是负类,需要混洗数据从而让正负类交叉出现。

  绘制数据集的函数为:
                 

  • 参数

 ■ax:一个Axes3D实例,负责绘制图形。
 ■samples:代表训练数据集的数组,形状为(N,n_features+1),其中N为样本点的个数,n_features代表特征数量(这里为3,表示三个特征)。

plot_samples函数的用法为:
                    

  然后给出感知机学习算法的原始形式算法的函数(图形如下图所示):
            
  
                        perceptron_data
  

  • 参数

 ■train_data:代表训练数据集的数组,形状为(N,n_features+1),其中N为样本点的个数,n_features代表特征数量(这里为3,表示三个特征)。
 ■eta:学习率。
 ■w_0:即w0,是一个列向量。
 ■b_0:即b0,是一个标量。

  • 返回值:一个元组,成员为w,b 以及迭代次数。

其过程为:

  • 最外层循环只有在全部分类正确的这种情况下退出
  • 内层循环从前到后遍历所有的样本点。一旦发现某个样本点是误分类点,就更新w,b然后重新从头开始遍历所有的样本点。

由于需要绘制分离超平面,因此需要根据w,b 给出生成分离超平面的函数:
               

  • 参数

 ■x:分离超平面上点的x坐标组成的数组。

 ■y:分离超平面上点的y坐标组成的数组。

 ■w:即w,超平面的法向量,它是一个列向量。

 ■b:即b,超平面的截距。

  • 返回值:分离超平面上点的z坐标组成的数组。

其过程就是根据wxx+wyy+wzz+b=0这个方程求得的。

  综合上述函数,可以观察感知机学习算法的原始算法的运行情况:
               

  算法得到的w为[[-10.1] [-68.08433252][ 64.85174234]],分离超平面法向量为(-10.1,-68.08,64.85),它在y-z平面上的投影是一条直线,该直线的斜率为68.08/64.85=1.05,非常接近我们在生成数据时旋转45度角的设定。感知机学习算法的原始形式算法的函数perceptron_original 图形(如下图所示)。
      
  本文选自《Python大战机器学习:数据科学家的第一个小目标》,点此链接可在博文视点官网查看此书。
                    
  想及时获得更多精彩文章,可在微信中搜索“博文视点”或者扫描下方二维码并关注。
                       

时间: 2024-11-09 03:40:00

人工神经网络之Python 实战的相关文章

人工智能实战——人工神经网络(C库iOS交叉编译)

人工智能实战--人工神经网络 给最近人工智能辣摸火,让我忍不住也想一探究竟,首先从目前来讲我是一个人工智能领域的门外汉,尽管恶补了几天基本知识,机器学习算法看得差不多,神马线性回归啊,逻辑回归啊,SVM啊,k临近算法啊,决策树啊,随机森林啊,看的我吐血了,不过也不难理解,然后尝试着用一套开源代码FANN(c语言跨平台库)编译到ios中写一个简单的小机器人 首先是准备工作,把FANN2.2.0的源代码编译成ios 64bit 模拟器的dylib库,其过程不聊了,用到了cmake...等等... 拿

用BP人工神经网络识别手写数字

http://wenku.baidu.com/link?url=HQ-5tZCXBQ3uwPZQECHkMCtursKIpglboBHq416N-q2WZupkNNH3Gv4vtEHyPULezDb50ZcKor41PEikwv5TfTqwrsQ4-9wmH06L7bYD04u 用BP人工神经网络识别手写数字 yzw20091201上传于2013-01-31|暂无评价|356人阅读|13次下载|暂无简介|举报文档 在手机打开 赖勇浩( http://laiyonghao.com ) 这是我读工

[转]BP人工神经网络的介绍与实现

原文地址:http://www.cnblogs.com/luxiaoxun/archive/2012/12/10/2811309.html 神经网络概念与适合领域 神经网络最早的研究是 40 年代心理学家 Mcculloch 和数学家 Pitts 合作提出的 ,他们提出的MP模型拉开了神经网络研究的序幕. 神经网络的发展大致经过 3 个阶段:1947-1969 年为初期,在这期间科学家们提出了许多神经元模型和学习规则,如 MP 模型.HEBB 学习规则和感知器等:60 年代末期至 80 年代中期

开源的人工神经网络计算库 FANN 学习笔记 1

开源的人工神经网络计算库 FANN 学习笔记 1 这年头机器学习非常的火,神经网络算是机器学习算法中的比较重要的一种.这段时间我也花了些功夫,学了点皮毛,顺便做点学习笔记. 介绍人工神经网络的基本理论的教科书很多.我正在看的是蒋宗礼教授写的<人工神经网络导论>,之所以选这本书,主要是这本比较薄,太厚的书实在是啃不动.这本书写的也比较浅显,用来入门正合适. 看书的同时也在网上找了找人工神经网络的库代码.感觉 FANN 这个库还不错,就顺道学了学这个库的使用方法. FANN 是个开源的 C 语言实

数据挖掘——回归分析2——简单神经网络的python实现

神经网络(Artificial Neural Network):全称为人工神经网络(ANN),是一种模仿生物神经网络(动物的中枢神经系统,特别是大脑)的结构和功能的数学模型或计算模型. 部分原理: 下面是单个神经元的数学模型: +1代表偏移值(偏置项, Bias Units):X1,X2,X2代表初始特征:w0,w1,w2,w3代表权重(Weight),即参数,是特征的缩放倍数:特征经过缩放和偏移后全部累加起来,此后还要经过一次激活运算然后再输出. 最常见的激活函数是Sigmoid(S形曲线),

《卷积神经网络的Python实现》PDF代码+《解析深度学习卷积神经网络原理与视觉实践》PDF分析

CNN正在革新几个应用领域,如视觉识别系统.自动驾驶汽车.医学发现.创新电子商务等.需要在专业项目或个人方案中利用复杂的图像和视频数据集来实现先进.有效和高效的CNN模型. 深度卷积网络DCNN是目前十分流行的深度神经网络架构,它的构造清晰直观,效果引人入胜,在图像.视频.语音.语言领域都有广泛应用. 深度学习,特别是深度卷积神经网络是人工智能的重要分支领域,卷积神经网络技术也被广泛应用于各种现实场景,在许多问题上都取得了超越人类智能的结果. <卷积神经网络的Python实现>作为深度学习领域

BoW图像检索Python实战

下文来自我的博客:BoW图像检索Python实战 前几天把HABI哈希图像检索工具包更新到V2.0版本后,小白菜又重新回头来用Python搞BoW词袋模型,一方面主要是练练Python,另一方面也是为了CBIR群开讲的关于图像检索群活动第二期而准备的一些素材.关于BoW,网上堆资料讲得挺好挺全的了,小白菜自己在曾留下过一篇讲解BoW词袋构建过程的博文Bag of Words模型,所以这里主要讲讲BoW的实战.不过在实战前,小白菜还想在结合自己这两年多BoW的思考和沉淀重新以更直白的方式对BoW做

人工神经网络Step01

感知器 人工神经网络(ANN)是机器学习的一重要分支,在没介绍神经网络之前,有必要先介绍感知器,感知器是人工神经网络的前身. 有这么一个问题,我们知道某人的体重及身高可否估计出人体脂肪的含量比例(就是肥瘦问题了)? 而实际的 在这之前,我们随机在街上找了几百人做测量,测量下面的数据: 1.年龄(岁)2.体重(公斤)3.身高(厘米)4.颈围(厘米)5.胸围(厘米)6.腹部(厘米)7.臀围(厘米)8.大腿围(厘米)9.膝围(厘米)10.踝周长(厘米)11.肱二头肌(扩展)腰围(cm)12.前臂围(厘

猪猪的机器学习笔记(十)人工神经网络

人工神经网络 作者:樱花猪 摘要: 本文为七月算法(julyedu.com)12月机器学习第十次次课在线笔记.人工神经网络在支持图像处理.文本.语言以及序列多种类型的数据处理时都用用到.本次课程更加侧重于实践,把抽象的人工神经网络用程序展现出来,课上讲述了编程使用的工具和方法,对于日后实验有非常重要的帮助. 引言: 人工神经网络(Artificial Neural Network,即ANN ),是20世纪80 年代以来人工智能领域兴起的研究热点.它从信息处理角度对人脑神经元网络进行抽象,建立某种