评估机器学习分类模型
概要
- 模型评估的目标是什么?
- 模型评估的目的是什么,有哪些 常见的评估程序?
- 分类准确率有什么用,它的作用是什么 限制?
- 混淆矩阵如何描述 分类器?
- 可以从混淆矩阵计算哪些指标?
T模型评估的目标是回答问题;
不同型号如何选择?
评估机器学习的过程有助于确定模型的应用可靠性和有效性。这涉及评估不同的因素,例如其性能、指标以及预测或决策的准确性。
无论您选择使用什么模型,您都需要一种在模型之间进行选择的方法:不同的模型类型、调整参数和功能。此外,您还需要一个模型评估程序来估计模型对未见过的数据的泛化能力。最后,您需要一个评估程序来与其他程序配合使用,以量化您的模型性能。
在我们继续之前,让我们回顾一下一些不同的模型评估程序及其运作方式。
模型评估程序及其运作方式。
-
使用相同数据进行训练和测试
- 奖励过于复杂的模型,这些模型“过度拟合”训练数据并且不一定具有泛化能力
-
训练/测试分开
- 将数据集分成两部分,以便可以在不同的数据上训练和测试模型
- 更好地估计样本外性能,但仍然是“高方差”估计
- 因其速度、简单性和灵活性而有用
-
K 折交叉验证
- 系统地创建“K”个训练/测试分组并将结果一起平均
- 更好地估计样本外性能
- 运行速度比训练/测试分开慢“K”倍。
从上面我们可以推断出:
对相同数据进行训练和测试是过度拟合的一个典型原因,在这种情况下,您构建的模型过于复杂,无法泛化到新数据,而且实际上没有用处。
Train_Test_Split 可以更好地估计样本外性能。
通过系统地进行 K 次训练测试分割并将结果平均在一起,K 折交叉验证效果更好。
总之,train_tests_split 由于其速度和简单性,对于交叉验证来说仍然是有利可图的,这就是我们将在本教程中使用的内容。
模型评估指标:
您始终需要一个评估指标来配合您选择的程序,并且您选择的指标取决于您要解决的问题。对于分类问题,可以使用分类精度。但我们将在本指南中重点关注其他重要的分类评估指标。
在我们学习任何新的评估指标之前,让我们回顾一下分类准确性,并讨论它的优点和缺点。
分类准确率
我们为本教程选择了皮马印第安人糖尿病数据集,其中包括 768 名患者的健康数据和糖尿病状况。
让我们读取数据并打印前 5 行数据。如果患者患有糖尿病,则标签栏显示 1,如果患者没有糖尿病,则标签栏显示 0,我们要回答的问题是:
问题: 我们可以根据患者的健康测量结果预测其糖尿病状况吗?
我们定义特征度量 X 和响应向量 Y。我们使用 train_test_split 将 X 和 Y 分成训练集和测试集。
接下来,我们在训练集上训练逻辑回归模型。在拟合步骤中,logreg 模型对象正在学习 X_train 和 Y_train 之间的关系。最后我们对测试集进行类预测。
现在,我们已经对测试集进行了预测,我们可以计算分类准确率,简单来说就是正确预测的百分比。
但是,每当您使用分类准确性作为评估指标时,将其与空准确性进行比较非常重要,这是通过始终预测最频繁的类别可以获得的准确性。
空准确率回答了问题;如果我的模型能够 100% 地预测主要类别,那么它正确的概率是多少?在上面的场景中,y_test 的 32% 为 1(个)。换句话说,预测患者患有糖尿病的愚蠢模型68% 的时间是正确的(即零)。这提供了一个基线,我们可能希望根据该基线来衡量逻辑回归模型。
当我们比较 68% 的空精度和 69% 的模型精度时,我们的模型看起来不太好。这表明分类准确性作为模型评估指标的一个弱点。分类准确性并不能告诉我们有关测试测试的基本分布的任何信息。
总结:
- 分类准确度是最容易理解的分类指标
- 但是,它不会告诉您响应值的底层分布
- 并且,它不会告诉您分类器正在产生什么错误“类型”。
现在让我们看看混淆矩阵。
混淆矩阵
混淆矩阵是描述分类模型性能的表格。
它有助于帮助您了解分类器的性能,但它不是模型评估指标;所以你不能告诉 scikit learn 选择具有最佳混淆矩阵的模型。然而,有很多指标可以从混淆矩阵中计算出来,并且可以直接用于在模型之间进行选择。
- 测试集中的每个观察结果都在恰好一个盒子中表示
- 这是一个 2x2 矩阵,因为有 2 个响应类别
- 此处显示的格式不通用
让我们解释一下它的一些基本术语。
- 真阳性 (TP):我们正确预测他们确实患有糖尿病
- 真阴性 (TN):我们正确预测他们没有患有糖尿病
- 误报 (FP):我们错误地预测他们确实患有糖尿病(“I 类错误”)
- 假阴性 (FN):我们错误地预测他们没有患有糖尿病(“II 型错误”)
让我们看看如何计算指标
结论:
- 混淆矩阵为您提供更完整的图片您的分类器的执行情况
- 还允许您计算各种分类指标,这些指标可以指导您的模型选择
以上是评估机器学习分类模型的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undress AI Tool
免费脱衣服图片

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

安装pyodbc:使用pipinstallpyodbc命令安装库;2.连接SQLServer:通过pyodbc.connect()方法,使用包含DRIVER、SERVER、DATABASE、UID/PWD或Trusted_Connection的连接字符串,分别支持SQL身份验证或Windows身份验证;3.查看已安装驱动:运行pyodbc.drivers()并筛选含'SQLServer'的驱动名,确保使用如'ODBCDriver17forSQLServer'等正确驱动名称;4.连接字符串关键参数

使用httpx.AsyncClient可高效发起异步HTTP请求,1.基本GET请求通过asyncwith管理客户端并用awaitclient.get发起非阻塞请求;2.并发多个请求时结合asyncio.gather可显着提升性能,总耗时等于最慢请求;3.支持自定义headers、认证、base_url和超时设置;4.可发送POST请求并携带JSON数据;5.注意避免混用同步异步代码,代理支持需注意后端兼容性,适合用于爬虫或API聚合等场景。

pythoncanbeoptimizedFormized-formemory-boundoperationsbyreducingOverHeadThroughGenerator,有效dattratsures,andManagingObjectLifetimes.first,useGeneratorSInsteadoFlistSteadoflistSteadoFocessLargedAtasetSoneItematatime,desceedingingLoadeGingloadInterveringerverneDraineNterveingerverneDraineNterveInterveIntMory.second.second.second.second,Choos,Choos

本文旨在帮助 SQLAlchemy 初学者解决在使用 create_engine 时遇到的 "RemovedIn20Warning" 警告,以及随之而来的 "ResourceClosedError" 连接关闭错误。文章将详细解释该警告的原因,并提供消除警告以及修复连接问题的具体步骤和代码示例,确保你能够顺利地查询和操作数据库。

shutil.rmtree()是Python中用于递归删除整个目录树的函数,能删除指定文件夹及其所有内容。1.基本用法:使用shutil.rmtree(path)删除目录,需处理FileNotFoundError、PermissionError等异常。2.实际应用:可一键清除包含子目录和文件的文件夹,如临时数据或缓存目录。3.注意事项:删除操作不可恢复;路径不存在时抛出FileNotFoundError;可能因权限或文件占用导致失败。4.可选参数:可通过ignore_errors=True忽略错

安装对应数据库驱动;2.使用connect()连接数据库;3.创建cursor对象;4.用execute()或executemany()执行SQL并用参数化查询防注入;5.用fetchall()等获取结果;6.修改后需commit();7.最后关闭连接或使用上下文管理器自动处理;完整流程确保安全且高效执行SQL操作。

Python是实现ETL流程的高效工具,1.数据抽取:通过pandas、sqlalchemy、requests等库可从数据库、API、文件等来源提取数据;2.数据转换:使用pandas进行清洗、类型转换、关联、聚合等操作,确保数据质量并优化性能;3.数据加载:利用pandas的to_sql方法或云平台SDK将数据写入目标系统,注意写入方式与批次处理;4.工具推荐:Airflow、Dagster、Prefect用于流程调度与管理,结合日志报警与虚拟环境提升稳定性与可维护性。

在JupyterNotebook中使用PandasStyling可实现DataFrame的美观展示,1.使用highlight_max和highlight_min高亮每列最大值(绿色)和最小值(红色);2.通过background_gradient为数值列添加渐变背景色(如Blues或Reds)以直观显示数据大小;3.自定义函数color_score结合applymap为不同分数区间设置文字颜色(≥90绿色,80~89橙色,60~79红色,
