【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行Python搞定高频任务!26个实用技巧解决日常+进阶需求
本文整理了26个Python极简技巧,涵盖日常高频操作与进阶玩法,助你用最少代码高效解决问题,提升编程效率。适合各阶段Python学习者参考。
444 27
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
712 2
|
数据采集 缓存 Java
Python vs Java:爬虫任务中的效率比较
Python vs Java:爬虫任务中的效率比较
|
监控 并行计算 数据处理
构建高效Python应用:并发与异步编程的实战秘籍,IO与CPU密集型任务一网打尽!
在Python编程的征途中,面对日益增长的性能需求,如何构建高效的应用成为了每位开发者必须面对的课题。并发与异步编程作为提升程序性能的两大法宝,在处理IO密集型与CPU密集型任务时展现出了巨大的潜力。今天,我们将深入探讨这些技术的最佳实践,助你打造高效Python应用。
417 0
|
算法
一次推理,实现六大3D点云分割任务!华科发布大一统算法UniSeg3D,性能新SOTA
华中科技大学研究团队提出了一种名为UniSeg3D的创新算法,该算法通过一次推理即可完成六大3D点云分割任务(全景、语义、实例、交互式、指代和开放词汇分割),并基于Transformer架构实现任务间知识共享与互惠。实验表明,UniSeg3D在多个基准数据集上超越现有SOTA方法,为3D场景理解提供了全新统一框架。然而,模型较大可能限制实际部署。
1163 15
|
数据采集 存储 监控
21个Python脚本自动执行日常任务(2)
21个Python脚本自动执行日常任务(2)
21个Python脚本自动执行日常任务(2)
|
Python
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
407 18
|
存储 安全 数据可视化
用Python实现简单的任务自动化
本文介绍如何使用Python实现任务自动化,提高效率和准确性。通过三个实用案例展示:1. 使用`smtplib`和`schedule`库自动发送邮件提醒;2. 利用`shutil`和`os`库自动备份文件;3. 借助`requests`库自动下载网页内容。每个案例包含详细代码和解释,并附带注意事项。掌握这些技能有助于个人和企业优化流程、节约成本。
808 3
|
数据采集 分布式计算 大数据
构建高效的数据管道:使用Python进行ETL任务
在数据驱动的世界中,高效地处理和移动数据是至关重要的。本文将引导你通过一个实际的Python ETL(提取、转换、加载)项目,从概念到实现。我们将探索如何设计一个灵活且可扩展的数据管道,确保数据的准确性和完整性。无论你是数据工程师、分析师还是任何对数据处理感兴趣的人,这篇文章都将成为你工具箱中的宝贵资源。
|
数据采集 Java 数据处理
Python实用技巧:轻松驾驭多线程与多进程,加速任务执行
在Python编程中,多线程和多进程是提升程序效率的关键工具。多线程适用于I/O密集型任务,如文件读写、网络请求;多进程则适合CPU密集型任务,如科学计算、图像处理。本文详细介绍这两种并发编程方式的基本用法及应用场景,并通过实例代码展示如何使用threading、multiprocessing模块及线程池、进程池来优化程序性能。结合实际案例,帮助读者掌握并发编程技巧,提高程序执行速度和资源利用率。
900 0

热门文章

最新文章

推荐镜像

更多