吃瓜笔记 第1章-绪论 + 第2章-模型评估

吃瓜笔记目录

吃瓜笔记 第1章 绪论 + 第2章 模型评估



1. 绪论

1.1 前言

在开始学习之前,我们知道西瓜书学的是什么。对于学科的分类大致有以下四种:
科学:是什么 + 为什么
技术:怎么做
工程:怎么做得多快好省(降低成本)
应用:如何使用
机器学习是一门很有意思的学科,这四种分类都有涉及,但是在本书中主要是针对前三种即科学、技术和工程进行讲解,特别是技术方面。

对于机器学习的 经典定义:
利用经验改善系统自身的性能(1997)
经验 -> 数据
目前我们处于一个大数据的时代,但是大数据并不总代表着大价值。机器学习可以通过经验将数据转化为价值,这也是机器学习在各个领域都比较出彩的原因。

机器学习的经典过程(分类)
分类
机器学习的核心研究是学习算法

机器学习的理论基础:
PAC学习模型,全称为“Probably Approximately Correct”(可能大致正确)学习模型,是机器学习中的一个重要理论框架。这个模型由Leslie Valiant于1984年提出,是计算学习理论的基石之一。PAC学习模型主要用于理解和评估学习算法在面对不确定性时的性能。PAC学习模型的重要性在于它提供了一种方法来量化学习算法的有效性。
Probably (可能):学习得到的模型以高概率(而不是绝对的)准确。
Approximately Correct (大致正确):模型的预测与真实情况足够接近,虽然可能不完全精确。

使用 PAC 学习模型的原因:机器学习或人工智能在解决问题的时候有着高度的不确定性和高度的复杂性,而且我们希望机器学习或人工智能帮我们解决的问题往往是超出了我们的知识水平,所以我们希望使用他们从过去的数据中分析得到最好的解决方法,这个时候就没办法要求他们给出完全准确的解决方法。

1.2 基本术语

数据集 (Dataset)
所有收集到的西瓜数据的集合,包括各种西瓜的特征信息。
实例/样例 (Instance/Example)
数据集中的每一条西瓜记录都是一个实例或一个例子,它由一系列特征描述。
样本 (Sample)
与“实例”或“例子”同义,指的是数据集中的单个数据点,如单个西瓜的数据记录。
属性/特征 (Attribute/Feature)
西瓜的单个描述,例如“色泽”、“根蒂”和“敲声”是西瓜的属性或特征。
特征向量 (Feature Vector)
一个西瓜的所有属性(色泽、根蒂、敲声)组合在一起形成的向量,用于在机器学习模型中表示一个实例。
维数 (Dimensionality)
特征向量中特征的数量。在西瓜的例子中,如果只考虑色泽、根蒂和敲声,维数是3。
属性值 (Attribute Value)
在给定的实例中,属性的具体值。例如,在西瓜数据集中,一个西瓜的“色泽”属性可能有“青绿”、“乌黑”或“浅白”等属性值。

属性空间/样本空间/输入空间 (Attribute Space/Sample Space/Input Space)
所有可能的属性值组合形成的空间。对于西瓜数据集,如果我们考虑色泽、根蒂和敲声三个属性,每个属性有三种可能的值,则属性空间是这些值所有可能组合的集合。在数学上,这通常表示为一个笛卡尔积,其中每个属性是一个维度。
标记空间/输出空间 (Label Space/Output Space)
在监督学习中,所有可能的标签值(例如,西瓜是好是坏)的集合构成标记空间。在分类任务中,这通常是所有类别标签的集合;在回归任务中,这可以是所有可能的连续值的范围。

假设 (Hypothesis)
对于数据背后规律的一个猜测或模型的表达。例如,在西瓜的情况下,一个假设可能是“如果西瓜的色泽是青绿且敲声是浊响,则该西瓜是好瓜”。在算法的上下文中,假设通常由模型的参数定义,并且这些参数是通过学习数据来调整的。
真相 (Ground Truth)
数据中的实际情况或真实标签。在西瓜的例子中,真相是每个西瓜是否真的是好瓜,通常由专家提供或通过观察获得。在监督学习中,我们通常有一个标注好的数据集,其中包含特征和对应的真实标签,用来训练模型。
学习器 (Learner)
实现从数据中学习的算法。在西瓜的情况下,学习器可能是一个决策树算法,它通过分析西瓜的特征和对应的真相(好瓜或坏瓜的标签)来建立模型。学习器的目标是找到一组参数,使得由它产生的假设能够尽可能准确地预测未见样本的真相。

训练样本 (Training Sample)
在训练模型时使用的每个样本。这些样本用于让机器学习算法学习和建立模型。
测试样本 (Testing Sample)
在训练模型完成后,用于测试模型性能的新样本。这些样本用于评估模型在未见数据上的表现。
训练集 (Training Set)
所有训练样本的集合。
测试集 (Test Set)
所有测试样本的集合。

泛化能力 (Generalization)
机器学习模型适用于新样本的能力,即从特殊(训练集)到一般(测试集)的能力。
未见样本 (Unseen Samples):
在训练阶段没有被用来训练学习器的数据点。未见样本的主要特征是学习器在训练过程中没有接触过它们,因此,这些样本对于评估学习器的泛化能力非常重要。

分类 (Classification)
预测值为离散值的问题,如预测西瓜是好是坏。
回归 (Regression)
预测值为连续值的问题,如预测房价高低。

监督学习 (Supervised Learning)
训练数据有标记信息的学习任务。分类和回归都属于监督学习。
无监督学习 (Unsupervised Learning)
训练数据没有标记信息的学习任务,如聚类和关联规则。

1.3 归纳偏好

归纳偏好(Inductive Bias)
机器学习中的一个重要概念,它指的是当算法面对同样的训练数据集时,为什么会偏好选择某个特定的假设(模型)而不是其他假设。归纳偏好是机器学习算法在进行归纳推理时所做出的、或者编码于算法中的某种假设。

为什么需要归纳偏好?
机器学习涉及从有限的训练数据中学习并做出推广到未见数据的决策。由于存在无限多的可能的假设可以与有限的训练数据一致,因此需要某种偏好或假设来选择其中的一个。这种偏好允许算法优先考虑某些类型的假设。没有归纳偏好,机器学习算法就无法从有限的数据中进行有效的学习。
“若非必要,勿增实体”:在多个模型都能解释已知数据的情况下,我们应该选择最简单的那个。

奥卡姆剃刀 (Occam’s Razor)
这是一种常见的归纳偏好,它偏好简单的假设而不是复杂的假设。但什么是最简单的并不容易判断。在机器学习中,这可能意味着选择参数数量较少的模型,或是在决策树中选择较短的树。

No Free Lunch (NFL)
所有的优化算法在所有可能的问题上平均表现是相同的。
换句话说,**没有一个算法能够在所有可能的问题上都是最好的。一个算法在某些问题上表现得比其他算法好,必然意味着在其他问题上表现得比其他算法差。**这个定理的一个直观解释是:如果一个算法在某类问题上做得特别好,那么必然有另一类问题存在并在那里做得特别差。

2. 模型评估与选择

2.1 经验误差和过拟合

经验误差 (Empirical Error)
也称作训练误差,指的是学习器在训练集上的平均误差。它直接反映了学习器在训练集上的拟合程度。
泛化误差 (Generalization Error)
这是学习器在所有新样本上的平均误差,包括测试集和实际应用中遇到的样本。泛化误差的大小决定了学习器实际应用的效果,我们通常希望学习器具有低泛化误差,即在新样本上也能保持较低的误差水平。
经验误差仅反映了学习器在训练数据上的性能,而泛化误差反映了学习器在任何新数据上的预期性能。一个学习器可能在训练集上有很低的经验误差,但如果它将训练数据的特殊性学得太好,可能会导致在新数据上的泛化误差高。

过拟合 (Overfitting)
发生于学习器学习能力过强,以至于它学到了训练数据中的噪声和特殊性质,而这些特性并不具有普遍性。过拟合的学习器在训练集上表现出很低的误差,但在新样本上的泛化误差较大。
欠拟合 (Underfitting)
发生于学习能力不足的情况,即学习器未能在训练集上学习到数据的基本特征,导致其在训练集和新样本上都表现出高误差。
对比
我们无法直接获得泛化误差,训练误差因为过拟合现象的存在而不适合作为标准,如何进行模型的评估与选择是一个大问题。这个问题可以分解为以下三个关键问题:
三个问题

2.2 评估方法

评估方法的关键在于怎么获得“测试集”注意测试集和训练集应该“互斥”。

2.2.1 留出法 (Hold-out)

留出法是最直接的数据划分方法,它将数据集分为两部分:训练集和测试集。训练集用于建立模型,测试集用于评估模型。

如何做:通常,我们会随机选择大约2/3到4/5的数据作为训练集,剩下的作为测试集。
注意点:为了确保我们的模型评估是公正的,训练集和测试集的数据分布应该和原始数据集保持一致。这通常通过分层抽样来实现,确保每一类别的样本比例相同。
缺点:留出法的一个缺点是结果可能因为数据划分的方式不同而有较大变动。为了得到更稳定的评估结果,可以多次随机划分,然后取平均值。

2.2.2 交叉验证法 (Cross-Validation)

交叉验证法通过将数据集分成k个较小的集合来提高模型评估的稳定性和可信度。

如何做:我们将数据集分成k个大小相等的子集。然后,每次选择其中一个子集作为测试集,剩下的k-1个子集作为训练集。这个过程重复k次,每个子集都有一次机会作为测试集。
常见做法:最常用的是10折交叉验证,即k=10。为了得到更稳定的结果,可以重复整个k折验证过程多次,例如10次10折交叉验证。
优点:每个数据点都会被用于训练和测试,这样可以减少结果因数据划分不同而产生的波动。

2.2.3 自助法 (Bootstrapping)

自助法是在原始数据集不够大或者很难划分时使用的一种方法。

如何做:对于包含m个样本的数据集,我们进行m次有放回的随机抽样,形成新的训练集。这意味着一些样本会在新的训练集中出现多次,而有些则可能一次都不出现。
特点:约有36.8%的原始样本不会出现在新的训练集中,这些可以用作测试集。
优点与缺点:自助法允许我们使用全部数据进行训练和测试,但它改变了数据集的分布,可能引入估计偏差。

2.3 调参与最终选择

当我们使用机器学习算法时,调整参数(即“调参”)对于优化模型性能至关重要。参数就像是调整算法性能的旋钮,不同的设置会导致模型性能的显著差异。
大多数学习算法的参数是实数,它们的取值范围很广,因此不可能对每个可能的参数值都训练一个模型。常见的做法是为每个参数选择一个值域和步长λ,从而使得参数搜索过程变得可行。这就像是在准备一道复杂的菜肴时,厨师需要调整不同的调料比例来达到最佳的味道。虽然调料的种类和比例可能很多,但通过控制每种调料的量(步长)和尝试不同的组合(值域),厨师可以找到最佳的食谱。
参数

2.4 性能度量

性能度量(Performance Metric)
用来评估模型预测结果好坏的标准。不同的任务和应用场景需要不同的性能度量。

对于多分类任务
TP (True Positives): 正确预测为正例的数量。
TN (True Negatives): 正确预测为负例的数量。
FP (False Positives): 错误预测为正例的数量。
FN (False Negatives): 错误预测为负例的数量。
准确率(Accuracy)
衡量预测正确的样本占总样本的比例。它是最直观的性能评估指标。
Accuracy = (TP + TN) / (TP + TN + FP + FN)
精确率(Precision)
衡量在所有预测为正例的样本中,实际为正例的比例。
Precision = TP / (TP + FP)
召回率(Recall)
衡量在所有实际为正例的样本中,被正确预测为正例的比例。
Recall = TP / (TP + FN)
F1 分数(F1 Score)
精确率和召回率的调和平均值,它试图平衡精确率和召回率。
F1 Score = 2 * (Precision * Recall) / (Precision + Recall)

对于回归任务
均方误差(Mean Squared Error, MSE)
预测值与实际值之间差异的平方的平均值,它可以量化预测误差的大小。
MSE = (1/m) * Σ(y_i - ŷ_i)²
均方根误差(Root Mean Squared Error, RMSE)
均方误差的平方根,提供了误差的标准差大小。
RMSE = √MSE

总结

最近,我又重新开始了解机器学习的基础概念,这次的学习感觉与以往有所不同。虽然之前已经整体学过一遍,但这次我发现自己对这些概念的理解更加深刻了。特别是在学习绪论部分的时候,我从 B 站上周志华老师亲讲的课程中获得了很多新的启发。他的讲解让我对机器学习的基本定义、学习的目标以及如何进行更深层次的拓展学习有了新的见解。
虽然视频课程的内容安排和西瓜书里的不完全一样,但这反而帮助我从不同的角度理解了同一个概念。在视频讲解中的上下衔接更为顺畅,特别是第二章中的三个关键问题提出来,加深了我对这一章结构安排的理解。总得来说,如果光看书学习的效率可能没有看视频跟着学习高。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值