基于scikit-learn机器学习库的分类预测

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

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

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

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

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

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

3.如何在scikit-learn库中进行回归预测。

b534fa22f0de5d7ac737885dae6a2025d90afcec 

一、构建一个模型

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

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

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

二、 如何预测分类模型

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

下面是针对一个简单二元分类问题的Logistic回归模型的示例代码。

尽管我们在本教程中使用Logistic回归,在scikit-learn中几乎所有的分类算法中也都可以使用该函数。

338fe98bd8765a93b83165aea5640f07978840dd 

模型构建完成以后,需要将模型保存到文件中,如pickle库。保存后,你可以随时加载模型并使用它进行预测。为了简单起见,我们将跳过这一步,有关这方面的详细内容,请参阅以下文章:

scikit-learn库中如何使用Python保存并加载机器学习模型

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

1、类别预测

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

首先我们并不知道新数据的类别。这就是我们需要这个模型的原因。使用predict()函数在scikit-learn库中使用最终分类模型预测新数据实例的类。

例如,Xnew的数组中有一个或多个数据实例,将数组传递给模型的predict()函数,来预测数组中每个实例的类别。

80c5301cf58464f0416f4412b002051294296b88 

1)多个实例的类别预测

我们来举个例子,对多种类别预测进行详细论述。

0e8c96ac197582bd47f07d7b092238b56139198f 

对三个新的数据实例的类别进行预测,然后将数据实例和预测结果一起打印出来,如下图所示。

e3ae1896a7a615dd397bb22793824c84b27a373f 

2)单个实例的类别预测

如果你只有一个新的数据实例,你可以将这个实例以数组的形式传递给predict()函数,例如:

9a51a9de31dc3f3bc6fe950635b3a91ab8674380 

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

fba2c873a160d06c55ae02685171a318087b8296 

关于类别标签的注意事项

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

2、概率预测

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

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

0fd333ccf4d831369018a5257f3b45390c52d8bb 

该函数仅适用于使用大多数模型对数据实例的类别进行概率预测,这是大多数但不是全部的模型。

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

f30c0739a049aae9212456eac40e973c6ea26c59 

运行上述代码进行概率预测,然后分别打印出输入实例数据、每个实例属于第1类(用0表示)或第2类(用1表示)的概率,如下图所示。

9aaf107da9075414ccd5b48123e11f715bf084b6 

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

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

下图中的代码是一个最终化线性回归模型的示例。同样地,用于回归预测的函数也适用于scikit-learn中的所有回归模型。

b02b4afeac2a366f59ecab95c46fcdeaf4a0d313 

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

多个实例的回归预测

下面的示例是演示如何对具有未知预期结果的多个数据实例进行回归预测。

1307fd929e832789a4e5dd3d8e58fb7390d77df6 

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

87b41d8039c65f1a6289b1df7ad5cf61bf9b5c2b 

单个实例的回归预测

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

efb9a73dcafb6be310c226f68a172e5bf105d1eb

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

3d704e9a86f8d1bd75be4278066c7910aa32eeb5 

总结

阅读完本文,你已经了解了如何使用scikit-learn Python库中的机器学习最终模型进行分类和回归预测。

资源分享:

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

2.scikit-learn中使用Python保存并加载机器学习模型。

3.scikit-learn API参考。

 

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

以上为译文。

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

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

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

相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
21天前
|
机器学习/深度学习 人工智能 自然语言处理
机器学习之线性回归与逻辑回归【完整房价预测和鸢尾花分类代码解释】
机器学习之线性回归与逻辑回归【完整房价预测和鸢尾花分类代码解释】
|
1月前
|
机器学习/深度学习 数据可视化 算法
机器学习中的分类问题:如何选择和理解性能衡量标准
机器学习中的分类问题:如何选择和理解性能衡量标准
机器学习中的分类问题:如何选择和理解性能衡量标准
|
13天前
|
机器学习/深度学习 自然语言处理 算法
|
6天前
|
机器学习/深度学习 存储 算法
PYTHON集成机器学习:用ADABOOST、决策树、逻辑回归集成模型分类和回归和网格搜索超参数优化
PYTHON集成机器学习:用ADABOOST、决策树、逻辑回归集成模型分类和回归和网格搜索超参数优化
26 7
|
1月前
|
机器学习/深度学习 算法
机器学习的魔法(二)超越预测的界限-揭秘机器学习的黑科技-探索监督学习中的回归和分类问题
机器学习的魔法(二)超越预测的界限-揭秘机器学习的黑科技-探索监督学习中的回归和分类问题
131 0
|
1月前
|
机器学习/深度学习 算法
机器学习与深度学习的算法分类
机器学习与深度学习的算法分类
|
2月前
|
机器学习/深度学习 自然语言处理 算法
如何利用机器学习算法提高分类准确率
【2月更文挑战第7天】机器学习在现代科技中扮演着重要的角色。分类是其中一种基本的机器学习任务,而分类准确率是衡量分类模型好坏的重要指标。本文将介绍如何利用机器学习算法来提高分类准确率。
25 0
|
2月前
|
机器学习/深度学习 数据采集 自然语言处理
编写员工聊天监控软件的机器学习模块:Scikit-learn在行为分析中的应用
随着企业对员工行为监控的需求增加,开发一种能够自动分析员工聊天内容并检测异常行为的软件变得愈发重要。本文介绍了如何使用机器学习模块Scikit-learn来构建这样一个模块,并将其嵌入到员工聊天监控软件中。
162 3
|
2月前
|
机器学习/深度学习 数据采集 算法
GEE机器学习——利用支持向量机SVM进行土地分类和精度评定
GEE机器学习——利用支持向量机SVM进行土地分类和精度评定
71 0
|
3月前
|
机器学习/深度学习 Python
Scikit-Learn 高级教程——自动化机器学习
Scikit-Learn 高级教程——自动化机器学习【1月更文挑战第20篇】
62 2

热门文章

最新文章