首页 > 其他分享 >模型评估

模型评估

时间:2024-04-16 13:11:41浏览次数:22  
标签:分数 plt 交叉 模型 验证 TP 评估

在机器学习中,模型评估指标是判断模型性能的关键。让我们一起探讨一下分类问题的混淆矩阵和各种评估指标的计算公式。

首先,我们来看一下常见的分类问题评估指标:

  1. 准确率 (Accuracy):预测正确的结果占总样本的百分比,计算公式为:

    \[\text{准确率} = \frac{TP + TN}{TP + TN + FP + FN}\]其中TP表示真正例(模型将正类别预测为正类别的样本数)、TN表示真负例(模型将负类别预测为负类别的样本数)、FP表示假正例(模型将负类别预测为正类别的样本数)、FN表示假负例(模型将正类别预测为负类别的样本数),尽管准确率可以判断总体的正确率,但在样本不平衡的情况下,它并不能作为很好的指标来衡量结果。

  2. 精确率 (Precision):所有被预测为正的样本中实际为正的样本的概率,计算公式为:

    \[ \text{精确率} = \frac{TP}{TP + FP} \]

    精确率代表对正样本结果中的预测准确程度。

  3. 召回率 (Recall):实际为正的样本中被预测为正样本的概率,计算公式为:

    \[ \text{召回率} = \frac{TP}{TP + FN} \]

    召回率用于关注实际坏用户被预测出来的概率。

  4. F1 分数:综合精确率和召回率的表现,计算公式为:

    \[ F1 = \frac{2 \cdot \text{Precision} \cdot \text{Recall}}{\text{Precision} + \text{Recall}} \]

  5. ROC 曲线和AUC 曲线:ROC 曲线是接受者操作特征曲线,AUC 是 ROC 曲线下的面积。这两个指标用于评估分类模型的性能。

二.KNN算法对鸢尾花分类的模型评估

使用交叉验证来获得KNN算法的评估结果。

import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split, cross_val_score
from sklearn.neighbors import KNeighborsClassifier
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']  # 设置中文显示
plt.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题

加载鸢尾花数据集

iris = load_iris()
X = iris.data
y = iris.target

将数据集分为训练集和测试集

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

创建一个字典来存储不同K值的交叉验证分数

k_scores = {}

尝试不同的K值,并计算交叉验证分数

for k in range(1, 21):
knn = KNeighborsClassifier(n_neighbors=k)
scores = cross_val_score(knn, X_train, y_train, cv=5, scoring='accuracy')
k_scores[k] = np.mean(scores)

绘制K值与交叉验证分数的关系图

plt.figure(figsize=(10, 6))
plt.plot(list(k_scores.keys()), list(k_scores.values()), marker='o', linestyle='--')
plt.title('K值与交叉验证分数的关系')
plt.xlabel('K值')
plt.ylabel('交叉验证分数')
plt.xticks(np.arange(1, 21, step=1))
plt.grid(True)
plt.show()

  

在这个图中,X轴代表K值,Y轴代表交叉验证分数。

  1. 选择最优的K值:观察曲线,找到使交叉验证分数最高的K值。通常来说,K值在一定范围内增大时,模型的准确性会先增加后减小,因此你需要找到准确性最高的K值。

  2. 高偏差与高方差的权衡:K值的选择涉及到偏差-方差权衡。较小的K值会导致模型具有较低的偏差但较高的方差,反之,较大的K值会导致模型具有较高的偏差但较低的方差。你需要根据具体情况选择合适的K值,以平衡偏差和方差,从而获得最佳的模型性能。

  3. 模型的稳定性:观察曲线的变化情况,如果曲线波动较大,说明模型对K值的选择比较敏感,可能存在较大的不稳定性。在这种情况下,你可能需要采取进一步的措施来提高模型的稳定性,例如增加数据量或采用其他算法。

  4. 验证结果的可信度:交叉验证分数越高,表示模型在未见过的数据上的泛化能力越强。因此,你可以根据交叉验证分数的高低来评估模型的表现,并决定是否需要进一步优化模型或增加数据特征。

综上所述,分析K值与交叉验证分数的关系图可以帮助你选择最佳的K值,并评估模型的性能和稳定性,从而做出更加准确的预测和决策。

 

标签:分数,plt,交叉,模型,验证,TP,评估
From: https://www.cnblogs.com/Linglo/p/18137853

相关文章

  • hive on spark内存模型
    内容介绍hiveonspark的调优,那必然涉及到这一系列框架的内存模型。本章就是来讲一下这些框架的内存模型。hiveonspark的任务,从开始到结束。总共涉及了3个框架。分别是:yarn、hive、spark其中,hive只是一个客户端的角色。就不涉及任务运行时的内存。所以这里主要讲的yarn和spa......
  • 如何实现超大场景三维模型数据立体裁剪
    如何实现超大场景三维模型数据立体裁剪 实现超大场景三维模型数据的立体裁剪可以采用如下方法: 数据预处理:将超大场景三维模型数据进行划分和分割,将其拆分成多个小块或网格。这样可以方便进行后续的裁剪操作。 裁剪算法选择:根据具体需求选择合适的裁剪算法。一种常用的方......
  • R语言Stan贝叶斯回归置信区间后验分布可视化模型检验|附数据代码
    全文链接:https://tecdat.cn/?p=35899原文出处:拓端数据部落公众号贝叶斯回归是一种统计方法,它使用贝叶斯定理来估计回归模型的参数。与传统的频率派回归方法不同,贝叶斯回归提供了参数的后验分布,而不仅仅是点估计。这意味着我们可以得到参数的不确定性度量,而不仅仅是单一的估计值......
  • 机器学习分类模型评估
    1.分类模型介绍分类模型是机器学习的一种类型,它的任务是通过学习样本的特征来预测样本的类别。分类模型通常用于那些输出变量是分类或者离散值的任务,例如,判断一封邮件是垃圾邮件还是非垃圾邮件,或者预测一个患者是否患有某种疾病。在训练过程中,分类模型会从标记好的训练数据中学......
  • 对象模型 - this
    对象模型-this通过一个对象来调用一个函数,那么对象的地址就是this虚函数的模板方法使用方式templatemethod示例代码:#pragma#ifndef__THIS_TEMPLATE_MODEL__#define__THIS_TEMPLATE_MODEL__​classCDocument{public:virtualvoidSerialize();voidOnFileOpen......
  • openGauss DB4AI-Query-模型训练和推断
    DB4AI-Query:模型训练和推断openGauss当前版本支持了原生DB4AI能力,通过引入原生AI算子,简化操作流程,充分利用数据库优化器、执行器的优化与执行能力,获得高性能的数据库内模型训练能力。更简化的模型训练与预测流程、更高的性能表现,让开发者在更短时间内能更专注于模型的调优与数据......
  • C++_内存模型和函数以及类
    C++内存模型函数函数与编译器类成员变量class内部通过 static修饰变量时,表示该变量为静态成员变量,必须在类外定义 staticconst修饰变量时,表示该变量为静态成员常量,可以在类内初始化,或者在类外初始化 staticconstexpr修饰变量时,表示该......
  • openGauss DB4AI-Query-模型训练和推断
    DB4AI-Query:模型训练和推断openGauss当前版本支持了原生DB4AI能力,通过引入原生AI算子,简化操作流程,充分利用数据库优化器、执行器的优化与执行能力,获得高性能的数据库内模型训练能力。更简化的模型训练与预测流程、更高的性能表现,让开发者在更短时间内能更专注于模型的调优与数据......
  • Pytorch分类模型的训练框架
    Pytorch分类模型的训练框架PhotoDataset数据集是自己定义的数据集,数据集存放方式为:----image文件夹--------0文件夹--------------img1.jpg--------------img2.jpg--------1文件夹--------------img1.jpg--------------img2.jpg....如果是cpu训练的话,就把代码中的.cu......
  • 爆火 AI 硬件遭差评,Ai Pin 上市即翻车;Grok 推出首个多模态模型丨 RTE 开发者日报 Vol.
      开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(RealTimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编辑......