掌握Scikit-Learn中的机器学习预测法,了解
predict
、predict_proba
、predict_log_proba
和decision_function
方法。
微信搜索关注《Python学研大本营》,加入读者群,分享更多精彩
在本文中,我们将讨论预测函数的区别和它们的用途。
在机器学习中,
predict
和predict_proba
、predict_log_proba
和decision_function
方法都是用来根据训练好的模型进行预测的。
predict
方法
predict
方法用于进行二元分类或多元分类预测,并返回输入数据的预测类标签。例如,如果你已经训练了一个逻辑回归模型来预测一个客户是否会购买产品,则可以使用predict
方法来预测一个新客户是否会购买产品。
我们将使用来自scikit-learn
的乳腺癌数据集。这个数据集包含了肿瘤观察结果和肿瘤是恶性还是良性的相应标签。
import numpy as np
from sklearn.svm import SVC
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import make_pipeline
import matplotlib.pyplot as plt
from 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_split
X_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
方法来获得每个类别标签的概率估计。
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
方法
decision_function
方法用于线性模型的二元分类问题。它为每个输入的数据点返回一个分数,该分数可用于确定类别标签的预测。可以根据应用或领域知识来设置将数据点分类为正或负的阈值。
print(svc_clf.decision_function(X_test[:1]))
[-1.70756057]
总结
-
当你想要得到输入数据的预测类标签时,对二元或多元分类问题使用
predict
。 -
当你想要获得每个可能的类别标签的概率估计值时,请使用
predict_proba
处理二元或多元分类问题。 -
当你需要处理非常小或非常大的概率值时,或者当你想要避免数字下溢或溢出问题时,请使用
predict_log_proba
。 -
当你想获得每个输入数据点的分数时,使用
decision_function
处理线性模型的二元分类问题。
注意:有些分类器没有所有的预测方法或需要额外的参数来访问函数。例如:SVC
需要将概率参数设置为True
,才能使用概率预测。
推荐书单
《TensorFlow机器学习项目开发实战》
《TensorFlow机器学习项目开发实战》详细阐述了与TensorFlow项目开发相关的基本解决方案,主要包括TensorFlow和机器学习概述、利用机器学习探测外太空中的系外行星、情感分析、数字分类、语音到文本的转换、预测股票价格、信用卡欺诈检测、贝叶斯深度学习、图像匹配和分类、推荐系统、大规模对象检测、生成图书脚本、深度强化学习与游戏、部署机器学习模型等内容。
此外,《TensorFlow机器学习项目开发实战》还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。
《TensorFlow机器学习项目开发实战》既可作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学教材和参考手册。
精彩回顾
《4步掌握“指令工程”,使用ChatGPT进行高效AI创作》
《使用TensorFlow和Keras创建猫狗图片深度学习分类器》
微信搜索关注《Python学研大本营》,加入读者群
访问【IT今日热榜】,发现每日技术热点