《机器学习系统设计:Python语言实现》一2.7 SciPy

简介:

.本节书摘来自华章出版社《机器学习系统设计:Python语言实现》一书中的第2章,第2.7节,作者 [美] 戴维·朱利安(David Julian),更多章节内容可以访问云栖社区“华章计算机”公众号查看

2.7 SciPy

SciPy对NumPy增加了一层,在NumPy更为纯粹的数学构造之上,封装了常用的科学和统计应用。SciPy为数据的操作和可视化提供了更高级的函数,并且特别适用于交互式地使用Python。SciPy由覆盖了不同科学计算应用的子包组成。下面列出了与机器学习最为相关的包及其功能:
image

NumPy和SciPy包中有很多名字相同且功能类似的模块,其中SciPy中的大部分模块都是从NumPy导入的,并进行了功能扩展。然而需要注意的是,虽然SciPy中有些函数的名字和NumPy完全一样,但是其功能却稍有不同。还需要提示的是,SciPy的很多类在scikit-learn包中都有便利性的封装,有时这些封装更容易使用。
每个包都需要显式导入,如以下代码所示:
image

我们可以从SciPy的网站(scipy.org)或控制台获得其文档,例如,help(scipy.cluster)。
正如我们所见,优化是不同机器学习环境中的常见任务。在上一章,我们考察了单纯形法的数学原理,这里,我们使用SciPy对其进行实现。我们使用单纯形法对线性方程组进行了优化,问题如下:
在约束方程中,2x1 + x2≤4和x1 + 2x2≤3,求x1 + x2的最大值。
linprog可能是解决此问题最简单的对象,它是最小化算法,因此我们需要反转目标的符号。
首先从scipy.optimize导入linprog:
image

我们可以观察到如下输出:
image

这里还有个对象是optimisation.minimize,适于解决稍微复杂一些的问题。此对象需要一个求解器作为参数,而目前有十几个可用的求解器,如果需要更为特殊的求解器,则可以自己实现一个。最常用的,适于大多数问题的求解器是nelder-mead。这一特殊的求解器使用了下降单纯形法(downhill simplex),这基本上是一种启发式搜索,即用所有剩余点的质心点来替换误差最高的测试点,并不断迭代这一过程,直到收敛为最小。
在下面的例子中,我们使用Rosenbrock函数作为测试问题。这是个非凸函数,常用来检验优化问题。该函数的全局极小值在一个长的抛物线波谷,因此,要在一个大的、相对平坦的波谷中找到极小值,对于算法来说是具有挑战的。该函数示例如下:
image

image

上面代码的输出如下:
image

上例中的minimize函数有两个强制性参数,即目标函数和初始值x0。此外还需要一个可选参数,即求解器方法,此例中我们使用nelder-mead方法。字典options是特定于求解器的一组键值对。这里,xtol是对收敛可接受的相对误差,disp用于设置消息打印。对于机器学习应用极为有用的另一个包是scipy.linalg。这个包增加了执行诸如逆矩阵、特征值计算,以及矩阵分解等任务的能力。

相关文章
|
16天前
|
机器学习/深度学习 算法 搜索推荐
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
|
1天前
|
前端开发 Java Go
开发语言详解(python、java、Go(Golong)。。。。)
开发语言详解(python、java、Go(Golong)。。。。)
|
1天前
|
机器学习/深度学习 数据可视化 数据挖掘
《Python 简易速速上手小册》第9章:数据科学和机器学习入门(2024 最新版)
《Python 简易速速上手小册》第9章:数据科学和机器学习入门(2024 最新版)
10 1
|
2天前
|
机器学习/深度学习 存储 算法
PYTHON集成机器学习:用ADABOOST、决策树、逻辑回归集成模型分类和回归和网格搜索超参数优化
PYTHON集成机器学习:用ADABOOST、决策树、逻辑回归集成模型分类和回归和网格搜索超参数优化
25 7
|
4天前
|
机器学习/深度学习 人工智能 分布式计算
R和Python机器学习:广义线性回归glm,样条glm,梯度增强,随机森林和深度学习模型分析
R和Python机器学习:广义线性回归glm,样条glm,梯度增强,随机森林和深度学习模型分析
|
9天前
|
机器学习/深度学习 JavaScript 前端开发
机器学习模型部署:使用Python和Vue搭建用户友好的预测界面
【4月更文挑战第10天】本文介绍了如何使用Python和Vue.js构建机器学习模型预测界面。Python作为机器学习的首选语言,结合Vue.js的前端框架,能有效部署模型并提供直观的预测服务。步骤包括:1) 使用Python训练模型并保存;2) 创建Python后端应用提供API接口;3) 利用Vue CLI构建前端项目;4) 设计Vue组件实现用户界面;5) 前后端交互通过HTTP请求;6) 优化用户体验;7) 全面测试并部署。这种技术组合为机器学习模型的实用化提供了高效解决方案,未来有望更加智能和个性化。
|
10天前
|
机器学习/深度学习 人工智能 算法
机器学习基础:使用Python和Scikit-learn入门
【4月更文挑战第9天】本文介绍了使用Python和Scikit-learn进行机器学习的基础知识和入门实践。首先,简述了机器学习的基本概念和类型。接着,展示了如何安装Python和Scikit-learn,加载与处理数据,选择模型进行训练,以及评估模型性能。通过本文,读者可了解机器学习入门步骤,并借助Python和Scikit-learn开始实践。
|
12天前
|
机器学习/深度学习 数据可视化 算法
【python】Python大豆特征数据分析 [机器学习版一](代码+论文)【独一无二】
【python】Python大豆特征数据分析 [机器学习版一](代码+论文)【独一无二】
|
29天前
|
XML 数据采集 数据格式
Python语言的结构化标志语言处理
Python语言的结构化标志语言处理
|
1月前
|
机器学习/深度学习 算法 数据挖掘
Python机器学习代码
Python机器学习代码
17 0

热门文章

最新文章