关闭

人工神经网络之Python 实战

标签: 人工神经网络python机器学习数据
2090人阅读 评论(1) 收藏 举报

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

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

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

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

  • 参数
     ■n:正类的样本点数量,也是负类的样本点数量。总的样本点数量为2n。

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

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

  绘制数据集的函数为:
                 图3

  • 参数

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

plot_samples函数的用法为:
                    图4

  然后给出感知机学习算法的原始形式算法的函数(图形如下图所示):
            图5
  图6
                        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 给出生成分离超平面的函数:
               图7

  • 参数

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

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

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

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

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

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

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

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

2
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

python实现神经网络

声明:本文是A Neural Network in 11 lines of Python学习总结而来,关于更详细的神经网络的介绍可以参考从感知机到人工神经网络。如果你读懂了下面的文章,你会对神经网络有...
  • taoyanqi8932
  • taoyanqi8932
  • 2017-01-16 17:57
  • 4159

PyBrain-Python的人工神经网络

python有一个很好用的神经网络库。虽然sklearn很强大,但是好像对神经网络的支持并不是那么那好。 1.安装 安装很方便,项目是一个开源的,托管在github上。如果你用的也是Anconda...
  • qtlyx
  • qtlyx
  • 2016-06-08 19:56
  • 5445

使用Python实现神经网络

原文链接: http://blog.topspeedsnail.com/archives/tag/tensorflow 神经网络/人工神经网络的洋文是Neural Network,这个计算模型在上世...
  • u014365862
  • u014365862
  • 2016-12-25 09:51
  • 9435

从零开始:用Python搭建神经网络

从零开始:用Python搭建神经网络
  • x_r_su
  • x_r_su
  • 2016-11-05 09:20
  • 13776

基于Python3 神经网络的实现

基于Python3的神经网络实现,实现从数据集生成到逻辑回归,再到3层神经网络实现,说明了实现原理和基础的理论知识,最后,通过多层次拟合说明了拟合程度的利弊。本项目的展示方式是Python的jupyt...
  • dream_an
  • dream_an
  • 2016-06-29 12:25
  • 6889

Python与人工神经网络(10)——神经网络可以干什么

这可能是最难写的一期。 实际上这期的内容,在作者原作上并不长,而且我看前面的就已经明白后面的是什么意思了。所以我只看了一个晚上,后面的部分就范范的翻了一下,看大概跟自己的理解没太大区别,就过了。...
  • zxhm001
  • zxhm001
  • 2017-04-12 18:51
  • 1179

Python与人工神经网络(15)——结语和前言

这是Python与人工神经网络的最后一期,也恰好如开篇时所说,写了15期。本系列是我读Michael Nielsen的书《Neural Networks and Deep Learning》的半翻译半...
  • zxhm001
  • zxhm001
  • 2017-04-24 22:28
  • 298

【备忘】2017年最新整理python神经网络深度学习算法全套视频教程

2017年最新整理python神经网络深度学习算法全套视频教程 课程介绍: 此阶段主要介绍了Python语言为工具对每种算法进行结合实例讲解,并使用Python中相关的package来对实际问...
  • qq_38155396
  • qq_38155396
  • 2017-07-01 08:22
  • 1836

PyBrain-Python的人工神经网络

python有一个很好用的神经网络库。虽然sklearn很强大,但是好像对神经网络的支持并不是那么那好。 1.安装 安装很方便,项目是一个开源的,托管在github上。如果你用的也是Anconda...
  • qtlyx
  • qtlyx
  • 2016-06-08 19:56
  • 5445

Python与人工神经网络(10)——神经网络可以干什么

这可能是最难写的一期。 实际上这期的内容,在作者原作上并不长,而且我看前面的就已经明白后面的是什么意思了。所以我只看了一个晚上,后面的部分就范范的翻了一下,看大概跟自己的理解没太大区别,就过了。...
  • zxhm001
  • zxhm001
  • 2017-04-12 18:51
  • 1179
    个人资料
    • 访问:3852101次
    • 积分:55781
    • 等级:
    • 排名:第58名
    • 原创:1457篇
    • 转载:83篇
    • 译文:1篇
    • 评论:3784条
    博客专栏
    文章存档
    最新评论