| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 深度学习入门系列4:使用keras模型与scikit-learn库进行通用机器学习 -> 正文阅读 |
|
[人工智能]深度学习入门系列4:使用keras模型与scikit-learn库进行通用机器学习 |
系列文章目录深度学习入门系列1:多层感知器概述 在Python中,scikit-learn库是通用机器学习中最流行的库。这节课你将学习在Python中如何用Keras中的scikit-learn 库来使用深度学习模型。完成这节课后,你讲了解:
让我们开始吧 1 概述Keras 是Python中一个流行的深度学习库,但是它的库目标是深度学习。实际上,它力求简单,只关注您需要的东西,让你能够快速而又简单地定义和构建深度学习模型。Python中scikit-learn 库是在Scipy上构建的,它提供了有效的数字计算。对于一般用途机器学习,它是一个功能齐全库,提供了很多在深度学习中有用的工具。至少提供了:
Keras 为深度学习模型提供便利的封装,用于在scikit-learn中的分类或回归的估计。在接下来的部分中, 我们将研究使用KerasClassifier的示例,包含在Keras创建分类神经网络并在scikit-learn库中使用。测试的问题是Pima Indians 糖尿病分类数据集。 2用交叉验证评价模型Keras 中 KerasClassifer 和 KerasRegressor类的输入参数build_fn,需要传入创建模型的函数名。不管它是定义模型,编译它还是返回它,你必须定义一个函数。在下面例子中,我们定义create_model() 函数,它针对这个问题创建一个简单的多层神经网络。 我们通过build_fn参数把函数名传给KerasClassifier类,我们也传了nb_epoch=150 和 batch_size=10其他参数。这些都是自动捆绑在一起的并传到fit() 函数,而这个函数是通过KerasClassifier 类内部调用的。在这个例子中,我们使用了scikit-learn中StratifiedKFold执行10折分层交叉验证。这是一个重采样技术,它能够在位置数据上提供一个强大的机器学习性能评估。我们使用scikit-learn中cross_val_score 函数和交叉验证模式来评价我们模型并打印出结果。
运行例子会显示所用的配置,总共有10个模型要创建和要评价并展示最后的平均精度。
与之前课程中手动折数的交叉验证相比,你能看到被封装的Keras 模型被已经被流水线化了。 3 网格搜索(Grid Search)深度学习模型的参数上面的例子展示了,封装Keras深度学习模型并在scikit-learn库的函数中使用它是多么方便。在这个例子中,我们会更进一步。我们已经知道我们可以为fit() 函数提供参数。当我们创建KerasClassifier封装器时,可以通过参数build_fn的指定函数。我们能使用这些参数进一步自定义模型结构。 在这个例子中,对于我们神经网络模型,我们使用网格搜索法评价不同配置,而且暂时最佳评估性能的组合。create_model() 函数定义了两个参数,optimizer 和init,都必须有默认值。这允许我们评估网络的不同优化算法和权重初始化模型的效果。创建模型之后,我们定义一系列我们想搜索的参数,具体地如下:
这些设置放在字典而且被传到scikit-learn 的GridSearchCV配置中。对于优化器,初始化,迭代次数,批量大小的组合,这个类将要通过每一组参数组合(2×3×3×3)评价我们的神经网络。每个组合使用默认的3-折分层交叉验证来评价。会有许多模型和计算,这不是你轻易使用的模式,因为需要花时间计算。在数据集的子集上设计一个小的实验并在合理的时间完成是非常帮助的。由于网络小,数据小,在这种情况下,这个实验是合理的(少于1000个实例和9个属性)。最后,将展示模型配置的最好性能和组合,然后是所有配置组合的性能。
这个在你的工作站的CPU上可能需要5分钟。运行例子的结果如下。我们看到使用均匀分布初始化,rmsporp优化器,150迭代次数和5批量大小网络搜索法在这个问题上获得最好的交叉验证结果大概为75%。
4 总结在这节课中,你已经学习了如何封装Keras深度学习模型并在scikit-learn 通用机器学习库中使用它们。你已经学到:
你看到了,使用scikit-learn的标准机器学习操作-如模型评估和参数优化-要比你自己实现这些模式更节省时间。 4.1 接下来你现在已经了解了如何最好集成Keras模型到scikit-learn机器学习库中。现在是时候测试你的新技能了。在接下来的几章中,你将实操并一步步的开发Keras神经网络模型,接下来从多分类问题开始。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/22 15:07:58- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |