0

0

使用Scikit-Learn,快速掌握机器学习预测方法

王林

王林

发布时间:2023-05-27 14:26:03

|

1687人浏览过

|

来源于51CTO.COM

转载

在本文中,我们将讨论预测函数的区别和它们的用途。

在机器学习中,predict和predict_proba、predict_log_proba和decision_function方法都是用来根据训练好的模型进行预测的。

predict方法

使用predict方法可进行二元分类或多元分类预测,输出预测标签。例如,如果你已经训练了一个逻辑回归模型来预测一个客户是否会购买产品,则可以使用predict方法来预测一个新客户是否会购买产品。

我们将使用来自scikit-learn的乳腺癌数据集。这个数据集包含了肿瘤观察结果和肿瘤是恶性还是良性的相应标签。

import numpy as npfrom sklearn.svm import SVCfrom sklearn.preprocessing import StandardScalerfrom sklearn.pipeline import make_pipelineimport matplotlib.pyplot as pltfrom sklearn.datasets import load_breast_cancer# 加载数据集dataset = load_breast_cancer(as_frame=True)# 创建特征和目标X = dataset['data']y = dataset['target']# 将数据集分割成训练集和测试集from sklearn.model_selection import train_test_splitX_train, X_test, y_train, y_test = train_test_split(X, y , test_size=0.25, random_state=0)# 我们创建一个简单的管道来规范数据并使用`SVC`分类器训练模型svc_clf = make_pipeline(StandardScaler(),SVC(max_iter=1000, probability=True))svc_clf.fit(X_train, y_train)
# 我们正在预测X_test的第一个条目print(svc_clf.predict(X_test[:1]))
# 预测X_test的第一个条目属于哪一类[0]

predict_proba方法

使用predict_proba函数可以对每个类别进行概率预测,并返回所可能的每个类别标签的概率估计。在二元或多元分类问题中,通常采用这种方法以确定每种可能结果的概率。例如,如果你已经训练了一个模型,将动物的图像分为猫、狗和马,你可以使用predict_proba方法来获得每个类别标签的概率估计。

百度智能云·曦灵
百度智能云·曦灵

百度旗下的AI数字人平台

下载
print(svc_clf.predict_proba(X_test[:1]))
[[0.99848307 0.00151693]]

predict_log_proba方法

predict_log_proba方法与predict_proba类似,但它返回概率估计值的对数,而不是原始概率。这对处理极小或极大的概率值是十分实用的,因为可以避免数值下溢或溢出的问题。

print(svc_clf.predict_log_proba(X_test[:1]))
[[-1.51808474e-03 -6.49106473e+00]]

decision_function方法

Linear binary classification models can utilize the decision_function method.。它会针对每个输入数据点生成一个分数,这个分数可用于推测其对应的类别标签。可以根据应用或领域知识来设置将数据点分类为正或负的阈值。

print(svc_clf.decision_function(X_test[:1]))
[-1.70756057]

总结

  • 当你想要得到输入数据的预测类标签时,对二元或多元分类问题使用predict。
  • 当你想要获得每个可能的类别标签的概率估计值时,请使用predict_proba处理二元或多元分类问题。
  • 当你需要处理非常小或非常大的概率值时,或者当你想要避免数字下溢或溢出问题时,请使用predict_log_proba。
  • 当你想获得每个输入数据点的分数时,使用decision_function处理线性模型的二元分类问题。

注意:某些分类器的预测方法可能不完整或需要额外参数才能访问函数。例如:SVC需要将概率参数设置为True,才能使用概率预测。

相关专题

更多
Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

37

2026.01.14

php与html混编教程大全
php与html混编教程大全

本专题整合了php和html混编相关教程,阅读专题下面的文章了解更多详细内容。

19

2026.01.13

PHP 高性能
PHP 高性能

本专题整合了PHP高性能相关教程大全,阅读专题下面的文章了解更多详细内容。

37

2026.01.13

MySQL数据库报错常见问题及解决方法大全
MySQL数据库报错常见问题及解决方法大全

本专题整合了MySQL数据库报错常见问题及解决方法,阅读专题下面的文章了解更多详细内容。

19

2026.01.13

PHP 文件上传
PHP 文件上传

本专题整合了PHP实现文件上传相关教程,阅读专题下面的文章了解更多详细内容。

16

2026.01.13

PHP缓存策略教程大全
PHP缓存策略教程大全

本专题整合了PHP缓存相关教程,阅读专题下面的文章了解更多详细内容。

6

2026.01.13

jQuery 正则表达式相关教程
jQuery 正则表达式相关教程

本专题整合了jQuery正则表达式相关教程大全,阅读专题下面的文章了解更多详细内容。

3

2026.01.13

交互式图表和动态图表教程汇总
交互式图表和动态图表教程汇总

本专题整合了交互式图表和动态图表的相关内容,阅读专题下面的文章了解更多详细内容。

45

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

9

2026.01.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
CSS3 教程
CSS3 教程

共18课时 | 4.5万人学习

PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.1万人学习

Git 教程
Git 教程

共21课时 | 2.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号