【Python机器学习】分类算法任务、分类模型评价指标详解(图文解释)

简介: 【Python机器学习】分类算法任务、分类模型评价指标详解(图文解释)

分类任务

设样本集S={s_1,s_2,…,s_m}包含m个样本,样本s_i=(x_i,y_i)包括一个实例x_i和一个标签y_i,实例由n维特征向量表示,即x_i=(x_i^(1),x_i^(2),…,x_i^(n))。

在学习过程,分类任务将样本集中的知识提炼出来,形成模型。完成分类任务的模型有决策函数模型、概率模型和神经网络模型三类。

决策函数分类模型建立了从实例特征向量到类别标签的映射Y=f(X),X是定义域,它是所有实例特征向量的集合,Y是值域,它是所有类别标签的集合。

概率分类模型建立了条件概率分布函数P ̂(Y|X),它反映了从实例特征向量到类别标签的概率映射。

神经网络分类模型建立了能正确反映实例特征向量与类别标签关系的神经网络N(S,W)。

记测试样本为x=(x^(1),x^(2),…,x^(n))。在判别过程中,决策函数分类模型依据决策函数Y=f(X)给予测试样本x一个类标签y ̂;概率分类模型依据条件概率P ̂(Y|X)计算在给定x时取每一个类标签y ̂的条件概率值,取最大值对应的y ̂作为输出;神经网络分类模型将x馈入已经训练好的网络N(S,W),从输出得到类标签y ̂。

如果值域只有两个值,则该模型是二分类的,如果多于两个值,则该模型是多分类的。

分类模型的评价指标

1.准确率(Accuracy)

准确率是指在分类中,用模型对测试集进行分类,分类正确的样本数占总数的比例:

sklearn.metrics.accuracy_score(y_true,y_pred,normalize=True,sample_weight=None)

2.混淆矩阵(Confusion Matrix)

混淆矩阵是对分类的结果进行详细描述的矩阵,对于二分类则是一个2×2的矩阵,对于n分类则是n×n的矩阵。

可以由混淆矩阵计算出准确率Accuracy:

3.平均准确率(Average Per-class Accuracy)

平均准确率的全称为:按类平均准确率,即计算每个类别的准确率,然后再计算它们的平均值。

平均准确率也可以通过混淆矩阵来计算:

4.精确率-召回率(Precision-Recall)

精确率-召回率包含两个评价指标,一般同时使用。精确率是指分类器分类正确(错误)的正样本的个数占该分类器所有分类为正(负)样本个数的比例。召回率是指分类器分类正确的正(负)样本个数占所有的正(负)样本个数的比例。

精确率是从预测的角度来看的,即预测为正(负)的样本中,预测成功的比例。召回率是从样本的角度来看的,即实际标签为正(负)的样本中,被成功预测的比例。准确率也是从样本的角度来看的,即所有样本中,正确预测的比例。与召回率不同,准确率是不分类别的。

在混淆矩阵中,预测为正的样本的精确率为:

预测为负的样本的精确率为:

真实正样本的召回率为:

真实负样本的召回率为:

5.F_1−score

精确率与召回率实际上是一对矛盾的值,有时候单独采用一个值难以全面衡量算法,F_1−score试图将两者结合起来作为一个指标来衡量算法。F_1−score为精确率与召回率的调和平均值,即:

创作不易 觉得有帮助请点赞关注收藏~~~

相关文章
|
1月前
|
供应链 并行计算 算法
1行Python搞定高频任务!26个实用技巧解决日常+进阶需求
本文整理了26个Python极简技巧,涵盖日常高频操作与进阶玩法,助你用最少代码高效解决问题,提升编程效率。适合各阶段Python学习者参考。
71 27
|
12月前
|
数据采集 缓存 Java
Python vs Java:爬虫任务中的效率比较
Python vs Java:爬虫任务中的效率比较
|
12月前
|
监控 并行计算 数据处理
构建高效Python应用:并发与异步编程的实战秘籍,IO与CPU密集型任务一网打尽!
在Python编程的征途中,面对日益增长的性能需求,如何构建高效的应用成为了每位开发者必须面对的课题。并发与异步编程作为提升程序性能的两大法宝,在处理IO密集型与CPU密集型任务时展现出了巨大的潜力。今天,我们将深入探讨这些技术的最佳实践,助你打造高效Python应用。
173 0
|
8月前
|
数据采集 Java 数据处理
Python实用技巧:轻松驾驭多线程与多进程,加速任务执行
在Python编程中,多线程和多进程是提升程序效率的关键工具。多线程适用于I/O密集型任务,如文件读写、网络请求;多进程则适合CPU密集型任务,如科学计算、图像处理。本文详细介绍这两种并发编程方式的基本用法及应用场景,并通过实例代码展示如何使用threading、multiprocessing模块及线程池、进程池来优化程序性能。结合实际案例,帮助读者掌握并发编程技巧,提高程序执行速度和资源利用率。
363 0
|
10月前
|
数据采集 存储 监控
21个Python脚本自动执行日常任务(2)
21个Python脚本自动执行日常任务(2)
21个Python脚本自动执行日常任务(2)
|
9月前
|
存储 安全 数据可视化
用Python实现简单的任务自动化
本文介绍如何使用Python实现任务自动化,提高效率和准确性。通过三个实用案例展示:1. 使用`smtplib`和`schedule`库自动发送邮件提醒;2. 利用`shutil`和`os`库自动备份文件;3. 借助`requests`库自动下载网页内容。每个案例包含详细代码和解释,并附带注意事项。掌握这些技能有助于个人和企业优化流程、节约成本。
320 3
|
10月前
|
Python
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
171 18
|
10月前
|
数据采集 分布式计算 大数据
构建高效的数据管道:使用Python进行ETL任务
在数据驱动的世界中,高效地处理和移动数据是至关重要的。本文将引导你通过一个实际的Python ETL(提取、转换、加载)项目,从概念到实现。我们将探索如何设计一个灵活且可扩展的数据管道,确保数据的准确性和完整性。无论你是数据工程师、分析师还是任何对数据处理感兴趣的人,这篇文章都将成为你工具箱中的宝贵资源。
|
11月前
|
机器学习/深度学习 Python
机器学习中评估模型性能的重要工具——混淆矩阵和ROC曲线。混淆矩阵通过真正例、假正例等指标展示模型预测情况
本文介绍了机器学习中评估模型性能的重要工具——混淆矩阵和ROC曲线。混淆矩阵通过真正例、假正例等指标展示模型预测情况,而ROC曲线则通过假正率和真正率评估二分类模型性能。文章还提供了Python中的具体实现示例,展示了如何计算和使用这两种工具来评估模型。
425 8
|
11月前
|
运维 监控 网络安全
自动化运维的崛起:如何利用Python脚本简化日常任务
【10月更文挑战第43天】在数字化时代的浪潮中,运维工作已从繁琐的手工操作转变为高效的自动化流程。本文将引导您了解如何运用Python编写脚本,以实现日常运维任务的自动化,从而提升工作效率和准确性。我们将通过一个实际案例,展示如何使用Python来自动部署应用、监控服务器状态并生成报告。文章不仅适合运维新手入门,也能为有经验的运维工程师提供新的视角和灵感。

热门文章

最新文章

推荐镜像

更多