第1章 什么是机器学习

1.1 定义

机器学习(Machine Learning,ML)是人工智能的一个分支,我们通过定义算法,以训练一个可从数据中描述和抽取有价值信息的模型。

  • 应用程序使用的算法,即被称为模型
  • ML分为三类: 有监督学习、无监督学习、半监督学习
  • 目标: 从数据中学习
  • 数据集(dataset): 在这里插入图片描述
    其中ei 是第i个示例,li 是其标签,k代表数据集的有限的基数
    数据上训练一个模型,使其学习将示例ei中提取的一组特定特征(或示例ei本身)对应到标签li上。
1.2 数据集的分割

训练集:用于训练模型的子集。
验证集:用于在训练期间测试模型性能以及执行超参数调整/搜索的子集。
测试集:在训练或验证阶段不接触的子集。仅用于最终性能评估。

  • 降维技术,比如主成分分析(Principal Component Analysis,PCA)或t-分布邻域嵌入算法(t-distributed Stochastic Neighbor Embedding,t-SNE)
  • 在高维空间中工作时,某些特定的几何属性无法如我们所预想的那样正常工作,这被称为维度诅咒
  • n维空间: 一种对数据集建模的方法,其示例各有n个属性
  • 数据集中的每个示例ei都由它的n个属性xj=0,…,n–1来描述
  • ei=(x0, x1, …, xn-1)
  • 在维度诅咒,指的是只有在高维空间中处理数据时才会出现的各种现象,而在二维或三维空间等低维环境中不会出现这些现象。
    • 随着维度的增加,一些违反直觉的事情开始发生,这就是维度诅咒。
    • 现在,应该更清楚的是,在高维空间中工作并不容易,而且也不直观。深度神经网络的最大优势之一(也是其广泛使用的原因之一),是在高维空间中使问题易于处理,从而逐层降维。
  • 有监督学习: 有监督学习算法的工作原理是从知识库
    (Knowledge Base,KB)中提取知识,KB包含我们需要学习的概念的标注实例的数据集
  • 机器学习模型是参数模型,以使用一个函数描述一个模型,该函数的输入输出都是已知的(这一点在有监督学习的情况下是显而易见的),目的是更改模型参数,以便在给定特定输入的情况下,使模型产生预期的输出。
  • K-NN算法 是非参数算法
  • 在尝试将线性模型拟合到数据之前,我们应该首先确定因变量和自变量之间是否存在线性关系(通常使用散点图是有用的)
  • 拟合回归线方程最常用的方法是最小二乘法
  • 有监督学习算法的目标是迭代数据并迭代调整参数θ,使fθ能够正确地对观察到的现象进行建模。
  • 过拟合:模型调整参数使其仅拟合了训练数据,几乎记住了数据集,因此失去了全部泛化能力。当我们使用的模型过于复杂而无法为简单事件建模时,就会发生这种现象。
  • 欠拟合:当我们的模型对于数据集而言过于简单,因此无法驳货数据的所有复杂性时,会发生欠拟合。
  • 超参数:当要完全定义的算法需要将值分配给一组参数时,需要考虑超参数。我们将定义算法本身的参数称为超参数。例如,神经网络中神经元的数量就是一个超参数

1.3 度量指标

是给出模型预测的函数。预期的输出会产生一个数字值分数,用于衡量模型的优劣。

1.3.1 分类模型度量指标
准确率

准确率(accuracy)是做出的正确预测的数量与所有预测的数量之比。衡量多分类问题的分类性能。
在这里插入图片描述
对于一个包含N个元素的完整数据集,所有样本的平均精度:
在这里插入图片描述
只有在属于每个类别的样本数量相等时,它才能很好地工作(我们需要使用平衡的数据集)
在不平衡数据集的情况下,或者当预测错误类别的错误高于/低于预测另一个类别时,准确率不是使用的最佳度量指标

  • 度量指标可以在训练阶段用于衡量模型的性能,我们可以通过查看验证准确率和训练准确率来监控训练的执行情况,以检测我们的模型是否对训练数据过拟合或欠拟合。
  • 如果模型可以对数据中存在的关系进行建模,则训练准确率会提高;如果不是,则模型过于简单,我们无法拟合数据。在这种情况下,我们必须使用具有更高学习能力(具有更多可训练参数)的复杂模型。
  • 如果训练准确率提高了,我们可以开始查看验证准确率(总是在每轮训练结束时):如果验证准确率停止增长甚至开始下降,则该模型过拟合了训练数据,我们应该停止训练(这称为提前停止,是一种正则化技术)
混淆矩阵

混淆矩阵是表示分类器性能的一种表格方式。它可用于总结分类器在测试集上的表现,且仅可用于多分类问题。,混淆矩阵不是一个度量指标。事实上,矩阵本身并不能衡量模型的性能。
在这里插入图片描述
但它是计算几个有用度量指标的基础,所有这些度量指标均基于真阳性、真阴性、假阳性和假阴性。
这些术语均指一个类,这意味着在计算这些术语时,必须将多分类问题视为二分类问题。给定一个多分类问题,其类别为A,B,…,Z,如下:
.(TP)A的真阳性:所有归类为A的A实例。
·(TN)A的真阴性:所有未归类为A的非A实例。
·(FP)A的假阳性:所有归类为A的非A实例。
·(FN)A的假阴性:所有未归类为A的A实例。
计算的具有TP、TN、FP和FN值的重要度量指标精度、召回率和F1分数

  • 精度: 精度是正确的阳性结果数与预测的阳性结果数的比值:
    在这里插入图片描述
    该度量指标的名称本身就描述了在此处度量的内容:[0,1]范围内的一个数字,它表示分类器的预测准确率,此值越高越好。但是,就准确率而言,仅使用精度值可能会产生误导。高精度只是意味着,当我们预测正类时,我们对它的检测是精确的。但这并不意味着我们在不检测这个类时它也是准确的

    为了了解分类器的完整行为还应考虑的另一项度量指标是召回率

    • 召回率:指正确阳性结果的数量除以所有相关样本(例如,所有应该归类为阳性的样本)的数量:
      在这里插入图片描述
      与精度一样,召回率的范围是[0,1],表示正确分类的样本占该类所有样本的百分比。召回率是一个重要的度量指标,特别是在图像目标检测等问题上。

      通过度量二分类器的精度和召回率,可以调整分类器的性能,使其按需运行。
      有时候,精度比召回率更重要,反之亦然。

  • F1分数
    F1分数是精度和召回率之间的调和平均值。此值的取值范围为[0,1],表示分类器的精度和鲁棒性。
    F1分数的值越大,模型的整体性能越好:
    在这里插入图片描述

  • ROC曲线下面积

  • 受试者工作特征(Receiving Operating Characteristic,OC)曲线下面积是衡量二分类问题最常用的度量指标之一。

    大多数分类器产生[0,1]范围内的分数,而不是直接作为分类标签。分数必须用阈值来决定分类。一个自然的阈值是当分数高于0.5时将其归类为阳性,否则将其归类为阴性,但这并不总是应用程序希望的(考虑如何识别患有疾病的人)。

    改变阈值将改变分类器的性能,改变TP、FP、TN、FN的数量,从而改变总体的分类性能。

    可以通过绘制ROC曲线来考虑阈值变化的结果。ROC曲线考虑了假阳性率(特异性)和真阳性率(灵敏度):二分类问题是这两个值之间的权衡。可将这些值描述如下。

    • 灵敏度:真阳性率定义为被正确视为阳性的阳性数据点相对于所有阳性数据点的比例:
      在这里插入图片描述
    • 特异性:假阳性率定义为被认为是阳性的阴性数据点相对于所有阴性数据点的比例:
      在这里插入图片描述
      AUC是ROC曲线下的面积,可通过更改分类阈值获得。
      通过更改分类阈值获得的ROC曲线。虚线表示随机猜测的期望

    很明显,TPR和FPR的取值范围均在[0,1]范围内,通过改变分类器的分类阈值来绘制图像,以获得每个阈值的不同TPR和FPR对。AUC的取值也在[0,1]范围内,值越大,说明模型性能越好。

1.3.2 回归模型度量指标
  • 平均绝对误差
    平均绝对误差(MAE)是原始值和预测值之间的绝对差的平均值。由于我们现在对衡量回归器的性能很感兴趣,因此必须考虑yi和的值是数值:
    在这里插入图片描述
    MAE值没有上限,其下限为0。显然,我们希望MAE的值尽可能接近于0。

    MAE为我们指出了预测与实际输出之间的差距,这个指标很容易解释,因为它的值也与原始响应值处于相同的范围。

  • 均方误差
    均方误差(MSE)是原始值与预测值之差的平方的平均值:
    在这里插入图片描述
    与MAE一样,MSE没有上限,下限为0。

    相反,平方项的存在使度量指标不太容易解释。

    最佳实践之一是同时考虑这两个度量指标,以便获得有关错误分布的尽可能多的信息。

    MAE≤MSE关系成立,因此以下情况成立:
    ·如果MSE接近MAE,则回归器会产生较小的误差。
    ·如果MSE接近MAE2,则回归器会产生较大的误差。

使用参数化模型可以为我们提供这种灵活性——我们可以在模型达到所需性能时冻结其状态,然后继续进行训练,更改超参数并尝试使用不同的配置/训练策略,同时还具有了已存储了良好性能模型的确定性。

  • 模型选择 在训练过程中有度量标准和度量能力,再加上可以保存的参数化模型的使用,使我们有能力评估不同的模型,只保存最符合我们需求的模型。这个过程被称为模型选择,是每一个设计良好的ML流水线的基础
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐