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

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

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

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

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

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

一、构建一个模型

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

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

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

äºã如何预测分类模型

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

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

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

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

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

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

1、类别预测

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

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

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

(1)多个实例的类别预测

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

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

(2)单个实例的类别预测

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

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

关于类别标签的注意事项

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

2、概率预测

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

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

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

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

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

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

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

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

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

多个实例的回归预测

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

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

单个实例的回归预测

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

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

总结

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

资源分享:

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

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

3.scikit-learn API参考。

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

以上为译文。

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

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

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

基于scikit-learn机器学习库的分类预测相关推荐

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

    在前面的博文中,我们分享了<基于scikit-learn机器学习库的分类预测>,本文将分享Keras机器学习库的分类预测. 一旦你在Keras中选择好机器学习模型,就可以用它来预测新的数据 ...

  2. 基于统计概率和机器学习的文本分类技术

    基于统计概率和机器学习的文本分类技术 -- 社区产品机器审核机制 一.现状 目前,所在公司社区类产品(论坛.博客.百科)每天都会接收到大量的垃圾.灌水信息,高峰期16小时内(晚6点以后到第二天9点前) ...

  3. 基于统计概率和机器学习的文本分类技术 —— 社区产品机器审核机制预研报告...

    [align=center][size=x-large]基于统计概率和机器学习的文本分类技术[/size][/align] [size=large][align=center]-- 社区产品机器审核机 ...

  4. 【数据分析与挖掘】基于LightGBM,XGBoost,逻辑回归的分类预测实战:英雄联盟数据(有数据集和代码)

    机器学习-LightGBM 一.LightGBM的介绍与应用 1.1 LightGBM的介绍 1.2 LightGBM的应用 二.数据集来源 三.基于英雄联盟数据集的LightGBM分类实战 Step ...

  5. ML之分类预测:机器学习中多分类预测数据集可视化(不同类别赋予不同颜色)设计思路及代码实现

    ML之分类预测:机器学习中多分类预测数据集可视化(不同类别赋予不同颜色)设计思路及代码实现 目录 机器学习中多分类预测数据集可视化(不同类别赋予不同颜色)设计思路及代码实现 代码实现

  6. 【人工智能项目】- 机器学习实现收入分类预测报告

    [人工智能项目]- 机器学习实现收入分类预测报告 题目 利用age.workclass.-.native_country等13个特征预测收入是否超过50k,是一个二分类问题. 训练集 32561个样本 ...

  7. 机器学习与Scikit Learn学习库

    摘要: 本文介绍机器学习相关的学习库Scikit Learn,包含其安装及具体识别手写体数字案例,适合机器学习初学者入门Scikit Learn. 在我科研的时候,机器学习(ML)是计算机科学领域中最 ...

  8. python笔迹识别_python_基于Scikit learn库中KNN,SVM算法的笔迹识别

    之前我们用自己写KNN算法[网址]识别了MNIST手写识别数据 [数据下载地址] 这里介绍,如何运用Scikit learn库中的KNN,SVM算法进行笔迹识别. 数据说明: 数据共有785列,第一列 ...

  9. 基于卷积神经网络CNN的水果分类预测,卷积神经网络水果等级识别

    目录 背影 卷积神经网络CNN的原理 卷积神经网络CNN的定义 卷积神经网络CNN的神经元 卷积神经网络CNN的激活函数 卷积神经网络CNN的传递函数 卷积神经网络CNN水果分类预测 基本结构 主要参 ...

最新文章

  1. oracle 关闭audit,关于Oracle审计(audit)
  2. java语言文本挖掘 分词_文本挖掘分词mapreduce化
  3. 华农oj Problem K: 负2进制【有技巧构造/待补】
  4. 如何使用 SAP API Portal Policy Editor 给 SAP API 调用自动添加认证信息
  5. 关于车机互联方式的一点想法
  6. Java设计模式、框架、架构、平台之间的关系
  7. oracle批量更新数据从另一表_【案例】Oracle t-sql 更新大批量数据 更新两张大数据表案例...
  8. Android ListView中EditView再次焦点获取
  9. 苹果mac视频剪辑软件:Final Cut Pro
  10. 四、Hyper-v Server 2008r2 设置远程管理
  11. 《产品经理面试攻略》PART 9:HR面试题
  12. u盘怎样修复服务器系统,高手教你怎么修复U盘的MBR
  13. 移动端设计的基础尺寸单位与转化
  14. 【C语言】把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。
  15. 电商项目:高仿小米商城(一)
  16. 改图片分辨率怎么改?教你一招一分钟修改图片dpi
  17. 服务器响应码418,HTTP状态码是什么?与SEO相关的有哪些?
  18. uc浏览器设置里面的的浏览器ua是什么意思
  19. 模板引擎--新闻案例
  20. emqttd配置_EMQ(emqttd)的介绍和安装

热门文章

  1. Mysql数据库正则表达式
  2. Docker Kafka 单机版安装
  3. 面试官问:跨域请求如何携带cookie?
  4. 【AtCoder】ARC095 E - Symmetric Grid 模拟
  5. 解决git提交问题error: The requested URL returned error: 403 Forbidden while accessing
  6. 检查你的项目的引用包依赖关系
  7. 添加Chrome插件(Github上下载的压缩文件)
  8. Python打包方法基本应用方式介绍
  9. pom.xml配置详解
  10. 如何使用 Barracuda 防火墙设置/保护 Azure 应用程序