基于Keras机器学习库的分类预测
在前面的博文中,我们分享了《基于scikit-learn机器学习库的分类预测》,本文将分享Keras机器学习库的分类预测。
一旦你在Keras中选择好机器学习模型,就可以用它来预测新的数据实例。初学者经常会有这样的疑问:
如何在Keras中用我自己的模型进行预测?
在本教程中,你将会发现如何在Keras Python库的机器学习模型进行分类和回归预测。文章结构如下:
1.如何构建一个模型,为预测做好准备。
2.如何在Keras库中进行类别和概率预测。
3.如何在Keras库中进行回归预测。
一、构建一个模型
在进行预测之前,你必须训练一个最终模型。你可以使用k-fold交叉验证或训练/测试数据,对模型进行训练。这样做的目的就是为了评估模型在样本外数据上的表现及其性能,比如新的数据。
你可以在这里了解更多关于如何训练最终模型的信息:
如何训练一个最终的机器学习模型?
二、对类别进行预测
分类问题,就是模型学习输入特征与输出特征之间的映射,确定某一个或多个数据实例是否为某一个类标签的问题,比如“是垃圾邮件”和“不是垃圾邮件”。
下面是在Keras中针对一个简单二元分类问题最终模型的示例代码。如何在Keras中开发一个神经网络模型,请看下面这篇文章:
手把手教你在Keras中用Python开发一个神经网络。
模型构建完成以后,需要将模型保存到文件中,如Keras API。保存后,你可以随时加载模型并使用它进行预测。有关这方面的详细内容,请参阅以下文章:
保存并加载你的Keras深度学习模型。
现在,我们希望用最终模型进行两种分类预测:类别预测和概率预测。
1、类别预测
类别预测就是给定最终模型和一个或多个数据实例,使用模型对预测数据实例进行分类。
首先我们并不知道新数据的类别。这就是我们需要这个模型的原因。
在Keras库的最终分类模型中,使用predict_classes()函数来预测新数据实例的所属类别。请注意,predict_classes()函数仅适用于Sequential模型,并不适用于使用function API开发的模型。
例如,数组Xnew中有一个或多个数据实例,将这个(这些)实例传递给模型的predict_classes()函数,以便预测数组中每个实例所属的类别。
预测代码如下:
运行上述代码,对三个新的数据实例的类别进行预测,并将新的数据实例和预测结果打印出来,如下图所示。
如果只有一个新的数据实例,则可以直接将放入数组中,并传递给predict_classes()函数,如下图所示。
运行该实例,并打印该实例数据和预测结果,如下图所示。
关于类别标签的注意事项
准备好数据后,可能使用过LabelEncoder将图像的类别(例如字符串型)映射为整型。也可以用LabelEncoder中的inverse_transform()函数将整型再转换回字符串型。出于这个原因,在拟合最终模型时,您可能想要在pickle库中保存用于编码输出预测结果的LabelEncoder。
2、概率预测
概率预测就是预测每个数据实例所属类别的概率。给定一个或多个新实例,该模型将预测每个数据所属类别的概率,并返回0和1之间的某一个值。
你可以在scikit-learn中调用predict_proba()函数进行这些实例的类别概率的预测,如下图所示:
在两种类别(二元)的情况下,输出层通常使用S形激活函数。预测概率用来描述实例数据属于第一类的可能性。
在多种类别的情况下,输出层通常使用softmax激活函数,并返回所属类别的可能性。
下面的代码是对数据实例数组Xnew中的每个实例进行概率预测。
运行上述代码进行概率预测,并打印出输入数据实例以及每个实例数据属于第一类的概率。
三、如何使用回归模型进行预测
回归属于监督学习,给定输入实例数据,模型学习并将数据数据映射到一个合适的输出量,例如0.1,0.2等。
一个Keras最终的回归模型如下所示。
我们可以在最终模型上调用predict()函数来预测所述类别的概率。和分类一样,predict()函数将一个或多个数据实例的列表或数组作为输入。
下面的例子为在多个类别的新数据实例上进行回归预测。
运行上述代码,对多个数据实例进行预测,并将输出和预测结果打印出来,如下图所示。
将相同的函数用于适当的列表或数组中,就可以对单个数据实例进行预测,举例如下。
运行上述代码,并打印出数据实例和预测结果,如下图所示。
拓展阅读
如果您希望深入了解使用Keras进行分类预测,请查看以下更为详细的资源:
1.如何训练一个最终的机器学习模型?
2.保存并加载Keras深度学习模型。
3.手把手教你在Keras中用Python开发一个神经网络。
4.Keras中长期短期记忆模型的5个生命周期。
6.如何在Keras中使用长时间短期记忆模型进行预测。
数十款阿里云产品限时折扣中,赶紧点击领劵开始云上实践吧!
以上为译文。
本文由北邮@爱可可-爱生活 老师推荐,阿里云云栖社区组织翻译。
文章原标题《How to Make Predictions with scikit-learn》,译者:Mags,审校:袁虎。
文章为简译,更为详细的内容,请查看原文。
基于Keras机器学习库的分类预测相关推荐
- 基于scikit-learn机器学习库的分类预测
一旦你在scikit-learn中选择好机器学习模型,就可以用它来预测新的数据实例.初学者经常会有这样的疑问: 如何在scikit-learn中用我自己的模型进行预测? 在本教程中,你将会发现如何在P ...
- 机器学习算法(五):基于企鹅数据集的决策树分类预测
机器学习算法(五):基于企鹅数据集的决策树分类预测 1 逻决策树的介绍和应用 1.1 决策树的介绍 决策树是一种常见的分类模型,在金融风控.医疗辅助诊断等诸多行业具有较为广泛的应用.决策树的核心思想是 ...
- 基于Keras的LSTM多变量时间序列预测(北京PM2.5数据集pollution.csv)
基于Keras的LSTM多变量时间序列预测 传统的线性模型难以解决多变量或多输入问题,而神经网络如LSTM则擅长于处理多个变量的问题,该特性使 ...
- 【Deep Learning】基于 Keras 的猫狗分类识别
基于 Keras 的猫狗分类识别 更新: 本文代码github连接:https://github.com/Sdamu/Keras_pratice 本篇主要实现利用 Keras 来实现 Kaggl ...
- 基于keras的CNN图片分类模型的搭建以及参数调试
基于keras的CNN图片分类模型的搭建与调参 更新一下这篇博客,因为最近在CNN调参方面取得了一些进展,顺便做一下总结. 我的项目目标是搭建一个可以分五类的卷积神经网络,然后我找了一些资料看了一些博 ...
- 【Matlab】基于决策树DT实现多分类预测(Excel可直接替换数据)
[Matlab]基于决策树DT实现多分类预测(Excel可直接替换数据)) 1.算法简介 1.1 算法原理 1.2 算法优点 1.3 算法缺点 1.4 算法步骤 2.测试数据集 3.替换数据 4.混淆 ...
- 基于Keras搭建cifar10数据集训练预测Pipeline
基于Keras搭建cifar10数据集训练预测Pipeline 钢笔先生关注 0.5412019.01.17 22:52:05字数 227阅读 500 Pipeline 本次训练模型的数据直接使用Ke ...
- ML之分类预测:机器学习中多分类预测数据集可视化(不同类别赋予不同颜色)设计思路及代码实现
ML之分类预测:机器学习中多分类预测数据集可视化(不同类别赋予不同颜色)设计思路及代码实现 目录 机器学习中多分类预测数据集可视化(不同类别赋予不同颜色)设计思路及代码实现 代码实现
- DL之LSTM:基于《wonderland爱丽丝梦游仙境记》小说数据集利用LSTM算法(层加深,基于keras)对单个character字符预测
DL之LSTM:基于<wonderland爱丽丝梦游仙境记>小说数据集利用LSTM算法(层加深,基于keras)对单个character字符预测 目录 基于<wonderland爱丽 ...
最新文章
- 在闲鱼传疯了,某大厂P8面试题库泄漏!
- 重工行业:IT运维精细化管理新篇章
- 机房收费系统=三层+设计模式
- 30分钟LINQ教程【转】
- Stark 组件:快速开发神器 —— 页面显示
- 疼恨皇明热水器的无耻!
- 服务器系统扩展c盘,云服务器c盘扩展
- java 字符串模糊匹配_Java实现伪查询(全匹配+模糊匹配)
- 【MATLAB统计分析与应用100例】案例012:matlab读取Excel数据,调用robustfit函数作稳健回归
- Linux学习总结(38)——Linux超实用的30个命令
- JAVA多线程--线程阻塞与唤醒
- 一个优雅地探索相关性的新可视化方法
- 【SSM分布式架构电商项目-32】Dubbo入门
- 《最受欢迎的男友职业排行榜Top10》
- 汇编指令-bic(位清除)、orr(位或)(3)
- 计算机更改刷新频率,电脑屏幕刷新率怎么调节?怎么更改电脑屏幕刷新率?
- DeviceIOControl具体解释-各个击破
- 为什么SAST和SCA在SDLC中很重要?
- Gamma校正与线性空间
- css背景透明(css背景透明度怎么设置)
热门文章
- 函数在区间连续可以推出什么_A-22 函数的点连续、单侧连续、区间连续
- 关于php反射机制的一些理解
- mysql.sys用户权限_MySQL用户及权限小结
- python爬取论文代码_Python selenium爬取微信公众号文章代码详解
- 使用Android Studio打包app
- php mime base64,base64_encode — 使用 MIME base64 对数据进行编码
- 圆柱属于能滚动的物体吗_小班科学领域详细教案:会滚动的物体
- 教资支付显示找不到服务器,教师资格证报名支付的问题,点了支付总是找不到服..._教师资格考试_帮考网...
- linux如何打开url,用于打开URL的命令?
- 16查看走线长度_糟糕!丝印放到表层走线上面啦