机器学习(2.模型评估与选择)

二.模型评估与选择

什么模型好?

在这里插入图片描述

模型选择的三个关键问题:
在这里插入图片描述

1.经验误差与过拟合

1.1误差(训练误差与泛化误差)

学习器的实际预测输出与样本的真实输出之间的差异称为"误差"(error)

  • a.训练误差:在训练集上的误差,亦称“训练误差”
  • b.泛化误差:在“未来”样本上的误差
  • 泛化误差越小越好----对模型的泛化误差进行评估,然后选择泛化误差最小的那个模型

  • 经验误差是否越小越好?

    ​ NO!!!

    因为会出现“过拟合”(overfitting)

1.2欠拟合与过拟合

在这里插入图片描述

  • a.欠拟合(underfitting):未能学好样本的普遍规律
  • b.过拟合(overfitting):训练过度使泛化能力下降(学到了特有的特证)
  • 过拟合是机器学习中的关键障碍且不可避免

2.评估方法

选择泛化误差最小的模型,因此需要通过实验测试来对学习器的泛化误差进行评估.

主要有以下评估方法(前提:确保训练集与测试集互斥)

在这里插入图片描述

2.1留出法(Hold-Out Validation)

在这里插入图片描述

  • 步骤:将数据集分成两部分:训练集和测试集。通常,大部分数据用于训练,一小部分用于测试。例如,常见的比例是70%训练,30%测试。然后,在训练集上训练模型,在测试集上评估性能。

    注意:进行多次实验,取平均值

  • 优点:简单、易于理解和实施,适用于大数据集。

  • 缺点:结果可能对初始随机划分敏感,有可能不充分利用数据。

2.2交叉验证法(Cross-Validation)

在这里插入图片描述

  • 步骤:将数据集分成k个折叠(folds),每次使用k-1个折叠进行训练,剩下的一个用于测试。这个过程重复k次,每个折叠都会被用作测试集一次,最终得到k个性能评估结果的均值。
  • 优点:更可靠,更全面地评估模型性能,减少了数据划分的随机性。
  • 缺点:计算成本较高,特别是对于大型数据集。
2.3留一法(Leave-One-Out Validation)
  • 是交叉验证的一种特殊情况,当k等于数据集的样本数时,每个样本都被用作测试一次。
  • 优点:最大程度上利用了数据,提供了最准确的性能评估。
  • 缺点:计算成本非常高,尤其是对于大型数据集。
2.4自助法(Bootstrapping)

在这里插入图片描述

  • 步骤:自助法通过有放回地从原始数据集中抽取样本,形成一个新的训练集,原数据集中的一些样本可能被多次抽取,而一些样本可能从未被抽取。这个过程可以重复多次,然后使用这些自助采样的数据集进行模型训练和评估。
  • 优点:简单,不浪费数据,适用于小样本数据。(∵小数据不适合进行划分)
  • 缺点:引入了自助采样的随机性,可能导致模型的性能评估不稳定。
2.5调参与最终模型

在这里插入图片描述

  1. 参数调节(Hyperparameter Tuning)
    • 机器学习模型通常有两类参数:模型参数和超参数。
      • 模型参数:这些参数是模型在训练过程中自动学习的,它们用于拟合训练数据。例如,在线性回归中,权重和截距是模型参数。
      • 算法参数(超参数):这些参数不是模型自动学习的,而是在训练之前由人为设定的。它们控制模型的复杂度、训练过程的速度、正则化等方面。例如,在支持向量机中,正则化参数C就是一个超参数。
    • 参数调节是为了找到最佳的超参数配置,以优化模型的性能和泛化能力。这通常涉及使用不同的超参数组合进行多次实验,并使用验证集来评估性能,最终选择性能最佳的超参数组合。
  2. 最终模型选择
    • 一旦完成参数调节并找到最佳的超参数配置,接下来需要选择最终的模型。这个步骤通常涉及在整个训练数据集上重新训练模型,使用最佳的超参数,以便让模型在整个数据集上达到最佳性能。
    • 最终模型的选择还包括确定哪种算法或模型体系结构最适合解决特定问题。这可以基于验证集和交叉验证等性能评估方法来进行。

3.性能度量

机器学习的性能度量是用来衡量模型在训练和测试数据上的表现和泛化能力的方法,即为衡量模型泛化能力的评价标准

先使用某种实验评估方法测得学习器的某个性能度量结果,然后再进行比较

  1. 分类任务性能度量

    • 准确度(Accuracy):正确分类的样本数占总样本数的比例,适用于平衡类别分布的问题。

      假设有一个垃圾邮件分类器,对100封邮件进行分类,其中正确分类了90封,准确度为90%

    • 精确度(Precision):真正例(TP)占所有被模型预测为正例的样本数的比例,用于衡量模型对正例的分类准确性。

      在癌症诊断中,假设有100个病人被测试为阳性,但只有80个人实际上患有癌症,精确度为80%。

    • 召回率(Recall):真正例(TP)占所有真正例的样本数的比例,用于衡量模型发现真正例的能力。

      对于同样的癌症诊断,如果有100个实际患有癌症的人中,只有70个被正确诊断为阳性,召回率为70%。

    • F1分数(F1-Score):精确度和召回率的调和平均,用于平衡精确度和召回率之间的权衡。

      如果一个模型的精确度为85%而召回率为90%,则F1分数为2 * (0.85 * 0.9) / (0.85 + 0.9) = 0.87。

    • ROC曲线和AUC(Receiver Operating Characteristic Curve and Area Under the Curve):用于可视化和衡量分类模型的性能,尤其在不同的类别阈值下。

      通过绘制ROC曲线并计算AUC,可以评估二分类模型的性能。AUC越接近1,表示模型性能越好。

    • 对数损失(Log Loss):用于衡量概率估计模型的性能,尤其用于二分类和多分类问题。

      用于衡量二分类或多分类模型的概率估计性能。具体数值表示模型对真实标签的概率估计质量。

    • 混淆矩阵(Confusion Matrix):包括真正例(TP)、真负例(TN)、假正例(FP)和假负例(FN),可用于计算其他性能指标。

  2. 回归任务性能度量

    • 均方误差(Mean Squared Error,MSE):真实值和预测值之间的平方差的平均值。

      假设有一个房价预测模型,对5个房屋进行预测,平均MSE为1000。这意味着平均预测误差的平方为1000。

    • 均方根误差(Root Mean Squared Error,RMSE):MSE的平方根,与原始数据单位一致。

      如果上述房价预测模型的RMSE为31.62,那么平均预测误差约为31.62美元。

    • 平均绝对误差(Mean Absolute Error,MAE):真实值和预测值之间的绝对差的平均值。

      如果模型对5个商品的需求进行预测,平均MAE为5个单位,表示平均误差为5个单位。

    • R平方(Coefficient of Determination,R-squared):衡量模型对总方差的解释程度,取值范围为0到1。

      如果一个模型的R平方为0.75,说明模型能够解释总方差的75%。

  3. 聚类任务性能度量

    • 轮廓系数(Silhouette Score):用于衡量聚类结果的紧密度和分离度。

      如果一个聚类算法产生的轮廓系数为0.7,表示聚类结果紧密度较高,样本之间的距离较小。

    • 互信息(Mutual Information):衡量真实标签和聚类结果之间的相似性。

      在文本聚类中,互信息可以用来衡量聚类结果与真实文本类别之间的相关性。

    • 兰德指数(Rand Index):衡量聚类结果的一致性和相似性。

      如果兰德指数为0.85,表示聚类结果与真实类别之间的一致性较高。

  4. 多类别分类任务性能度量

    • 在多类别分类任务中,可以扩展二分类性能度量,如宏平均(Macro-average)和微平均(Micro-average)来汇总多个类别的性能指标。
  5. 自定义任务性能度量

    • 对于一些特定的任务,可能需要自定义的性能度量来满足问题的需求,例如目标检测、文本生成等。

4.比较检验

我们通过某种实验评估测得学习器的性能度量,然后通过结果比较选择,那么如何比较呢?不是简单的比较性能度量的结果,实际远比这复杂的多.我们先从机器学习的步骤来看:

在这里插入图片描述

我们再来看西瓜书中的描述:
这里面涉及几个重要因素:首先,我们希望比较的是泛化性能,然而通过实验评估方法我们获得的是测试集上的性能,两者的对比结果可能未必相同;第二,测试集上的性能与测试集本身的选择有很大关系,且不论使用不同大小的测试集会 得到不同的结果,即使用相同大小的测试集?若包含的测试样例不同,测试结果也会有不同;第三,很多机器学习算法本身有一定的随机性,即便用相同的参数 设置在同一个测试集上多次运行,其结果也会有不同.

比较检验:在机器学习中,比较检验是一种统计分析方法,用于评估不同机器学习模型或算法之间的性能差异,或者评估模型在不同条件下的性能。比较检验的主要目标是确定是否存在统计显著性,即样本数据是否提供足够的证据来支持或反对某个假设。

那么如何进行比较检验呢?

在这里插入图片描述

注:由于急需交笔记,故省略该部分内容,请详细阅读🍉书p37-p44

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值