使用 scikit-learn 玩转机器学习——模型评价(下)

简介: 对于分类模型来说,我们一般会用模型的准确率来进行模型的评价,模型的准确率是用预测正确的样本数除以模型的总数。如果一个模型的准确率达到了95%,那么在我们的印象中,是不是这个模型表现的还挺不错的,那如果达到了99%呢,岂不是更好?

精准率是TP值与TP值和FP值的和的比值,在上例中表示预测对的中奖人数占按预测应该中奖的人数的比值,表示如下:



召回率是TP值与TP值和FN值的和的比值,在上例中表示预测对的中奖人数占实际中奖人数的比率,表示如下:



然后我们可以得到我们所据上述例子中的混淆矩阵:

31.jpg根据精准率和召回率的定义可得, 出现除0情况而无意义,,召回率为0,根据召回率的定义也可知,召回率表示的是对于特定的目标群,预测正确的比率。完美的解决了准确率在偏斜数据中不作为的问题。


在不同的应用场景下,我们通常会关注不同的指标,因为有些时候精准率更为重要,有些时候召回率更为重要。为了同时权衡这两个指标的重要性,就出现了 F1 Score,表达式如下:



由上式我们可以看出,F1 Score 其实就是精准率与召回率的调和平均值,因为召回率和精准率都大于0,由极限的性质可知,只有精准率和召回率都打的时候,F1 Score 才会比较大。


说到 ROC 曲线(Receiver Operating Characteristic, 受试者工作特性曲线),就得从 TPR 和 FPR,其分别表示 被正确预测的目标类别占目标类别的比率,和被错误的预测为目标类表占非目标类别的比率。其分别对应的表格和表达式如下:


32.jpg33.jpg


OC 曲线源于二战中用于敌机检测的雷达信号分析技术,后来才被引入机器学习领域。在进行机器学习模型的比较时,如果一个模型的 ROC 曲线被另一个模型的曲线完全包住,则可断言后者的性能优于前者;若两个模型的 ROC 曲线发生交叉,则在一般情况下很难判定2个模型孰优孰劣,这时,一种较为合理的评比标准便是比较这两个 ROC 曲线之下的面积,即 AUC(Area under curve)。


接下来我们用代码来具体的实现下相关的评判标准和判别式。


引入必要的包 -> 调用数据集 -> 使数据集中不同类别数量偏斜 -> 分离训练、测试数据集 -> 实例化一个逻辑回归模型 -> 预测并求出模型准确率

34.jpg


为增加我们对上述有关术语和评判标准的感性认识,我们具体实现了下一些函数,如下:

35.jpg36.jpg


当然了,如果每次使用精准率和召回率时都要自己亲手撸出来可能骚微还是有一些的麻烦,不过 贴心的 scikit-learn 找就为我们准备好了一切,在 metrics 中封装了所有我们在上述实现的度量,如下是调用演示:

37.jpg

对于机器学习模型的性能而言,不光是各样本的特征系数,而且阈值(或称之为截距)的取法对其也有着重要的影响。如下代码是用于绘制精准率与召回率和阈值取值的关系,并绘出其图形:

38.jpg


PR 曲线对研究机器学习模型也有着重要的作用,我们也可以从 scikit-learn 中调用相关的函数来绘制 PR 曲线,如下:

39.jpg


绘制出 ROC 曲线:

40.jpg

ROC 曲线和 PR 曲线有着很强的相似性,因为这两图的各自的两个指标的取值范围都是0到1,因此都可以用曲线与 y=0 围成的面积可以用来表征模型的优劣,且用面积作为指标来衡量模型优劣对指标某个部分的具体变化不敏感,稳定性更强。关于以上所有概念更为严谨和全面的定义和证明请参考周大佬的西瓜书。

相关文章
|
5天前
|
机器学习/深度学习 数据挖掘 数据处理
构建高效机器学习模型的五大策略
【5月更文挑战第31天】 在数据驱动的时代,机器学习已成为创新的核心动力。本文将深入探讨如何构建高效的机器学习模型,涵盖数据处理、特征工程、模型选择、调参技巧及模型评估五个关键策略。不同于常规摘要的形式,我们将通过具体实例和案例分析,提供一套实操性强的方法论,帮助读者在实际工作中提升模型性能,解决业务问题。
|
5天前
|
机器学习/深度学习 运维 Cloud Native
构建未来:云原生架构在企业数字化转型中的关键作用构建高效机器学习模型的五大策略
【5月更文挑战第31天】 随着企业数字化进程的加速,传统的IT架构日益显示出其局限性。本文将探讨云原生架构如何成为推动企业敏捷性、可扩展性和创新能力的核心力量。通过深入分析云原生技术的基本原理及其在业务连续性、资源优化和跨云协作方面的应用,揭示了其在实现高效、灵活的企业IT环境中所扮演的角色。
|
6天前
|
机器学习/深度学习 数据采集 监控
构建高效机器学习模型的五大技巧
【5月更文挑战第30天】 在数据驱动的时代,机器学习已成为创新的核心动力。本文将深入探讨如何优化机器学习模型的性能和效率。我们将摒弃传统的摘要形式,直接切入主题,通过五个关键的技巧来提升模型质量:数据预处理的重要性、特征选择的艺术、模型选择与调参的策略、交叉验证的必要性,以及模型部署后的监控和维护。这些技巧不仅适用于初学者,也对有经验的数据科学家具有参考价值。接下来,让我们深入了解每个技巧的细节,并探索它们如何共同作用于构建一个健壮、高效的机器学习系统。
|
4天前
|
机器学习/深度学习 数据采集 Python
机器学习模型的评估与选择标准
【6月更文挑战第1天】机器学习模型的评估至关重要,包括准确率、召回率、F1值和均方误差等指标。准确率衡量预测正确比例,召回率关注找出所有相关样本的能力,F1值是两者的综合。泛化能力同样重要,防止过拟合和欠拟合。不同场景可能侧重不同指标,如医疗诊断更关注召回率。选择模型需综合考虑多个因素,以实现最佳性能。通过实践和探索,我们可以更好地理解和优化模型评估,推动机器学习进步。
27 2
|
5天前
|
机器学习/深度学习 人工智能 自然语言处理
构建高效机器学习模型:从特征工程到模型优化
【5月更文挑战第31天】 在数据科学领域,构建一个高效的机器学习模型是实现精准预测和数据分析的关键步骤。本文将深入探讨如何通过有效的特征工程技术增强模型的预测能力,以及应用先进的模型调优方法来提升算法性能。我们还将讨论避免过拟合的策略和评估模型的指标,以确保模型的泛化能力和实用性。
|
5天前
|
机器学习/深度学习 数据采集 数据挖掘
构建高效机器学习模型的最佳实践
【5月更文挑战第31天】 在数据驱动的时代,机器学习已成为创新的核心动力。本文深入探讨了构建高效机器学习模型的关键技术要点,包括数据预处理、特征工程、模型选择、调参策略及模型评估等环节。通过实例分析与经验总结,旨在为从业者提供实用的技术参考,以优化模型性能,提升项目成功率。
|
5天前
|
机器学习/深度学习 Python
超参数优化:提升机器学习模型性能
【5月更文挑战第31天】超参数优化对提升机器学习模型性能至关重要。网格搜索和随机搜索是常见方法,Python示例展示了如何使用GridSearchCV进行网格搜索。其他高级技术包括基于梯度的优化和贝叶斯优化。优化时注意选择合适评估指标、划分训练验证集,并进行迭代调整。自动化工具可简化这一过程。超参数优化是一个持续演进的领域,对于构建高性能模型具有关键作用。
34 0
|
5天前
|
机器学习/深度学习 数据采集 人工智能
构建高效机器学习模型:从数据预处理到模型优化
【5月更文挑战第31天】 在当今数据驱动的时代,构建一个高效的机器学习(ML)模型是解决复杂问题的关键。本文将引导读者通过一系列细致的步骤来搭建健壮且精确的ML模型。我们将重点讨论数据预处理的策略、选择合适的算法、模型训练的技巧以及性能优化的方法。通过实例和代码示例,本技术分享旨在为从业者提供实用的指导,帮助他们在面对实际问题时能够灵活应用机器学习技术,并达到提高预测准确率和模型泛化能力的目的。
|
6天前
|
机器学习/深度学习 监控
构建高效机器学习模型的五大策略
【5月更文挑战第30天】 在数据驱动的时代,机器学习(ML)已成为创新的核心动力。然而,构建一个既高效又准确的ML模型并非易事。本文将探讨五种实用的策略,帮助从业者优化其ML模型的性能和效率。我们将深入剖析特征工程的重要性、调参的艺术、集成学习的优势、模型压缩与加速技术,以及持续监控与评估的必要性。通过实践这些策略,读者将能够提升模型的准确率和应用的响应速度,同时降低计算成本。
|
6天前
|
机器学习/深度学习 数据采集 监控
构建高效机器学习模型的五大技术要点
【5月更文挑战第30天】 在本文中,我们将探讨五个关键技术要点,这些要点对于构建高效的机器学习模型至关重要。从数据预处理的重要性到选择正确的模型评估指标,每一部分都为机器学习项目的最终成功奠定了基础。我们还将讨论如何通过交叉验证来优化模型参数,以及如何利用集成学习方法提高预测的准确性。最后,将强调模型部署后的监控和维护的必要性,以确保模型长期稳定运行。