基于Keras机器学习库的分类预测

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
简介: 在Python中如何使用Keras模型对分类、回归进行预测?本文简述了其实现原理和代码实现。

    在前面的博文中,我们分享了《基于scikit-learn机器学习库的分类预测》,本文将分享Keras机器学习库的分类预测。    

    一旦你在Keras中选择好机器学习模型,就可以用它来预测新的数据实例。初学者经常会有这样的疑问:

如何在Keras中用我自己的模型进行预测?

在本教程中,你将会发现如何在Keras Python库的机器学习模型进行分类和回归预测。文章结构如下:

1.如何构建一个模型,为预测做好准备。

2.如何在Keras库中进行类别和概率预测。

3.如何在Keras库中进行回归预测。

738a4b8df373dc063c96229b6bf9dc519d922994 

一、构建一个模型

在进行预测之前,你必须训练一个最终模型。可以使用k-fold交叉验证或训练/测试数据,对模型进行训练。这样做的目的就是为了评估模型在样本外数据上的表现及其性能,比如新的数据。

你可以在这里了解更多关于如何训练最终模型的信息:

如何训练一个最终的机器学习模型

二、对类别进行预测

分类问题,就是模型学习输入特征与输出特征之间的映射,确定某一个或多个数据实例是否为某一个类标签的问题,比如“是垃圾邮件”和“不是垃圾邮件”。

下面是在Keras中针对一个简单二元分类问题最终模型的示例代码。如何在Keras中开发一个神经网络模型,请看下面这篇文章:

手把手教你在Keras中用Python开发一个神经网络。

8596f220cbd8b8efbfb95de1f40d12b5768a7fad 

模型构建完成以后,需要将模型保存到文件中,如Keras API。保存后,你可以随时加载模型并使用它进行预测。有关这方面的详细内容,请参阅以下文章:

保存并加载你的Keras深度学习模型。

现在,我们希望用最终模型进行两种分类预测:类别预测和概率预测。

1、类别预测

类别预测就是给定最终模型和一个或多个数据实例,使用模型对预测数据实例进行分类。

首先我们并不知道新数据的类别。这就是我们需要这个模型的原因。

Keras库的最终分类模型中,使用predict_classes()函数来预测新数据实例的所属类别。请注意,predict_classes()函数仅适用于Sequential模型,并不适用于使用function API开发的模型。

例如,数组Xnew中有一个或多个数据实例,将这个(这些)实例传递给模型的predict_classes()函数,以便预测数组中每个实例所属的类别。

ccfd75abf0f1aa13128422bf4a0048bbe7820e92 

预测代码如下:

9621a0b9aed36c99406b72056184428d75dc6751 

运行上述代码,对三个新的数据实例的类别进行预测,并将新的数据实例和预测结果打印出来,如下图所示。

40754222dd2253238c57241e2c3668f82c81b2c3 

如果只有一个新的数据实例,则可以直接将放入数组中,并传递给predict_classes()函数,如下图所示。

5a31300cdf372a2273bf6b9b1b9394591a36edac 

运行该实例,并打印该实例数据和预测结果,如下图所示。

133d81945d9c9b3fbc162677e4b00d941c4e9918 

关于类别标签的注意事项

准备好数据后,可能使用过LabelEncoder将图像的类别(例如字符串型)映射为整型。也可以用LabelEncoder中的inverse_transform()函数将整型再转换回字符串型。出于这个原因,在拟合最终模型时,您可能想要在pickle库中保存用于编码输出预测结果的LabelEncoder

2、概率预测

概率预测就是预测每个数据实例所属类别的概率。给定一个或多个新实例,该模型将预测每个数据所属类别的概率,并返回01之间的某一个值。

你可以在scikit-learn中调用predict_proba()函数进行这些实例的类别概率的预测,如下图所示:

e0238a7e7006a2ae2c34f61dc597b6448dd96d9d 

在两种类别(二元)的情况下,输出层通常使用S形激活函数。预测概率用来描述实例数据属于第一类的可能性。

在多种类别的情况下,输出层通常使用softmax激活函数,并返回所属类别的可能性。

下面的代码是对数据实例数组Xnew中的每个实例进行概率预测。

5470ee985ade110d10c4901cb7f799c38735f592 

运行上述代码进行概率预测,并打印出输入数据实例以及每个实例数据属于第一类的概率。

7aae0e40685f683a159391fdc0394eb92069f2d3 

三、如何使用回归模型进行预测

回归属于监督学习,给定输入实例数据,模型学习并将数据数据映射到一个合适的输出量,例如0.10.2等。

一个Keras最终的回归模型如下所示。

6e88121077b5bf77743f30b27ad8611ec3e5ed14 

我们可以在最终模型上调用predict()函数来预测所述类别的概率。和分类一样,predict()函数将一个或多个数据实例的列表或数组作为输入。

下面的例子为在多个类别的新数据实例上进行回归预测。

5bfa4abcf3999c377b1ee29aa95c6100ea7d7d04 

运行上述代码,对多个数据实例进行预测,并将输出和预测结果打印出来,如下图所示。

cc48068a6420e5db85934df3cf5b492cabe38cc0 

将相同的函数用于适当的列表或数组中,就可以对单个数据实例进行预测,举例如下。

2eb1477b3b0751b861a6201186874853c8896b47 

运行上述代码,并打印出数据实例和预测结果,如下图所示。

fbd6e068a41e1540f137572dd098c57d8212f5bd 

拓展阅读

如果您希望深入了解使用Keras进行分类预测,请查看以下更为详细的资源:

1.如何训练一个最终的机器学习模型?

2.保存并加载Keras深度学习模型。

3.手把手教你在Keras中用Python开发一个神经网络。

4.Keras中长期短期记忆模型的5个生命周期。

6.如何在Keras中使用长时间短期记忆模型进行预测。

 

数十款阿里云产品限时折扣中,赶紧点击领劵开始云上实践吧!

以上为译文。

本文由北邮@爱可可-爱生活 老师推荐,阿里云云栖社区组织翻译。

文章原标题《How to Make Predictions with scikit-learn》,译者:Mags,审校:袁虎。

文章为简译,更为详细的内容,请查看原文 

 

相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
20天前
|
机器学习/深度学习 人工智能 自然语言处理
机器学习之线性回归与逻辑回归【完整房价预测和鸢尾花分类代码解释】
机器学习之线性回归与逻辑回归【完整房价预测和鸢尾花分类代码解释】
|
算法框架/工具 机器学习/深度学习 算法
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(三)(2)
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(三)
27 0
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(三)(2)
|
13天前
|
机器学习/深度学习 自然语言处理 算法
|
6天前
|
机器学习/深度学习 存储 算法
PYTHON集成机器学习:用ADABOOST、决策树、逻辑回归集成模型分类和回归和网格搜索超参数优化
PYTHON集成机器学习:用ADABOOST、决策树、逻辑回归集成模型分类和回归和网格搜索超参数优化
26 7
|
8天前
|
机器学习/深度学习 人工智能 算法框架/工具
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(八)(4)
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(八)
22 0
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(八)(4)
|
8天前
|
机器学习/深度学习 算法框架/工具 TensorFlow
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(七)(4)
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(七)
40 0
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(七)(4)
|
机器学习/深度学习 算法 算法框架/工具
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(七)(3)
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(七)
9 0
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(七)(3)
|
8天前
|
机器学习/深度学习 算法框架/工具 自然语言处理
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(七)(1)
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(七)
28 0
|
8天前
|
机器学习/深度学习 算法框架/工具 TensorFlow
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(五)(3)
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(五)
8 0
|
机器学习/深度学习 算法框架/工具 Python
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(五)(2)
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(五)
23 0