1、绪论

1.1 机器学习的定义

机器学习正是这样一门学科,它致力于研究如何通过计算的手段,利用经验来玫善系统自身的性能在计算机系统中,"经验"通常以"数据"形式存在,因此?机器学习所研究的主要内容,是关于在计算机上从数据中产生"模型" (model) 的算法,即"学习算法" (learning algorithm). 有了学习算法,我们把经验数据提供给它,它就能基于这些数据产生模型;在面对新的情况时(例如看到一个没剖开的西瓜),模型会给我们提供相应的判断(例如好瓜) .如果说计算机科学是研究关于"算法"的学问,那么类似的,可以说机器学习是研究关于"学习算法"的学问.
本书用"模型"泛指从数据中学得的结果有文献用"模型"指全局性结果(例如一棵决策树),而用"模式"指局部性结呆(例如 条规则).

1.2 基本术语

  • 数据集:样本sample/示例instance的集合 D={x1,x2,...xm}
  • 样本sample/示例instance:包含研究对象在某方面的表现,即属性attribute(或特征feature)/属性值attribute value,是样本空间中的一个向量 Xi=(Xi1;Xi2;...Xid)
  • 属性空间attribute space/样本空间sample space:把属性作为坐标轴构造的n维空间
  • 特征向量feature vector:一个样本在样本空间中的坐标表示。
  • 用于训练过程中的数据称为训练数据,训练样本组成的集合称为训练集。模型有时也称为学习器,可看作学习算法在给定数据和参数空间上的实例化,学习过程是为了找出或逼近真相(ground-truth)。
  • 除了有示例数据之外,还需要示例结果——“好瓜”与“坏瓜”,即标记(label)。拥有label的称为样例,表示第i个样例,其中是示例的label,是所有标记的集合,称为“标记空间”或“输出空间”。
  • 若预测的是连续值,则称此类学习任务为“回归”;
  • 若预测的是离散值,则称此类学习任务为“分类”,分类可分为二分类和多分类。
  • 预测任务旨在通过训练集进行学习,建立一个从输入空间X到输出空间Y的映射。
  • 被预测的样本为测试样本,其集合称为测试集。
  • 根据标记信息(label)的有无,学习任务大致可分为两大类:监督学习和无监督学习。回归与分类属于前者,聚类(将训练集按照某种标准划分为若干组,每组都有某种相似特性)属于后者。
  • 模型适用于新样本的能力称为“泛化能力”。一般来说,训练集越大,模型学习的关于未知分布D(假设样本空间全体样本服从该分布)的信息越多,其泛化能力强的可能性越大。

1.3 假设空间

在学习过程中,我们面对的可能是一个庞大的假设空间。有效的学习策略需要在这个空间中找到合适的假设。归纳偏好是学习算法在众多等效假设中进行选择的一种“价值观”,它决定了算法在遇到新样本时的行为。

  • 归纳学习: 从样例中学习概念或规律。

  • 版本空间: 与训练集一致的假设集合。

1.4 归纳偏好

归纳偏好体现了学习算法在选择假设时的倾向性,例如是否倾向于选择简单或者复杂的模型。奥卡姆剃刀原则(Occam's razor)是选择简单假设的一种常用方法,但并非唯一可行的原则。一个有效的学习方法应该基于具体问题的特点来决定其归纳偏好。

  • 简单性原则: Occam's Razor,选择最简单的假设。
  • 归纳偏好的作用: 指导搜索假设空间,避免等效假设迷惑。

1.5 发展历程

机器学习作为人工智能的一个分支,其发展历史可以追溯到20世纪中叶。以下是机器学习发展历史的简要概述:

  1. 起源阶段:20世纪40年代至50年代,随着计算机技术的诞生和发展,科学家们开始探索如何让计算机自主学习和决策。1943年,McCulloch和Pitts提出了神经网络的计算模型理论,为机器学习奠定了基础。

  2. 初步发展阶段:1950年,图灵提出了著名的“图灵测试”,人工智能成为科学领域的重要课题。1957年,Rosenblatt提出了感知机(Perceptron)模型,这是神经网络模型的开山鼻祖。

  3. 冷静时期:20世纪60年代中叶至70年代中叶,由于感知机的局限性,机器学习的发展几乎停滞。主要原因包括理论匮乏、计算机硬件的限制以及对感知机效果的质疑。

  4. 复兴时期:20世纪70年代中叶至80年代末,机器学习开始复兴。1980年,卡内基梅隆大学举办了首届机器学习国际研讨会。1986年,《Machine Learning》期刊的创刊标志着机器学习再次成为研究焦点。

  5. 深度学习兴起:1986年,Rumelhart等人提出了反向传播算法(BP)。2006年,Hinton等人提出了深度学习模型,开启了深度网络机器学习的新篇章。

  6. 深度学习快速发展:2012年,Hinton团队使用深度学习模型赢得ImageNet比赛,标志着深度学习进入快速发展阶段。近年来,深度学习在多个领域取得了显著成果,如谷歌翻译、苹果Siri等。

  7. 当前发展:随着大数据时代的到来,机器学习在金融、医疗、自动驾驶等领域得到广泛应用。同时,机器学习也在不断发展新的算法和理论,如集成学习、强化学习等。

1.6 应用现状

  • 图像识别、自然语言处理、推荐系统等。

2. 模型评估与选择

2.1 经验误差与过拟合

经验误差(Empirical Error)

经验误差,也称为训练误差或训练误差率,是指模型在训练数据集上的表现。它是通过比较模型预测的结果与训练集中的真实标签来计算的。经验误差可以给我们一个模型在训练数据上的性能指标,但它并不总是一个好的泛化能力的指标。如果模型过于复杂,它可能会在训练数据上表现得很好,但在未见过的数据上表现不佳,这种情况称为过拟合。

过拟合(Overfitting)

过拟合是指模型在训练数据上表现得非常好,但在新的、未见过的数据上表现不佳的现象。这通常发生在模型过于复杂,以至于它学习了训练数据中的噪声和细节,而不是潜在的数据分布。过拟合的模型缺乏泛化能力,即它们不能很好地推广到新数据。

2.2 评估方法

为了准确评估模型的性能,我们通常需要使用测试集来进行评估,这要求测试集与训练集相互独立且分布相似。留出法、交叉验证法和自助法都是常用的评估方法,它们各有优缺点并适用于不同的场景。调参是模型评估过程中不可忽视的一部分,适当的参数设置可以显著提升模型性能。最终提交给用户的模型应该是基于完整数据集重新训练得到的。

  • 留出法: 将数据集分为训练集和测试集进行评估。
  • 交叉验证法: 也称k折交叉验证,通过多次划分来估计泛化误差。将数据集分割成多个子集,轮流使用其中一个作为测试集,其余作为训练集,这样可以更全面地评估模型的泛化能力。
  • 自助法: 通过自助采样生成多个训练集进行评估,减少偏差。
  • 调参: 根据参数设置的不同,可能会影响模型性能。
  • 最终模型选择: 根据完整的数据集重新训练选定的模型参数配置。

2.3 性能度量

在机器学习中,性能度量是用来评估模型好坏的关键指标。以下是一些常见的性能度量方法:

错误率与精度

  • 错误率(Error Rate):模型预测错误的样本占总样本的比例。它是1减去准确率(Accuracy)。
  • 精度(Accuracy):正确预测的样本占总样本的比例。在问题类别平衡时,精度是一个有用的指标。

查准率、查全率与F1分数

  • 查准率(Precision):在所有被模型预测为正类的样本中,实际为正类的比例。高查准率意味着较少的假正例。 Precision=????+??Precision=TP+FPTP​
  • 查全率(Recall) 或 真正率(True Positive Rate, TPR):在所有实际为正类的样本中,被模型正确预测为正类的比例。高查全率意味着较少的假负例。 Recall=????+??Recall=TP+FNTP​
  • F1分数(F1 Score):查准率和查全率的调和平均值,是一个综合考虑查准率和查全率的性能指标。 ?1=2×Precision×RecallPrecision+RecallF1=2×Precision+RecallPrecision×Recall​

ROC AUC

  • ROC AUC(Receiver Operating Characteristic Area Under the Curve):接收者操作特征曲线下面积,用来衡量分类模型的性能。ROC曲线是通过将不同阈值下的真正例率(TPR)和假正例率(FPR)绘制在图表上来得到的。AUC值越高,模型的性能越好。

代价敏感错误率

  • 代价敏感错误率(Cost-sensitive Error Rate):在不同的错误预测上赋予不同的代价,通常用来处理不平衡数据集问题。例如,将正类错误分类为负类的代价可能高于将负类错误分类为正类。

代价曲线

  • 代价曲线(Cost Curve):类似于ROC曲线,但是每个点上的y轴值是不同错误类型的代价加权和。代价曲线提供了模型在不同错误类型代价下的性能视图。

其他度量

  • Matthews相关系数(Matthews Correlation Coefficient, MCC):一个介于-1和+1之间的值,用来衡量二分类模型的质量。+1表示完美预测,0表示随机预测,-1表示所有预测都是错误的。
  • 混淆矩阵(Confusion Matrix):一个表格,用来描述模型预测与实际标签之间的关系,包括真正例(TP)、假正例(FP)、真负例(TN)和假负例(FN)。

选择合适的性能度量取决于具体的应用场景和问题类型。例如,在医学诊断中,我们可能更关心减少假负例,因此查全率或代价敏感错误率可能是更合适的度量。而在垃圾邮件过滤中,我们可能更关心减少误判正常邮件为垃圾邮件的情况,此时查准率可能是一个重要的度量。

2.4 比较检验

在机器学习中,比较检验是用来评估不同模型或算法性能差异是否具有统计学意义的方法。以下是一些常见的比较检验方法:

假设检验(Hypothesis Testing)

假设检验是统计学中用来确定两组数据之间差异是否具有统计学意义的一种方法。在机器学习中,我们通常使用假设检验来比较两个模型的性能。这涉及到以下步骤:

  • 零假设(Null Hypothesis, H0):假设两个模型的性能没有差异。
  • 备择假设(Alternative Hypothesis, H1):假设两个模型的性能有差异。
  • p值(p-value):如果观察到的数据在零假设为真的情况下出现的概率。如果p值小于某个阈值(如0.05),则拒绝零假设,认为两个模型的性能有显著差异。

交叉验证t检验(Cross-Validation t-test)

交叉验证t检验是一种用于比较两个模型性能的方法,它考虑了模型性能估计的不确定性。该方法通常包括以下步骤:

  • 对每个模型使用相同的数据集进行k次交叉验证。
  • 计算每个模型的平均性能和标准差。
  • 使用t检验来比较两个模型的平均性能是否存在显著差异。

McNemar检验

McNemar检验用于比较两个分类模型在分类问题上的性能,特别是当数据集是二分类问题,并且两个模型在分类决策上存在差异时。McNemar检验考虑了成对的比较,可以检测两个模型在特定类别上的差异是否具有统计学意义。

Friedman检验

Friedman检验是一种非参数统计检验,用于比较三个或更多个模型的性能。当数据不符合正态分布或方差不齐时,Friedman检验是一个有用的替代方法。检验步骤如下:

  • 对所有模型进行排名,排名越低表示性能越好。
  • 计算每个模型的排名和以及所有排名的总和。
  • 使用Friedman检验的公式来确定模型性能是否存在显著差异。

Nemenyi后续检验(Nemenyi Post Hoc Test)

当Friedman检验显示模型性能存在显著差异时,我们通常需要进一步确定哪些模型之间存在差异。Nemenyi后续检验就是这样一种方法,它可以用于确定具体哪些模型对之间的性能有显著差异。它基于学生化秩次分数,并控制了第一类错误的总概率。

注意事项

  • 在进行比较检验时,需要注意数据的独立性、正态性和方差齐性等假设条件。
  • 比较检验的结果可能会受到样本大小、数据分布和模型选择的影响。
  • 在实际应用中,比较检验应该与其他模型评估方法(如交叉验证)结合使用,以获得更全面的模型性能评估。

2.5 偏差与方差

偏差(Bias)

  • 定义:偏差是指学习算法的预测结果与真实结果之间的差距,反映了模型的拟合能力。偏差度量了算法本身的预测能力。
  • 影响因素:可以通过控制学习算法的训练程度来调整偏差,例如通过调整决策树的层数或神经网络的训练轮数。

方差(Variance)

  • 定义:方差度量了由于训练集大小的变动导致的学习性能的变化,反映了数据扰动对模型性能的影响。
  • 影响因素:可以通过集成学习方法控制基学习器的个数来减少方差。

噪声(Noise)

  • 定义:噪声表达了在当前任务上任何学习算法所能达到的期望泛化误差的界,反映了学习问题本身的难度。

泛化性能

  • 泛化性能:泛化性能由学习算法的能力、数据的充分性以及学习任务本身的难度共同决定。

偏差-方差窘境(Bias-Variance Dilemma)

  • 定义:偏差和方差之间存在冲突,通常降低偏差可能会增加方差,反之亦然。
  • 表现
    • 在训练不足时,偏差主导泛化错误率,因为模型的拟合能力不够强。
    • 随着训练程度的加深,方差逐渐主导泛化错误率,因为模型开始学习到训练数据中的扰动。
    • 在训练过度时,模型可能会学习到训练数据的非全局特性,导致过拟合。

解决策略

  • 控制训练程度:合理选择学习算法的训练程度,避免训练不足或过度。
  • 正则化技术:使用如L1、L2正则化等技术来控制模型复杂度,减少过拟合风险。
  • 数据增强:通过数据增强等方法增加数据的多样性,减少模型对特定数据集的敏感性。
  • 集成学习:使用集成学习方法,如随机森林或梯度提升树,通过结合多个模型的预测来降低方差。

结论

为了取得好的泛化性能,需要在偏差和方差之间找到一个平衡点。这通常涉及到模型选择、正则化、数据预处理和模型评估等多个方面。通过理解和应用这些概念,可以构建出具有更好泛化能力的机器学习模型。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部