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

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

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


但是,在样本类别不平衡的情况下,仅仅使用模型的准确率并不能体现出模型的优劣。


就拿微博抽奖来举个栗子,IG 夺冠时王思聪发微博称:点赞、转发本条庆祝 IG 夺冠的微博可以参与获奖者每人一万的抽奖。假设10000人参与了该活动,共抽取了10名幸运者。现在问题来了,这次抽奖也成功的吸引了你女票的注意,她也知道你在机器学习领域浸淫多年,于是就命令你去建一个机器学习模型来预测她拿奖的准确率,通过研究中奖用户的特征来以此保证她下次一定抽中奖,不然就跟你分手。你一听慌了,一宿没睡狂撸代码,第二天一大早就拿着自己的劳动成果去邀功请赏,宣称你的模型准确率能到达99%,你女友一听脸色顿时铁青......于是你成了单身狗,可怜的是你居然还不知道到底出了什么问题。


好了,段子讲完了,言归正传。你想想,10000 个人抽10个人,中奖率都 0.1%,那么最朴素的一个模型就是无论是谁,我都宣称他的中奖率为0.1%,就这,这样的模型的准确率都能达到99.9%,那么准确率为99%的模型简直不要太垃圾好吧!你说你不单身谁单身。这同时也说明了,单一的使用准确率来评价分类模型的好坏是不严谨的,那么接下来就进入我们今天的正题。


混淆矩阵

29.jpg

我们拿二分类问题来举个栗子,上图中行代表真实值,列代表预测值,0、1分别代表我们研究的2个种类。预测正确为 True,用 T 表示,预测错误为 False,用 F 表示,预测为0类,我们称其呈阴性,用 N 表示,预测为1类被称为阳性,用 P 表示。在上表中合起来就是 TN、TP、FN、FP这四个值。下表就是上述提到的微博抽奖的混淆矩阵的其中一种情况。

30.jpg


在上表中,实际上没中奖同时也预测正确的人数,即TN值为9978,实际上中奖了也预测正确人数,即TP值为8,没中奖且预测错误的人数,即FP值为12,中了奖但预测错误的人数,即FN值为2.

相关文章
|
2天前
|
机器学习/深度学习 算法 数据可视化
机器学习模型中特征贡献度分析:预测贡献与错误贡献
本文将探讨特征重要性与特征有效性之间的关系,并引入两个关键概念:预测贡献度和错误贡献度。
18 3
|
11天前
|
机器学习/深度学习 Python
验证集的划分方法:确保机器学习模型泛化能力的关键
本文详细介绍了机器学习中验证集的作用及其划分方法。验证集主要用于评估模型性能和调整超参数,不同于仅用于最终评估的测试集。文中描述了几种常见的划分方法,包括简单划分、交叉验证、时间序列数据划分及分层抽样划分,并提供了Python示例代码。此外,还强调了在划分数据集时应注意随机性、数据分布和多次实验的重要性。合理划分验证集有助于更准确地评估模型性能并进行有效调优。
|
8天前
|
机器学习/深度学习 算法 数据挖掘
从菜鸟到大师:Scikit-learn库实战教程,模型训练、评估、选择一网打尽!
【9月更文挑战第13天】在数据科学与机器学习领域,Scikit-learn是不可或缺的工具。本文通过问答形式,指导初学者从零开始使用Scikit-learn进行模型训练、评估与选择。首先介绍了如何安装库、预处理数据并训练模型;接着展示了如何利用多种评估指标确保模型性能;最后通过GridSearchCV演示了系统化的参数调优方法。通过这些实战技巧,帮助读者逐步成长为熟练的数据科学家。
40 3
|
11天前
|
机器学习/深度学习 人工智能 自然语言处理
机器学习模型之深度神经网络的特点
深度神经网络(Deep Neural Networks, DNNs)是一类机器学习模型,通过多个层级(层)的神经元来模拟人脑的工作方式,从而实现复杂的数据处理和模式识别任务。
14 1
|
19天前
|
机器学习/深度学习 算法 前端开发
R语言基础机器学习模型:深入探索决策树与随机森林
【9月更文挑战第2天】决策树和随机森林作为R语言中基础且强大的机器学习模型,各有其独特的优势和适用范围。了解并熟练掌握这两种模型,对于数据科学家和机器学习爱好者来说,无疑是一个重要的里程碑。希望本文能够帮助您更好地理解这两种模型,并在实际项目中灵活应用。
|
18天前
|
机器学习/深度学习 数据采集 存储
一文读懂蒙特卡洛算法:从概率模拟到机器学习模型优化的全方位解析
蒙特卡洛方法起源于1945年科学家斯坦尼斯劳·乌拉姆对纸牌游戏中概率问题的思考,与约翰·冯·诺依曼共同奠定了该方法的理论基础。该方法通过模拟大量随机场景来近似复杂问题的解,因命名灵感源自蒙特卡洛赌场。如今,蒙特卡洛方法广泛应用于机器学习领域,尤其在超参数调优、贝叶斯滤波等方面表现出色。通过随机采样超参数空间,蒙特卡洛方法能够高效地找到优质组合,适用于处理高维度、非线性问题。本文通过实例展示了蒙特卡洛方法在估算圆周率π和优化机器学习模型中的应用,并对比了其与网格搜索方法的性能。
117 1
|
19天前
|
机器学习/深度学习 算法 数据挖掘
|
2天前
|
机器学习/深度学习 数据采集 算法
机器学习新纪元:用Scikit-learn驾驭Python,精准模型选择全攻略!
在数据爆炸时代,机器学习成为挖掘数据价值的关键技术,而Scikit-learn作为Python中最受欢迎的机器学习库之一,凭借其丰富的算法集、简洁的API和高效性能,引领着机器学习的新纪元。本文通过一个实际案例——识别垃圾邮件,展示了如何使用Scikit-learn进行精准模型选择。从数据预处理、模型训练到交叉验证和性能比较,最后选择最优模型进行部署,详细介绍了每一步的操作方法。通过这个过程,我们不仅可以看到如何利用Scikit-learn的强大功能,还能了解到模型选择与优化的重要性。希望本文能为你的机器学习之旅提供有价值的参考。
8 0
|
21天前
|
API UED 开发者
如何在Uno Platform中轻松实现流畅动画效果——从基础到优化,全方位打造用户友好的动态交互体验!
【8月更文挑战第31天】在开发跨平台应用时,确保用户界面流畅且具吸引力至关重要。Uno Platform 作为多端统一的开发框架,不仅支持跨系统应用开发,还能通过优化实现流畅动画,增强用户体验。本文探讨了Uno Platform中实现流畅动画的多个方面,包括动画基础、性能优化、实践技巧及问题排查,帮助开发者掌握具体优化策略,提升应用质量与用户满意度。通过合理利用故事板、减少布局复杂性、使用硬件加速等技术,结合异步方法与预设缓存技巧,开发者能够创建美观且流畅的动画效果。
43 0
|
24天前
|
机器学习/深度学习 算法 数据挖掘
8个常见的机器学习算法的计算复杂度总结
8个常见的机器学习算法的计算复杂度总结
8个常见的机器学习算法的计算复杂度总结