人工神经网络之Python 实战

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

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

相关文章
|
SQL 关系型数据库 数据库
Python SQLAlchemy模块:从入门到实战的数据库操作指南
免费提供Python+PyCharm编程环境,结合SQLAlchemy ORM框架详解数据库开发。涵盖连接配置、模型定义、CRUD操作、事务控制及Alembic迁移工具,以电商订单系统为例,深入讲解高并发场景下的性能优化与最佳实践,助你高效构建数据驱动应用。
1252 7
|
数据采集 Web App开发 数据安全/隐私保护
实战:Python爬虫如何模拟登录与维持会话状态
实战:Python爬虫如何模拟登录与维持会话状态
|
机器学习/深度学习 PyTorch TensorFlow
卷积神经网络深度解析:从基础原理到实战应用的完整指南
蒋星熠Jaxonic,深度学习探索者。深耕TensorFlow与PyTorch,分享框架对比、性能优化与实战经验,助力技术进阶。
|
监控 Linux 测试技术
C++零拷贝网络编程实战:从理论到生产环境的性能优化之路
🌟 蒋星熠Jaxonic,技术宇宙中的星际旅人。深耕C++与零拷贝网络编程,从sendfile到DPDK,实战优化服务器性能,毫秒级响应、CPU降60%。分享架构思维,共探代码星辰大海!
|
传感器 运维 前端开发
Python离群值检测实战:使用distfit库实现基于分布拟合的异常检测
本文解析异常(anomaly)与新颖性(novelty)检测的本质差异,结合distfit库演示基于概率密度拟合的单变量无监督异常检测方法,涵盖全局、上下文与集体离群值识别,助力构建高可解释性模型。
790 10
Python离群值检测实战:使用distfit库实现基于分布拟合的异常检测
|
数据采集 监控 数据库
Python异步编程实战:爬虫案例
🌟 蒋星熠Jaxonic,代码为舟的星际旅人。从回调地狱到async/await协程天堂,亲历Python异步编程演进。分享高性能爬虫、数据库异步操作、限流监控等实战经验,助你驾驭并发,在二进制星河中谱写极客诗篇。
Python异步编程实战:爬虫案例
|
Cloud Native 算法 API
Python API接口实战指南:从入门到精通
🌟蒋星熠Jaxonic,技术宇宙的星际旅人。深耕API开发,以Python为舟,探索RESTful、GraphQL等接口奥秘。擅长requests、aiohttp实战,专注性能优化与架构设计,用代码连接万物,谱写极客诗篇。
2150 1
Python API接口实战指南:从入门到精通
|
存储 分布式计算 测试技术
Python学习之旅:从基础到实战第三章
总体来说,第三章是Python学习路程中的一个重要里程碑,它不仅加深了对基础概念的理解,还引入了更多高级特性,为后续的深入学习和实际应用打下坚实的基础。通过这一章的学习,读者应该能够更好地理解Python编程的核心概念,并准备好应对更复杂的编程挑战。
323 12
|
数据采集 存储 XML
Python爬虫技术:从基础到实战的完整教程
最后强调: 父母法律法规限制下进行网络抓取活动; 不得侵犯他人版权隐私利益; 同时也要注意个人安全防止泄露敏感信息.
1270 19
|
机器学习/深度学习 大数据 关系型数据库
基于python大数据的青少年网络使用情况分析及预测系统
本研究基于Python大数据技术,构建青少年网络行为分析系统,旨在破解现有防沉迷模式下用户画像模糊、预警滞后等难题。通过整合多平台亿级数据,运用机器学习实现精准行为预测与实时干预,推动数字治理向“数据驱动”转型,为家庭、学校及政府提供科学决策支持,助力青少年健康上网。

热门文章

最新文章

推荐镜像

更多