引言: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大战机器学习:数据科学家的第一个小目标》,点此链接可在博文视点官网查看此书。
                    
  想及时获得更多精彩文章,可在微信中搜索“博文视点”或者扫描下方二维码并关注。
                       

人工神经网络之Python 实战相关推荐

  1. 【Python数据分析】数据挖掘建模——分类与预测——人工神经网络

    人工神经网络(artificial neural networks,ANNs),是模拟生物神经网络进行信息处理的一种数学模型. 一.人工神经网络简介 更多关于神经网络的发展可以参考:人工神经网络简介_ ...

  2. 【python代码实现】人工神经网络分类算法及其实战案例(股票价格波动分析)

    目录 前置知识 1.前言 2.人工神经网络模型 2.1.神经元模型与单层神经网络 2.2.多层人工神经网络模型 人工神经网络分类算法 1.构建数据集 2.响应函数 3.模型训练 4.测试样本分类 案例 ...

  3. 【项目实战】Python基于librosa和人工神经网络实现语音识别分类模型(ANN算法)项目实战

    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取. 1.项目背景 语音识别发展到现在作为人机交互的重要接口已经在很多方面改变了我们 ...

  4. 用BP人工神经网络识别手写数字——《Python也可以》之三

    赖勇浩(http://laiyonghao.com) 这是我读工程硕士的时候完成课程作业时做的,放在 dropbox 的角落中生尘已经有若干年头了,最近 @shugelee 同学突然来了兴致搞验证码识 ...

  5. 机器学习——人工神经网络之BP算法编程(python二分类数据集:马疝病数据集)

    目录 一.理论知识回顾 1.神经网络模型 2.明确任务以及参数 1)待估参数: 2)超参数: 3)任务 3.神经网络数学模型定义 1)激活函数 ​ 2)各层权重.阈值定义 3)各层输入输出定义 4.优 ...

  6. 机器学习实战10-Artificial Neural Networks人工神经网络简介(mnist数据集)

    目录 一.感知器 1.1.单层感知器 1.2.多层感知器MLP与反向传播 二.用 TensorFlow 高级 API 训练 MLP DNNClassifier(深度神经网络分类器) 2.1.初始化: ...

  7. 利用python实现简单的人工神经网络识别手写数字

    利用 Python 搭建起了一个简单的神经网络模型,并完成识别手写数字. 1.前置工作 1.1 环境配置 这里使用scikit-learn库内建的手写数字字符集作为本文的数据集.scikit-lear ...

  8. python做神经网络识别车牌_Python与人工神经网络:使用神经网络识别手写图像介绍...

    人体的视觉系统是一个相当神奇的存在,对于下面的一串手写图像,可以毫不费力的识别出他们是504192,轻松到让人都忘记了其实这是一个复杂的工作. 实际上在我们的大脑的左脑和右脑的皮层都有一个第一视觉区域 ...

  9. 用Python实现人工神经网络(简易版)

    人工神经网络 人工神经网络简介 代码 神经网络的缺点 程序优化 BP算法 补充 人工神经网络简介 人工神经网络(Artificial Neural Network, ANN)是指一系列受生物学和神经学 ...

  10. 机器学习实战-57: 人工神经网络分类算法(Artificial Neural Network)

    机器学习实战-57: 人工神经网络分类算法 深度学习原理与实践(开源图书)-总目录,建议收藏,告别碎片阅读! 人工神经网络(Artificial Neural Network)分类算法属于监督学习算法 ...

最新文章

  1. 32位crc校验码程序_CRC码计算及校验原理的最通俗诠释
  2. 车道线检测参考学习资料
  3. xgboost gbdt特征点分烈点
  4. 2、在控制台上输出1—100数字
  5. lstm网络_LSTM(长短期记忆网络)
  6. Java基础---接口是啥?
  7. GitHub#algorithm#:《剑指offer》 的50道面试题
  8. 【dfs+理解题意+构造】【待重做】codeforces E. Ice cream coloring
  9. LRUCache和FastLRUCache实现分析
  10. 图片弹幕蒙版java实现_通过css3实现蒙版弹幕
  11. 海康摄像头直连电脑修改IP解决播放失败无画面无法连接问题
  12. 用FCM函数实现模糊C均值聚类算法
  13. 快速清理C盘的四个方法
  14. xmapp教程及扩展
  15. C语言---用筛选法求100以内的素数
  16. 谷歌大脑2017技术研究总结 | Jeff Dean执笔(附论文 数据集)
  17. 【前端基础面试题】如何用CSS画一个三角形(详解)
  18. angularJs监控页面加载完毕
  19. 国产麒麟系统忘记密码重置办法(5步解决)
  20. 单片机--串口通信---11

热门文章

  1. QToolBox学习笔记
  2. LeetCode--191--位1的个数
  3. centos 6.x下jira显示饼图乱码解决方法
  4. 小型Web页打包优化(下)
  5. Learn ZYNQ (7)
  6. Leetcode 233.数字1的个数
  7. nyoj 8 一种排序(用vector,sort,不用set)
  8. Linux Vsftpd 连接超时解决方法(被动模式)
  9. 浅谈Js对象的概念、创建、调用、删除、修改!
  10. js Indexof的用法