安居多伦多
  • 多市生活
    • 多市生活
    • 加国税务
    • 旅游度假
    • 生活安全
    • 行车安全
    • 窍门集锦
  • 多市书苑
    • 热门
    • 小说
    • 教育
  • 家居信息
    • 家居信息
    • 房屋保养
    • 房屋贷款
    • 房屋租赁
    • 房屋建筑
    • 房前屋后
    • 家居风水
  • 健康保健
    • 健康保健
    • 饮食起居
    • 食品安全
    • 健身锻炼
  • 书苑账户
    • 书苑登入
    • 书苑注册
    • 忘记书苑密码
    • 书苑账户信息
    • 关于我们
    • 联系我们
    • 隐私政策
多伦多书苑
在线书籍:随时阅读,随身听书。
所有书籍 | 人文 | 人物 | 人生 | 健康 | 儿童 | 医学 | 历史 | 历史 | 古典 | 哲学宗教 | 商业 | 外国 | 寓言 | 小说 | 教育 | 风水 | 管理 | 语言 |
为使本公益资源网站能继续提供免费阅读,请勿屏蔽广告。谢谢!报告弹出广告被滥用。
  1. 安居多伦多
  2. 网上书苑
  3. IT
  4. AI
  5. 机器学习实战

机器学习实战

2022-03-09 0人点赞 0条评论
点赞
x
语速1.0: 2.0
进度0:

上一页   |   返回目录   |   下一页

1.7 NumPy函数库基础

机器学习算法涉及很多线性代数知识,因此本书在使用Python语言构造机器学习应用时,会经常使用NumPy函数库。如果不熟悉线性代数也不用着急,这里用到线性代数只是为了简化不同的数据点上执行的相同数学运算。将数据表示为矩阵形式,只需要执行简单的矩阵运算而不需要复杂的循环操作。在你使用本书开始学习机器学习算法之前,必须确保可以正确运行Python开发环境,同时正确安装了NumPy函数库。NumPy函数库是Python开发环境的一个独立模块,而且大多数Python发行版没有默认安装NumPy函数库,因此在安装Python之后必须单独安装NumPy函数库。在Windows命令行提示符下输入c:\Python27\python.exe,在Linux或者Mac OS的终端上输入python,进入Python shell开发环境。今后,一旦看到下述提示符就意味着我们已经进入Python shell开发环境:

>>>

在Python shell开发环境中输入下列命令:

>>> from numpy import *

上述命令将NumPy函数库中的所有模块引入当前的命名空间。Mac OS上输出结果如图1-3所示。

命令行启动Python并在Python shell开发环境中导入模块

图1-3 命令行启动Python并在Python shell开发环境中导入模块

然后在Python shell开发环境中输入下述命令:

>>> random.rand(4,4)
array([[ 0.70328595, 0.40951383, 0.7475052 , 0.07061094],
[ 0.9571294 , 0.97588446, 0.2728084 , 0.5257719 ],
[ 0.05431627, 0.01396732, 0.60304292, 0.19362288],
[ 0.10648952, 0.27317698, 0.45582919, 0.04881605]])

上述命令构造了一个4x4的随机数组,因为产生的是随机数组,不同计算机的输出结果可能与上述结果完全不同。

NumPy矩阵与数组的区别

NumPy函数库中存在两种不同的数据类型(矩阵matrix和数组array),都可以用于处理行列表示的数字元素。虽然它们看起来很相似,但是在这两个数据类型上执行相同的数学运算可能得到不同的结果,其中NumPy函数库中的matrix与MATLAB中matrices等价。

调用mat()函数可以将数组转化为矩阵,输入下述命令:

>>> randMat = mat(random.rand(4,4))

由于使用随机函数产生矩阵,不同计算机上输出的值可能略有不同:

>>> randMat.I
matrix([[ 0.24497106, 1.75854497, -1.77728665, -0.0834912 ],
[ 1.49792202, 2.12925479, 1.32132491, -9.75890849],
[ 2.76042144, 1.67271779, -0.29226613, -8.45413693],
[-2.03011142, -3.07832136, 1.4420448 , 9.62598044]])

.I操作符实现了矩阵求逆的运算。非常简单吧?没有NumPy库,Python也不能这么容易算出来矩阵的逆运算。不记得或者没学过矩阵求逆也没关系,NumPy库帮我们做完了,执行下面的命令存储逆矩阵:

>>> invRandMat = randMat.I

接着执行矩阵乘法,得到矩阵与其逆矩阵相乘的结果:

>>> randMat*invRandMat
matrix([[ 1.00000000e+00, 0.00000000e+00, 2.22044605e-16, 1.77635684e-15],
[ 0.00000000e+00, 1.00000000e+00, 0.00000000e+00, 0.00000000e+00],
[ 0.00000000e+00, 4.44089210e-16, 1.00000000e+00, -8.88178420e-16],
[ -2.22044605e-16, 0.00000000e+00, 1.11022302e-16, 1.00000000e+00]])

结果应该是单位矩阵,除了对角线元素是1,4x4矩阵的其他元素应该全是0。实际输出结果略有不同,矩阵里还留下了许多非常小的元素,这是计算机处理误差产生的结果。输入下述命令,得到误差值:

>>> myEye = randMat*invRandMat
>>> myEye - eye(4)
matrix([[ 0.00000000e+00, -6.59194921e-17, -4.85722573e-17, -4.99600361e-16],
[ 2.22044605e-16, 0.00000000e+00, -6.03683770e-16, -7.77156117e-16],
[ -5.55111512e-17, -1.04083409e-17, -3.33066907e-16, -2.22044605e-16],
[ 5.55111512e-17, 1.56125113e-17, -5.55111512e-17, 0.00000000e+00]])

函数eye(4)创建4×4的单位矩阵。

只要能够顺利地完成上述例子,就说明已经正确地安装了NumPy函数库,以后我们就可以利用它构造机器学习应用程序。即使没有提前学习所有的函数也没有关系,本书将在需要的时候介绍更多的NumPy函数库的功能。

上一页   |   返回目录   |   下一页

类似书籍

Python机器学习手册:从数据预处理到深度学习
Python机器学习手册:从数据预处理到深度学习
Python机器学习实践指南
Python机器学习实践指南
Python机器学习——预测分析核心算法
Python机器学习——预测分析核心算法
Author:

标签: 暂无
最后更新:2022-03-09
< 上一篇

本书评论

取消回复

©2021 安居多伦多 - 版权所有

本站由 好事来 Hostlike.com 提供技术支持。