机器学习第13天:模型性能评估指标

简介: 机器学习第13天:模型性能评估指标



交叉验证

保留交叉验证

介绍

将数据集划分为两部分,训练集与测试集,这也是简单任务中常用的方法,其实没有很好地体现交叉验证的思想

使用代码

# 导入库
from sklearn.model_selection import train_test_split
 
 
# 划分训练集与测试集,参数分别为总数据集,测试集的比例
train, test = train_test_split(data, test_size=0.2)

k-折交叉验证

介绍

将数据集划分为k个子集,每次采用k-1个子集作为训练集,剩下的一个作为测试集,然后再重新选择,使每一个子集都做一次测试集,所以整个过程总共训练k次,得到k组结果,最后将这k组结果取平均,得到最终结果,这就是交叉验证的思想

使用代码

# 导入库
from sklearn.model_selection import KFold
from sklearn.model_selection import cross_val_score
 
 
# 设置K值,这里假设K=5
k_fold = KFold(n_splits=5, shuffle=True, random_state=42)
 
# 初始化模型,这里以随机森林为例
model = RandomForestClassifier()
 
# 使用K折交叉验证
scores = cross_val_score(model, X, y, cv=k_fold)

留一交叉验证

介绍

与k折验证思想一致,只是子集的数量和数据集的大小一样,往往在数据集较小的时候使用这种方法

混淆矩阵

介绍

在分类任务中,我们可以用混淆矩阵来判断模型的性能,混淆矩阵记录了A类被分为B类的次数,以下是一个动物识别任务的混淆矩阵,要知道cat被预测成了几次dog,那么就查看混淆矩阵的第1行第2列

使用代码

# 导入库
from sklearn.metrics import confusion_matrix
 
 
# 打印混淆矩阵,参数为真实结果与预测结果
print(confusion_matrix(y, y_pred))

精度与召回率

介绍

要解释精度与召回率,我们先定义几个量

TP:模型预测为正且真实值为正的数量

FP:模型预测为正且真实值为负的数量

FN:模型预测为负且真实值为正的数量

精度

精度就是模型正确预测的正类在所有预测为正类中的比例

召回率

召回率就是模型正确预测的正类在所有正类中的比例

区别

可能还是有点混淆?其实精度高就是宁愿不预测,也不愿意预测错,召回率高就是宁愿预测错,也不愿意遗漏正类,我们具体来看两个场景

在地震预测中,我们是要提高召回率还是精度?显而易见,召回率,因为我们宁愿预测器错误地提醒我们,也不愿意当地震来临时它不报警

那么在食品检测中呢?当然要提高精度,因为我们宁愿健康的食品被误判为不合格,也不愿意有不合格的食品进入市场

召回率与精度两个指标不可兼得,我们要根据具体任务做出取舍

使用代码

# 导入库
from sklearn.metrics import precision_score, recall_score
 
 
# 使用精度评估函数,参数是真实结果与预测结果
print(precision_score(y, y_pred))
 
# 使用召回率评估函数,参数是真实结果与预测结果
print(recall_score(y, y_pred))

偏差与方差

介绍

偏差衡量一个模型预测结果和真实值的差距,偏差高往往代表模型欠拟合

方差衡量模型在不同数据集上预测的差异,方差高往往代表模型过拟合

区别

具有高偏差的模型对训练数据和新数据的表现都较差,因为它们未能捕捉到数据的复杂性。

具有高方差的模型在训练数据上可能表现得很好,但对新数据的泛化能力差,因为它们过于依赖于训练数据的细节。

结语

机器学习模型性能测量对于评估模型的质量、选择最佳模型、调整模型超参数以及在实际应用中预测新数据都具有重要意义。

  1. 评估模型质量: 通过性能测量,你可以了解模型在训练数据上的表现如何。这有助于判断模型是否足够复杂以捕捉数据中的模式,同时又不过度拟合训练数据。
  2. 选择最佳模型: 在比较不同模型时,性能测量是选择最佳模型的关键因素。你可以通过比较模型在相同任务上的性能指标来确定哪个模型更适合你的问题。
  3. 调整模型超参数: 通过观察模型在不同超参数设置下的性能,你可以调整超参数以提高模型的性能。性能测量可以指导你在超参数搜索空间中寻找最佳设置。
  4. 评估泛化能力: 模型在训练数据上表现良好并不一定意味着它在新数据上也能表现良好。性能测量帮助你评估模型的泛化能力,即模型对未见过的数据的预测能力。
  5. 支持业务决策: 在实际应用中,模型的性能直接关系到业务的决策。例如,在医疗领域,一个精确的疾病预测模型可能影响患者的治疗计划。
  6. 改进模型: 通过分析性能测量的结果,你可以识别模型的弱点,并采取相应的措施来改进模型,例如增加训练数据、特征工程、选择更合适的模型等。

觉得有用的话就订阅下本专栏吧,感谢阅读

相关文章
|
26天前
|
人工智能 JSON 算法
Qwen2.5-Coder 系列模型在 PAI-QuickStart 的训练、评测、压缩及部署实践
阿里云的人工智能平台 PAI,作为一站式、 AI Native 的大模型与 AIGC 工程平台,为开发者和企业客户提供了 Qwen2.5-Coder 系列模型的全链路最佳实践。本文以Qwen2.5-Coder-32B为例,详细介绍在 PAI-QuickStart 完成 Qwen2.5-Coder 的训练、评测和快速部署。
Qwen2.5-Coder 系列模型在 PAI-QuickStart 的训练、评测、压缩及部署实践
|
10天前
|
编解码 机器人 测试技术
技术实践 | 使用 PAI+LLaMA Factory 微调 Qwen2-VL 模型快速搭建专业领域知识问答机器人
Qwen2-VL是一款具备高级图像和视频理解能力的多模态模型,支持多种语言,适用于多模态应用开发。通过PAI和LLaMA Factory框架,用户可以轻松微调Qwen2-VL模型,快速构建文旅领域的知识问答机器人。本教程详细介绍了从模型部署、微调到对话测试的全过程,帮助开发者高效实现定制化多模态应用。
|
19天前
|
机器学习/深度学习 人工智能 算法
人工智能浪潮下的编程实践:构建你的第一个机器学习模型
在人工智能的巨浪中,每个人都有机会成为弄潮儿。本文将带你一探究竟,从零基础开始,用最易懂的语言和步骤,教你如何构建属于自己的第一个机器学习模型。不需要复杂的数学公式,也不必担心编程难题,只需跟随我们的步伐,一起探索这个充满魔力的AI世界。
36 12
|
26天前
|
机器学习/深度学习 Python
机器学习中评估模型性能的重要工具——混淆矩阵和ROC曲线。混淆矩阵通过真正例、假正例等指标展示模型预测情况
本文介绍了机器学习中评估模型性能的重要工具——混淆矩阵和ROC曲线。混淆矩阵通过真正例、假正例等指标展示模型预测情况,而ROC曲线则通过假正率和真正率评估二分类模型性能。文章还提供了Python中的具体实现示例,展示了如何计算和使用这两种工具来评估模型。
46 8
|
26天前
|
机器学习/深度学习 算法 UED
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法。本文介绍 A/B 测试的基本概念、步骤及其在模型评估、算法改进、特征选择和用户体验优化中的应用,同时提供 Python 实现示例,强调其在确保项目性能和用户体验方面的关键作用。
29 6
|
26天前
|
机器学习/深度学习 算法 数据挖掘
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
78 4
|
5天前
|
算法
PAI下面的gbdt、xgboost、ps-smart 算法如何优化?
设置gbdt 、xgboost等算法的样本和特征的采样率
21 2
|
22天前
|
机器学习/深度学习 算法 数据挖掘
C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出
本文探讨了C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出。文章还介绍了C语言在知名机器学习库中的作用,以及与Python等语言结合使用的案例,展望了其未来发展的挑战与机遇。
39 1
|
1月前
|
机器学习/深度学习 自然语言处理 算法
深入理解机器学习算法:从线性回归到神经网络
深入理解机器学习算法:从线性回归到神经网络
|
1月前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
85 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型