Week 04 - 02 - W4L2_Decision_tree_and_ensemble 视图:双语并排 英文 中文 倍速:1x 1.5x 2x
空格=播放/暂停当前页 · Tab=切换 简短/详细/深入 · 红色「深入」为重点页的深度讲解
这一页讲的是决策树和集成学习的主题,包括手动创建、自动生成和集成方法。
这一页讲的是决策树(Decision Tree)和集成学习(Ensemble)的内容,是人工智能基础课程的第八讲。主要涵盖三方面:手动创建决策树(Manual)、自动生成决策树(Induced)以及集成方法(Ensembles)。决策树是一种重要的机器学习算法,它通过树状结构进行决策,直观易懂且适用于分类和回归任务。集成学习则是通过组合多个模型(如决策树)来提高预测性能,常见方法包括随机森林(Random Forest)和梯度提升(Gradient Boosting)。这些技术在实际应用中非常重要,例如在金融领域进行信用评分或在医疗领域进行疾病预测。本页还提供了课程讲师的个人主页链接和所属机构信息,方便学生进一步了解课程资源。
这一页讲的是决策树及其扩展方法,包括 CART 和集成学习方法。重点是决策森林、Bagging 和 Boosting。
这一页讲的是决策树(Decision Tree)及其在数据中自动学习知识的能力。决策树是一种直观的知识表示方式,可以通过数据自动生成。幻灯片重点介绍了构建决策树的几种方法,尤其是 CART(Classification And Regression Trees,分类与回归树),这是构建决策树的一种重要算法。随后介绍了集成学习(Ensemble Learning)的概念,即通过组合多个决策树来提高模型性能。集成学习的具体方法包括决策森林(Decision Forest)、Bagging 和 Boosting,其中 Boosting 的具体算法有 AdaBoost 和 GTBoost。这些方法通过不同的策略组合多个模型,例如 Bagging通过随机采样生成多个模型,而 Boosting通过调整权重来优化模型。集成学习可以显著提高模型的准确性和鲁棒性,是机器学习中非常重要的技术。
这一页讲的是 Decision Trees 决策树,展示了一个分类水果的示例。关键点包括决策树的结构、节点的条件判断以及分类结果。
这一页讲的是 Decision Trees 决策树,主要用于分类问题。图中展示了一个简单的决策树,用于根据水果的宽度 (width) 和高度 (height) 来分类不同的水果。决策树从根节点开始,首先判断宽度是否大于 6.5cm。如果是,则进入下一层节点,判断高度是否大于 9.5cm;如果不是,则进入另一分支,判断高度是否大于 6.0cm。最终的叶节点代表分类结果:宽度大于 6.5cm 且高度大于 9.5cm 的水果为柠檬;宽度大于 6.5cm 且高度小于等于 9.5cm 的水果为橙子;宽度小于等于 6.5cm 且高度大于 6.0cm 的水果为柠檬;宽度小于等于 6.5cm 且高度小于等于 6.0cm 的水果为橙子。这个示例直观地展示了决策树如何通过一系列条件判断来实现分类,具有清晰的逻辑结构,适合处理结构化数据。
这一页讲的是决策树 (Decision Trees)。主要介绍如何通过宽度和高度的条件分类测试样本,并最终决定其类别。
这一页讲的是决策树 (Decision Trees),一种用于分类任务的机器学习算法。决策树通过一系列条件节点逐步将样本分类。这张幻灯片以水果分类为例,展示了决策树的工作原理。首先,测试样本的宽度是否大于 6.5cm。如果是,则进入下一个节点,判断高度是否大于 9.5cm。如果高度大于 9.5cm,样本被分类为柠檬;否则分类为橙子。如果宽度不大于 6.5cm,则进入另一个分支,判断高度是否大于 6.0cm。如果高度大于 6.0cm,样本被分类为柠檬;否则分类为另一种橙子。图中蓝框标注的样本最终分类为右下角的橙子。决策树的优点是直观易懂,适合处理具有明确规则的分类问题。
这一页讲的是决策树 (Decision Trees),通过递归地根据属性进行分裂来预测结果。图示展示了分类过程及树结构。
这一页讲的是决策树 (Decision Trees),它是一种机器学习算法,通过递归地根据不同属性进行分裂来预测结果。左侧图表展示了水果的分类情况,其中横轴是宽度 (width, cm),纵轴是高度 (height, cm)。数据点分为两类:橙子 (oranges) 和柠檬 (lemons),通过黑色的分割线划分。右侧的树结构图详细说明了分类过程:首先检查宽度是否大于 6.5 cm;如果是,则进一步检查高度是否大于 9.5 cm,最终决定是柠檬还是橙子;如果宽度小于 6.5 cm,则检查高度是否大于 6.0 cm,以确定分类结果。这个递归分裂的过程体现了决策树的核心思想:通过逐步分裂数据空间,找到最优的分类规则。决策树的重要性在于它直观易懂,适用于分类和回归任务。例如,根据水果的宽度和高度,可以快速分类出橙子和柠檬。
这一页讲的是决策树 (Decision Trees),一种非参数的监督学习技术。主要包括根节点 (Root Node)、内部节点 (Internal Node) 和叶节点 (Leaf Node),用于通过数据特征生成决策规则。
这一页讲的是决策树 (Decision Trees),它是一种非参数 (non-parametric) 的监督学习方法,用于通过数据特征生成一系列决策规则。决策树的基本结构包括三个关键部分:根节点 (Root Node) 是整个树的起点;内部节点 (Internal Node) 是分组进一步分裂的地方,通常称为决策节点 (Decision Node),它根据子组的最佳属性进行分裂;叶节点 (Leaf Node) 是最终的决策节点,不再有分支。幻灯片中的示意图展示了决策树的结构,明确了从根节点到叶节点的分裂路径。此外,决策树可以采用 n 路决策,但二元分裂 (binary branching) 更为常见。一个简单的例子是通过回答“是/否”问题来逐步分类,比如判断某人是否会购买某种产品。决策树的优势在于直观易懂,适合处理分类和回归问题。
这一页讲的是决策树的分类与回归。主要内容包括分类树输出离散值,叶节点值为样本中最常见类别;回归树输出连续值,叶节点值为样本目标值的平均值。
这一页讲的是决策树的分类与回归。决策树通过从根节点到叶节点的路径划分输入空间的区域 Rm,每个区域包含训练样本 {(x^(m), t^(m)), ..., (x^(mk), t^(mk))}。分类树 (Classification Tree) 的输出是离散值,叶节点的值通常设置为样本中最常见的类别,例如在某一区域内若橙子出现次数最多,则叶节点分类为橙子。回归树 (Regression Tree) 的输出是连续值,叶节点的值通常设置为样本目标值的平均值,例如在某一区域内若目标值为高度,叶节点的值会是该区域样本高度的平均值。右侧的图展示了一个分类树的例子,其中通过分割宽度和高度的空间,将橙子和柠檬分开。图中的分割线代表决策树的划分规则。此页重点讲解分类树的原理与应用。
这一页讲的是决策树的表达能力(Expressiveness),包括离散输入/输出和连续输入/输出两种情况。
这一页讲的是决策树的表达能力(Expressiveness)。首先,针对离散输入(discrete-input)和离散输出(discrete-output)的情况,决策树可以表达输入属性的任何函数。例如,对于布尔函数(Boolean functions),每个真值表(truth-table)的行都可以对应到决策树中的一个路径到叶节点。幻灯片中的图展示了一个简单的布尔函数 A XOR B 的决策树结构,其中 A 和 B 的不同组合通过树的分支最终得到对应的输出值。其次,对于连续输入(continuous-input)和连续输出(continuous-output)的情况,决策树能够近似任意函数,但精确度取决于训练集的有限性。虽然可以为有限训练集构建一个一致的决策树(例如每个样本对应一个路径),但这种树可能具有很差的泛化能力(generalization)。这说明决策树在表达能力上非常灵活,但需要权衡复杂度与泛化性能。
这一页讲的是决策树的表达能力及其与规则的映射关系。主要内容包括如何将决策树的路径转化为规则,以及决策树与基于规则的专家系统的联系。
这一页讲的是决策树(Decision Tree)的表达能力,特别是如何将决策树的路径映射为规则(Rules)。幻灯片的左侧展示了规则的等价视图(Equivalent Rule View),指出如果 A、B 和 C 条件都满足,则接受报价(Accept Offer);如果 A、B 或 C 中任意一个条件不满足,则拒绝报价(Decline Offer)。右侧的决策树图表展示了从根节点到叶节点的路径,每条路径代表一个决策规则。例如,路径 A → B → C 对应的是接受报价的规则,而其他路径对应拒绝报价的规则。通过这种方式,决策树的推理可以与基于规则的专家系统相连接。这种映射方式的重要性在于,它可以将复杂的树状决策结构简化为可读性强的规则形式,从而便于理解和应用。举例来说,若某人的薪资范围为 50,000-80,000 美元(满足 A),办公室离家近(满足 B),且可以远程工作(满足 C),则最终决策为接受报价。
这一页讲的是知识获取与知识工程中的困难,主要分析手动构建规则的挑战。包括专家知识难以转化为显式规则、决策变量主观性、不易确保系统完整性以及规则可能不一致。
这一页讲的是知识获取(Knowledge Acquisition)与知识工程(Knowledge Engineering)中的困难,特别是手动构建规则的挑战。首先,专家知识通常是隐性的,很难转化为显式、可计算的规则,这导致知识工程过程复杂且耗时。其次,决策变量和阈值通常不明确或具有主观性,这增加了规则定义的难度。第三,确保系统的完整性(即覆盖所有可能情况)非常困难,可能会遗漏某些边界情况或特殊情况。最后,规则可能在不同专家之间甚至同一专家的内部产生不一致性,这会导致系统的可靠性和稳定性受到影响。举例来说,在医疗诊断系统中,不同医生可能对相同症状的处理规则有不同的看法,这会使构建统一的诊断规则变得复杂。这些挑战表明,知识工程需要更高效的工具和方法来处理专家知识的复杂性和不确定性。
这一页讲的是如何构建一个有效的决策树。重点是强调决策树的实用性和构建方法。
这一页讲的是如何构建一个有效的决策树(decision tree)。决策树是一种常用的机器学习模型,用于分类或回归任务。构建一个有效的决策树需要关注以下几点:首先是选择合适的分裂准则,例如信息增益(information gain)或基尼系数(Gini index),以确保每次分裂能最大化数据的纯度。其次是避免过拟合问题,可以通过设置树的最大深度或最小样本分裂数等参数来实现。最后是评估树的性能,确保其在训练集和测试集上的表现都较好。一个有效的决策树能够清晰地表达数据的分类逻辑,同时具备良好的泛化能力。
这一页讲的是决策树的学习方法,重点介绍了简单决策树的复杂性以及实际中使用的贪心算法。
这一页讲的是决策树的学习方法。首先提到,学习最简单或最小的决策树是一个 NP 完全问题,这意味着从理论上找到最优解的计算复杂度非常高。为了应对这一问题,实际中采用了一种贪心算法(greedy heuristic)。这种算法的步骤包括:从一个空的决策树开始,选择当前最优的属性(best attribute)进行划分,然后递归地重复这一过程。页面还提出了一个关键问题:如何定义“最优属性”?仅仅依靠准确性(accuracy)是否足够?这引发了对属性选择标准的进一步思考。举例来说,在某些情况下,除了准确性,还需要考虑信息增益(information gain)或其他指标,以确保决策树能够更好地泛化和处理复杂数据。
这一页讲的是为什么学习一棵「最优」决策树在理论上是 NP 完全问题,以及实践中如何用贪心启发式来绕过这个困难。决策树最小化问题早在 1976 年就被 Hyafil 和 Rivest 证明是 NP 完全的,意思是不存在多项式时间的精确算法。于是工程上退而求其次,采用「每次只看下一步」的贪心策略:从一棵空树出发,每次在当前节点选「最好的」属性做分裂,然后递归处理子节点,直到满足停止条件。关键问题就变成了:怎么定义「最好」?这一页还留了一个悬念——单纯用分类准确率来衡量分裂好坏是不够的,原因留到下一页揭晓。考试易错点:有同学会以为贪心算法能保证找到全局最优树,这是错的;贪心只保证局部最优,最终结果与分裂顺序强相关。另外「NP 完全」的含义要清楚:不是「不可能解」,而是「没有已知的多项式时间精确算法」,所以实践中只能用近似。ID3/CART 这类算法的正确描述是「高效的贪心近似」,而不是「最优解」。
这一页讲的是选择一个好的分裂点 (split)。主要讨论为什么准确率 (accuracy) 不是好的衡量标准,并引入信息论 (information theory) 的方法。
这一页讲的是选择一个好的分裂点 (split)。首先,准确率 (accuracy) 作为衡量标准存在问题,因为某些分裂可能不会带来直接的准确率提升,但仍然是有意义的。例如图中展示的分裂,虽然分裂后两个子节点的准确率没有变化(准确率增益为零),但它仍然可能对后续的模型优化有帮助。为了更好地评估分裂点的质量,我们可以借助信息论 (information theory) 的方法。核心思想是通过统计叶节点中的样本分布来定义概率分布,并进一步测量不确定性(例如熵 entropy)。这样的方法能够更全面地衡量分裂的效果,而不仅仅依赖于简单的准确率。举例来说,图中左侧的子节点包含 50 个类别为 1 的样本,而右侧子节点包含 50 个类别为 1 和 49 个类别为 0 的样本,这样的分裂可能降低了数据的不确定性,为后续决策树的构建打下基础。
这一页讲的是为什么不能用「分类准确率的提升」来衡量分裂质量,并引出信息论方法。例子非常经典:根节点有 100 个正例、49 个负例,某次分裂把数据切成左子(50 正 0 负)和右子(50 正 49 负)。直觉上左边已经完全纯净了,这是个有意义的分裂。但计算准确率:分裂前把所有样本都预测为正类,准确率 100/149 约 67%;分裂后左子预测正,准确率 100%;右子预测正,准确率 50/99 约 51%;加权平均后准确率并没有提升。可见准确率对「局部纯净化」不敏感。正确的做法是用信息论中的熵(Entropy)来度量节点的「不纯度」,再计算分裂带来的不确定性降低量,也就是信息增益(Information Gain)。核心思想:把叶节点的样本计数转换成概率分布,用熵来量化分布的混乱程度,分裂越好则熵下降越多。考试时要能解释「为什么准确率不行」并给出这个反例,这是课件给出的标准答案。
这一页讲的是如何选择一个好的分裂点(split)进行决策树构建。重点包括确定性叶子(deterministic leaves)的优点、不确定性叶子(uniform leaves)的缺点,以及中间分布的讨论。
这一页讲的是如何选择一个好的分裂点(split),即在决策树构建中选择哪个属性更适合进行分裂,比如 X₁ 或 X₂。分裂的目标是产生确定性叶子(deterministic leaves),其中叶子节点中的所有样本都属于同一个类别,这样可以提高模型的分类准确性。相反,不确定性叶子(uniform leaves)是较差的选择,因为叶子节点中所有类别的概率都相等,无法提供有意义的分类信息。页面还提出了一个问题:如果分布介于确定性和不确定性之间,该如何处理?这引出了信息论(information theory)的相关概念,比如熵(entropy)和信息增益(information gain),它们是衡量分裂质量的重要工具。例如,选择 X₁ 或 X₂ 时,可以计算每个分裂点的熵值,选择熵最低的分裂点以最大化信息增益。这些概念在优化决策树性能中非常重要。
这一页讲的是两种硬币的抛掷结果及其可预测性。Sequence 1非常可预测,主要是0;Sequence 2较难预测,0和1分布更均匀。
这一页讲的是两种硬币的抛掷结果及其可预测性。Sequence 1的结果显示出高度可预测性,序列中绝大部分是0,仅有少量1,具体统计为16个0和2个1。相比之下,Sequence 2的结果分布更随机,0和1的数量较为接近,分别为8个0和10个1。这些数据通过柱状图直观展示,两种硬币的结果形成鲜明对比。柱状图中,Sequence 1的0柱明显高于1柱,而Sequence 2的两个柱子高度接近。这个分析说明了硬币的偏向性对结果分布的影响,同时也引入了随机性和可预测性的重要概念。比如,在实际应用中,偏向性硬币可能用于某些特定实验,而随机性更高的硬币则更适合模拟真实概率事件。
这一页讲的是熵 (Entropy) 用来量化不确定性。重点包括熵的公式、偏置硬币和近似公平硬币的熵计算,以及熵的单位。
这一页讲的是熵 (Entropy),它是用来量化随机变量的不确定性或“惊讶程度”的指标。熵的公式为 H(X) = -Σ p(x) log2 p(x),其中 p(x) 是随机变量 X 的某个值的概率。图中对比了两种硬币的熵:偏置硬币的概率分布是 p(0)=8/9 和 p(1)=1/9,其熵计算为 -8/9 log2(8/9) - 1/9 log2(1/9) ≈ 0.50;近似公平硬币的概率分布是 p(0)=4/9 和 p(1)=5/9,其熵计算为 -4/9 log2(4/9) - 5/9 log2(5/9) ≈ 0.99。通过这些例子可以看出,概率分布越均匀,熵值越高,表示信息的不确定性越大。此外,熵的单位是比特 (bits),因为公式中使用了 log2。一个完全公平的硬币掷一次的熵为 1 比特,说明它包含了最大的信息量。熵在信息论中非常重要,广泛用于通信、数据压缩和机器学习等领域。
这一页讲的是熵(Entropy)的数学定义及其直觉含义,是整个决策树分裂准则的理论基石。熵的公式是 H 等于负的求和「p(x) 乘以 log 以 2 为底的 p(x)」,单位是比特(bit)。直觉:一个硬币,正面概率 8/9,反面概率 1/9,熵约 0.50 比特——因为大多数时候结果可预测,「惊喜感」低;而正面概率 4/9、反面概率 5/9 时,熵约 0.99 比特——结果更难猜,惊喜感高。当硬币完全公平(p=0.5)时熵达到最大值 1 比特。三条重要结论要记住:(1)熵非负;(2)分布越均匀熵越大,越集中熵越小;(3)对于纯节点(所有样本属于同一类),p=1,log 1=0,所以熵 = 0。推导时注意 0 log 0 按极限定义为 0,不会出现无穷大。考试中经常直接考熵的手算:给出两类样本数量,先算出各类概率,再代入公式。常见错误:忘记加负号、用 log 底 e 而非 log 底 2(底数不同结果单位不同,用 2 得比特,用 e 得纳特)、以及误认为「熵大=好」——在决策树中我们希望分裂之后叶节点熵尽量小。
这一页讲的是如何量化不确定性,重点是熵 (Entropy) 的定义及其性质。熵在概率为 0.5 时达到最大值。
这一页讲的是量化不确定性的方法,主要通过熵 (Entropy) 来实现。公式 H(X) = -∑ p(x) log₂ p(x) 表示熵的计算方式,其中 p(x) 是事件 x 的概率,X 是所有可能事件的集合。熵衡量了系统中信息的不确定性,概率越均匀分布,熵越高。图中展示了熵随硬币正面概率 (p) 的变化趋势,当 p=0.5 时,熵达到最大值 1,说明此时不确定性最高,因为硬币完全公平,无法预测结果。随着 p 接近 0 或 1,熵逐渐降低,表明结果变得更确定。这个概念在信息论中非常重要,广泛应用于数据压缩、机器学习中的模型选择等领域。例如,若硬币抛掷的概率分布是完全随机的 (p=0.5),我们需要更多的信息来描述结果,这就是熵高的直观意义。
这一页讲的是熵 (Entropy) 的高低特性。高熵分布接近均匀,直方图平坦,值不易预测;低熵分布有明显波峰波谷,直方图起伏大,值较易预测。
这一页讲的是熵 (Entropy) 的概念及其高低特性。熵是衡量系统中不确定性或信息量的指标。高熵 (High entropy) 的分布接近均匀,直方图表现为较平坦的形态,说明数据的各个值出现的概率较为接近,因此从中采样的值不容易预测。相比之下,低熵 (Low entropy) 的分布则有明显的波峰和波谷,直方图表现出强烈的高低起伏,说明某些值出现的概率更高,因此采样的值更容易预测。举例来说,如果一个变量的值均匀分布在 1 到 10 之间,那么它的熵较高;而如果变量的值集中在 1 和 10 两个点上,那么它的熵较低。这种特性在信息论、数据压缩以及机器学习中都有重要应用,比如高熵数据通常需要更复杂的模型来处理,而低熵数据则相对简单。
这一页讲的是联合分布的熵 (Entropy of a Joint Distribution),通过例子计算 H(X, Y),结果约为 1.56 bits。
这一页讲的是联合分布的熵 (Entropy of a Joint Distribution)。熵是衡量随机变量不确定性的重要指标。这里的例子中,随机变量 X 表示是否下雨 (Raining, Not raining),Y 表示是否多云 (Cloudy, Not cloudy)。表格展示了联合概率分布 p(x, y),例如 p(Raining, Cloudy) = 24/100。公式 H(X, Y) = -ΣΣp(x, y)log₂p(x, y) 用来计算联合熵。通过对表格中的每个概率值代入公式并计算对数,最终得到 H(X, Y) ≈ 1.56 bits。这表明在这个联合分布中,随机变量的不确定性总量为 1.56 bits。这个计算过程展示了如何从联合概率分布中提取信息量,是信息论中的核心概念。
这一页讲的是条件熵 (Conditional Entropy) 的具体计算,重点是给定降雨 (Raining) 情况下云量 (Cloudiness) 的熵。
这一页讲的是条件熵 (Conditional Entropy) 的具体计算,特别是给定降雨 (Raining) 情况下云量 (Cloudiness) 的熵。首先,定义了两个随机变量:X 表示是否降雨 (Raining, Not raining),Y 表示是否多云 (Cloudy, Not cloudy)。表格列出了不同组合下的概率分布,例如降雨且多云的概率为 24/100,而降雨且不多云的概率为 1/100。接着,通过公式 H(Y | X=x) = -Σ p(y | x) log2 p(y | x) 计算条件熵。具体计算中,给定 X=Raining 时,熵值为 0.24 bits,说明在降雨情况下云量的不确定性较低。此外,还给出了概率的计算方法:p(y | x) = p(x, y) / p(x),以及联合概率的求和公式 p(x) = Σ p(x, y)。这些公式帮助我们理解如何从联合概率分布推导条件概率和条件熵。举例来说,降雨时云量的熵较低,意味着我们可以更准确地预测云量状态。
这一页讲的是条件熵(Conditional Entropy)和信息增益(Information Gain)如何用于选择最优分裂属性。条件熵 H(Y|X) 定义为:对所有 X 的取值,以 X 出现概率为权重,对各取值下 Y 的熵做加权平均;公式写成 H(Y|X) 等于对 x 求和「p(x) 乘以 H(Y|X=x)」。信息增益则是 IG(Y|X) 等于 H(Y) 减去 H(Y|X),表示「知道了 X 之后,Y 的不确定性减少了多少」。例子中 Y 是「是否多云」,X 是「是否下雨」:下雨时天几乎肯定是多云的(24/25),所以 H(Y|X=raining) 约 0.24 比特;不下雨时多云与否各占一半,H(Y|X=not raining) 约 1 比特;总条件熵加权约 0.75 比特;而 H(Y) 约 1 比特;信息增益约 0.25 比特。在决策树中,我们对每个候选属性都计算信息增益,选信息增益最大的那个来做分裂。重要性质:若 X 和 Y 独立,H(Y|X)=H(Y),增益为 0,说明该属性完全无用;若 X 完全决定 Y,H(Y|X)=0,增益等于 H(Y),这是理想情况。考试常考:给出联合分布表,手算条件熵和信息增益;以及与吉尼不纯度的对比(两者结论通常相似,吉尼计算更快)。
这一页讲的是条件熵 (Conditional Entropy)。主要内容包括条件熵的公式定义,以及通过表格展示概率分布的例子。
这一页讲的是条件熵 (Conditional Entropy),它衡量在已知一个随机变量 X 的情况下,另一个随机变量 Y 的不确定性。公式定义条件熵为 H(Y | X) = Σ p(x)H(Y | X=x),或者等价地表示为 H(Y | X) = -ΣΣ p(x, y) log2 p(y | x)。公式中的 p(x) 是 X 的概率分布,p(y | x) 是在给定 X 的情况下 Y 的条件概率分布。页面中的表格展示了一个具体例子:在“Cloudy”和“Not Cloudy”两种天气条件下,“Raining”和“Not Raining”的概率分布。比如,在“Cloudy”条件下,“Raining”的概率是 24/100,而“Not Raining”的概率是 25/100。这些概率可以用于计算条件熵,帮助理解在不同条件下随机变量的变化。条件熵在信息论中非常重要,因为它可以用于评估信息的传递效率或预测的准确性,例如天气预测中的不确定性分析。
这一页讲的是条件熵 (Conditional Entropy)。通过一个天气的例子解释如何计算云量的熵 H(Y|X),给定是否下雨的条件。公式和表格展示了计算过程。
这一页讲的是条件熵 (Conditional Entropy),即在已知某个条件下随机变量的熵。例子中定义了两个随机变量:X 表示是否下雨 (Raining, Not raining),Y 表示是否有云 (Cloudy, Not cloudy)。表格列出了不同情况下云量的概率分布,例如下雨时 Cloudy 的概率是 24/100。条件熵的公式 H(Y|X) = Σ p(x)H(Y|X=x) 表示对每种条件 x 的熵加权平均。在这个例子中,H(Y|X) 的计算分为两部分:下雨时的熵 (权重为 1/4) 和不下雨时的熵 (权重为 3/4),最终结果约为 0.75 bits。这种计算方法对于理解数据的条件不确定性非常重要,例如预测天气时可以帮助量化云量的不确定性。
这一页讲的是条件熵 (Conditional Entropy) 的一些重要性质。重点包括链式法则、独立性对熵的影响,以及条件熵的单调性。
这一页讲的是条件熵 (Conditional Entropy) 的性质及其数学表达。首先,熵 H 总是非负的,这是熵的基本性质。其次,链式法则 (Chain Rule) 描述了联合熵 H(X, Y) 可以分解为条件熵 H(X | Y) 和 H(Y),或者 H(Y | X) 和 H(X)。这表明联合熵可以通过条件熵和单变量熵来计算。此外,当 X 和 Y 独立时,X 对 Y 的不确定性没有影响,因此 H(Y | X) 等于 H(Y)。而 Y 对自身的条件熵 H(Y | Y) 总是为 0,因为知道自己完全消除了不确定性。最后,条件熵的单调性表明,知道 X 只能减少对 Y 的不确定性,即 H(Y | X) 小于或等于 H(Y)。这些性质在信息论中非常重要,帮助我们理解变量之间的信息关系。例如,若两个变量独立,知道其中一个不会减少对另一个的熵。
这一页讲的是信息增益 (Information Gain),重点在于通过观察变量 X(是否下雨)来获得关于变量 Y(是否多云)的信息量。
这一页讲的是信息增益 (Information Gain),即通过变量 X(是否下雨)来减少对变量 Y(是否多云)的不确定性。公式 IG(Y|X) = H(Y) - H(Y|X) 表示信息增益的计算方式,其中 H(Y) 是 Y 的熵,H(Y|X) 是在知道 X 的情况下 Y 的条件熵。这页的表格列出了两种天气状态(Cloudy 和 Not Cloudy)下是否下雨的概率分布,例如 Cloudy 且 Raining 的概率为 24/100,Not Cloudy 且 Not Raining 的概率为 50/100。这些概率用于计算熵和条件熵,从而得出信息增益约为 0.25 bits。信息增益也等同于 X 和 Y 的互信息 (Mutual Information)。如果 X 对 Y 完全没有信息,则 IG(Y|X) = 0;如果 X 对 Y 提供完全的信息,则 IG(Y|X) = H(Y)。例如,如果观察到下雨(Raining),我们可以更准确地预测是否多云(Cloudy),从而减少不确定性。
这一页讲的是信息增益 (Information Gain) 的计算及其在决策树中的应用。主要内容包括根节点熵、叶节点熵,以及分裂后的信息增益计算。
这一页讲的是信息增益 (Information Gain),它衡量一个变量对决策树属性的贡献程度。页面展示了一个分裂的例子,并通过计算信息增益来评估分裂的效果。首先,根节点的熵 (Root entropy) 是通过公式计算得出的,结果约为 0.91。接着,计算叶节点的熵 (Leafs entropy),左侧叶节点的熵为 0,因为所有样本都是同类;右侧叶节点的熵约为 1,因为样本分布均匀。最后,信息增益 (IG) 的计算公式为根节点熵减去分裂后各叶节点熵的加权平均值,结果约为 0.24,说明分裂带来了信息增益。图中展示了分裂后的结构:左侧叶节点包含 50 个类别为 1 的样本,而右侧叶节点包含 50 个类别为 1 和 49 个类别为 0 的样本。通过这个例子可以看出,信息增益是决策树选择分裂属性的重要指标。
这一页讲的是信息增益在决策树分裂例子中的实际应用与数值计算过程,验证了「零准确率提升的分裂可以有正信息增益」。回到之前那个例子:根节点 149 个样本(100 正 49 负),分裂后左子 50 个正例(纯净),右子 99 个(50 正 49 负)。计算过程:根节点熵 H(Y) 等于 负(49/149 × log2(49/149)) 减 (100/149 × log2(100/149)),约 0.91 比特;左子熵 H(Y|left) = 0(纯节点);右子熵 H(Y|right) 约 1 比特;加权条件熵 = 1/3 × 0 + 2/3 × 1 约 0.667;信息增益 IG ≈ 0.91 − 0.667 = 0.24 比特,明显大于 0。这证明即使准确率没提升,信息增益仍然能捕捉到「左子已完全纯净」这一有价值的信息。考试要点:能写出信息增益的完整计算步骤;注意权重是各子节点样本数占父节点总样本数的比例(50/149 和 99/149,不是 1/3 和 2/3,这里课件用了 1/3 和 2/3 是近似,考试中用精确值)。易错:算条件熵时忘记按样本比例加权,直接对两个子节点熵取平均,这是错的。
这一页讲的是决策树的构建过程,重点包括变量选择、分割位置选择,以及通过信息增益最大化来决定分割策略。
这一页讲的是决策树的构建过程。决策树是一种常用的分类和回归方法。在每一层构建时,需要选择『哪个变量进行分割』以及『在哪里分割』。选择的依据是分割后能带来多少信息增益(information gain)。信息增益是一种衡量标准,用来评估分割后数据的不确定性减少程度。在实际操作中,我们通常选择信息增益最高的属性进行分割。右侧的图表展示了一个具体的例子:左图是二维数据分布,横轴是宽度(width),纵轴是高度(height),数据点分别代表橙子和柠檬;右图是基于这些数据构建的决策树,首先根据宽度是否大于 6.5cm 进行分割,然后进一步根据高度是否大于 9.5cm 或 6.0cm 进行分割。这个过程展示了如何通过逐步分割来分类不同的水果。这种方法的重要性在于它能有效减少数据的不确定性,从而提高分类的准确性。
这一页讲的是决策树构建算法的流程,包括选择属性、分组样本和递归构建节点的步骤。
这一页讲的是决策树构建算法(Decision Tree Construction Algorithm)的具体流程。首先,算法从非终端节点开始选择一个属性(attribute)进行分裂,这是决策树的关键步骤,用于确定如何划分数据。接着,根据所选属性的值将样本分成不同的组(groups)。最后,对每个组进行处理:如果组内没有样本,则返回父节点的多数类;如果组内所有样本属于同一类,则直接返回该类;否则递归回到第一步,继续选择属性分裂。这种算法是一种简单的、贪心(greedy)且递归(recursive)的方法,逐步构建决策树的节点。它的重要性在于能够高效地构建分类模型,同时保持算法的易理解性。举例来说,如果数据集中有一个属性是“颜色”,算法可能会先选择“颜色”作为分裂属性,将样本分为“红色”、“蓝色”和“绿色”组,然后进一步处理每个组以完成树的构建。
这一页讲的是决策树构建算法,包括经典算法 ID3、C4.5 和 CART。ID3 通过信息增益选择分类特征,C4.5改进了连续属性处理,CART支持分类与回归任务。
这一页讲的是决策树构建算法中的经典算法,包括 ID3、C4.5 和 CART。ID3(Iterative Dichotomiser 3)由 Ross Quinlan 在 1986 年提出,采用贪婪方法为每个节点选择信息增益最大的分类特征,生成多叉树。树通常会先扩展到最大尺寸,然后通过剪枝步骤提升泛化能力。C4.5 是 ID3 的继承者,突破了 ID3 只能处理分类特征的限制,能够动态地将连续属性值划分为离散区间。C4.5 将生成的树转化为一组 if-then 规则,并通过评估规则的准确性来确定应用顺序,剪枝则通过移除低效规则的前提条件实现。CART(Classification and Regression Trees)与 C4.5 类似,但有几个关键区别。CART 支持分类与回归任务,处理数值目标变量,并构建严格的二叉树。在每个节点,CART 选择能够最大化减少不纯度的特征和阈值,例如分类任务中的 Gini impurity 或回归任务中的均方误差(mean squared error)。这些算法通过不同的方式优化决策树的构建和泛化能力,为机器学习中的分类与回归问题提供了重要工具。
这一页讲的是经典决策树学习算法 ID3、C4.5 和 CART 的区别与联系,这三个算法是 713 课程中必须掌握的核心算法名词。ID3(Iterative Dichotomiser 3,1986 年 Quinlan 提出):使用信息增益作为分裂准则;只能处理离散(categorical)特征;生成多叉树;训练时让树尽量长大,再用剪枝控制过拟合。C4.5 是 ID3 的继承者:扩展了对连续数值特征的支持(动态找最佳阈值切分连续属性);把训练好的树转化成 if-then 规则集,再对规则逐条评估并剪枝(删掉某前提条件如果能提升准确率就删)。CART(Classification And Regression Trees,Breiman 等 1984 年):支持分类和回归两种任务;强制生成二叉树(每次只分成两个子集);分类用吉尼不纯度(Gini Impurity),回归用均方误差;也使用剪枝防止过拟合;是 scikit-learn 中 DecisionTreeClassifier 的默认实现。考试时重点区分:ID3 用信息增益、只处理离散特征、多叉树;CART 用吉尼不纯度、支持连续特征、严格二叉树、同时支持回归。C4.5 介于两者之间,可以处理连续特征且生成规则集。
这一页讲的是 CART 算法的核心原理和特点,包括递归分割训练数据、贪心策略和剪枝方法。
这一页讲的是 CART 算法(Classification and Regression Tree)的核心原理和特点。CART 算法由 Leo Breiman 等人在 1984 年提出,其主要通过递归分割训练数据集来构建决策树。算法会评估所有可能的分割方式,目标是最大化 impurity(不纯度)的减少,这是它的优化目标。CART 算法是一种贪心算法(greedy algorithm),即每次分割时只关注当前的最优选择,而不考虑未来的可能性。分割过程会根据一个可配置的停止准则(stopping criterion)停止,例如叶节点中样本数量的最小值。递归停止的位置会成为叶节点。之后,可以通过剪枝(pruning)进一步优化决策树,剪枝使用额外的验证数据或测试数据来评估删除每个叶节点的效果。剪枝的目的是简化决策树结构,从而减少过拟合问题,使模型更具泛化能力。例如,若某叶节点对测试数据的预测贡献较小,则可以考虑将其删除以简化树结构。
这一页讲的是 Gini Impurity(基尼不纯度)的计算及其在数据集划分中的应用。主要包括计算公式和如何处理布尔或数值特征。
这一页讲的是 Gini Impurity(基尼不纯度),用于衡量数据集的不纯度,并指导决策树的划分。基尼不纯度的公式为 Gini(D) = 1 - ∑(pi^2),其中 pi 是类 i 的概率,k 是类别的数量。对于数据集 D 的划分,基尼不纯度的计算公式为 Gini_split(D, A) = (n1/n) Gini(D1) + (n2/n) Gini(D2),其中 D1 和 D2 是划分后生成的两个子集,n1 和 n2 是它们的大小。对于布尔型特征,公式应用较简单;而对于数值型特征,需要尝试多个可能的分割点以找到最佳划分。这些公式帮助我们选择分割属性,使得数据集的纯度最大化,从而提高模型性能。例如,若某数据集有两类,分别占 70% 和 30%,基尼不纯度为 1 - (0.7^2 + 0.3^2) = 0.42,反映了数据的不纯度程度。
这一页讲的是 CART 中吉尼不纯度(Gini Impurity)的定义与分裂评估方式,是与信息增益并列的第二种核心分裂准则。吉尼不纯度公式:Gini(D) 等于 1 减去对每个类 i 的概率平方求和,即 Gini = 1 − 求和(p_i 的平方)。分裂的加权吉尼不纯度:Gini_split(D, A) = (n1/n) × Gini(D1) + (n2/n) × Gini(D2),其中 n1、n2 是两个子集的大小,n 是总样本数。用具体数字来看:根节点 149 个样本(100 正 49 负),Gini(root) = 1 − (100/149)² − (49/149)² ≈ 0.4414;左子 50 正 0 负,Gini(left) = 1 − 1² − 0² = 0;右子 50 正 49 负,Gini(right) ≈ 0.4999;加权吉尼 = (50/149)×0 + (99/149)×0.4999 ≈ 0.3322;吉尼减少量 ΔGini = 0.4414 − 0.3322 = 0.1092,大于 0,说明这是一个有价值的分裂。直觉:吉尼不纯度衡量「从分布中随机抽两个样本,它们类别不同的概率」,纯节点该概率为 0,均匀分布时最大。与熵对比:吉尼计算不需要对数,速度快;实践中两者结果很接近;熵对不平衡类别稍微更敏感。考试常考:给出两个候选属性,用吉尼或信息增益各自计算,选增益最大的;注意连续属性需要枚举所有可能的阈值。
这一页讲的是 Gini impurity 的计算及其在节点分裂中的应用。主要包括根节点、子节点的 Gini impurity 计算,以及加权后的 Gini impurity 和 Gini reduction。
这一页讲的是 Gini impurity 的计算及其在节点分裂中的应用。Gini impurity 是衡量数据集纯度的一种指标,公式为 1 减去各类别概率的平方和。首先,根节点的 Gini impurity 计算为 1 减去两类样本比例的平方和,结果约为 0.4414。左子节点由于只有一种类别,Gini impurity 为 0;右子节点的两类样本比例分别为 50/99 和 49/99,计算得 Gini impurity 约为 0.4999。接着通过加权计算分裂后的 Gini impurity,权重由子节点样本数量占总样本的比例决定,结果约为 0.3322。最后,Gini reduction 通过根节点的 Gini impurity 减去分裂后的加权 Gini impurity,结果为 0.1092,表示分裂后数据纯度的提升。右下角公式框展示了 Gini impurity 和加权 Gini impurity 的计算公式,图示则直观展示了节点分裂及其对应的样本分布。
这一页讲的是 Impurity、Error 和 Entropy 的比较及应用。主要提到回归问题中用残差误差代替 Gini impurity,以及 Gini 和 Entropy 的性能差异。
这一页讲的是 Impurity(不纯度)、Error(误差)和 Entropy(熵)在决策树中的应用和比较。首先,在回归问题中,由于预测的是数值而非分类标签,我们用残差误差(Residual Error)代替 Gini impurity。例如,为了优化模型,可以最小化平方误差 (ŷ - y)^2,其中 ŷ 是预测值,y 是真实值。其次,实际应用中,Entropy 和 Gini impurity 通常能产生类似的树性能,但 Gini impurity 计算速度更快,因此在实践中更常用。此外,CART(Classification and Regression Tree)算法仍然被广泛使用,例如在 Python 的 scikit-learn 包中。最后,有些来源建议熵在处理类别不平衡的数据时可能表现更好。这些概念和方法对于理解决策树的构造及优化非常重要,尤其在不同问题场景下选择合适的指标。
这一页讲的是决策树的细节,包括连续属性处理、回归应用和常见问题。
这一页讲的是决策树的细节。首先,处理连续属性时,决策树通过选择一个阈值来最大化信息增益(information gain)进行分裂。其次,决策树不仅可以用于分类,还可以用于回归问题。在回归中,分裂的目标是最小化平方误差(squared error),而不是最大化信息增益。最后,页面提到决策树的几个问题:随着树的层次加深,数据量会呈指数级减少;过大的树可能导致过拟合(overfit);此外,贪心算法可能无法找到全局最优解。页面底部的图示展示了一个简单的决策树结构,根节点有 100 个类别为 1 的样本和 49 个类别为 0 的样本,分裂后形成两个子节点,其中一个子节点完全是类别 1 的样本(50 个),另一个子节点有 50 个类别为 1 和 49 个类别为 0 的样本。这说明分裂可以有效地分离数据,但也可能导致数据量减少的问题。
这一页讲的是集成学习(Ensembles),包括 Bagging 和 Boosting 两种方法。重点是这两种技术如何通过结合多个模型提升预测性能。
这一页讲的是集成学习(Ensembles),它是一种通过组合多个模型来提高预测准确性的方法。集成学习的核心思想是利用多个弱学习器(Weak Learners)的优势,形成一个强学习器(Strong Learner)。其中,Bagging 和 Boosting 是两种主要的集成学习技术。Bagging 的全称是 Bootstrap Aggregating,它通过对数据集进行随机采样生成多个子集,然后训练多个模型并对结果进行平均或投票,从而降低模型的方差。Boosting 则是通过迭代地训练模型,每次关注前一轮中表现较差的样本,逐步提高整体模型的准确性。这两种方法在分类和回归问题中都非常重要。例如,随机森林(Random Forest)是 Bagging 的经典应用,而 AdaBoost 是 Boosting 的典型代表。这些技术广泛应用于解决复杂的机器学习问题,尤其是当单个模型的性能不足时。
这一页讲的是集成方法 (Ensemble methods) 的概述,包括集成预测器的定义及其特点。
这一页讲的是集成方法 (Ensemble methods) 的概述。集成预测器 (ensemble of predictors) 是一组预测器,通常是弱分类器 (weak classifiers/predictors),通过组合它们的决策来对新样本进行分类,例如可能加权的多数投票 (weighted majority vote)。为了使集成方法具有非平凡性,这些分类器必须在某些方面有所不同,比如使用不同的算法、不同的超参数 (hyperparameters)、在不同的数据上训练,或者使用不同的训练样本权重。这些差异使得集成方法能够充分利用各分类器的优势,从而提高整体性能。此外,集成方法通常易于实现,但难点在于选择适合目标的集成类型。举例来说,在分类任务中,可以通过集成多个决策树来提高准确率,而这些决策树可能在不同的训练数据或参数设置下生成。
这一页讲的是集成方法(Ensemble methods)的概述,包括 Bagging 和 Boosting 的定义与区别。Bagging 是独立训练分类器,Boosting 是顺序训练分类器,两者目标不同。
这一页讲的是集成方法(Ensemble methods)的概述,重点介绍了两种主要技术:Bagging 和 Boosting。Bagging 的核心是独立地在训练数据的随机子集上训练多个分类器,然后综合它们的结果。这种方法主要用于减少模型的方差(variance),提高稳定性。Boosting 则是顺序地训练分类器,每次训练都聚焦于前一个模型表现较差的样本,以逐步改进整体性能。这种方法主要用于降低模型的偏差(bias)。两者的目的不同:Bagging 更适合处理高方差问题,而 Boosting 更适合处理高偏差问题。这页还提示了理解两者差异需要进一步探讨偏差和方差的概念。举例来说,随机森林(Random Forest)是一种典型的 Bagging 方法,而 AdaBoost 是一种常见的 Boosting 方法。
这一页讲的是 Bias 和 Variance 的概念及其四种组合情况。Bias 代表系统误差,Variance 反映模型对数据的敏感性。低 Bias 和低 Variance 是理想情况,而高 Bias 和高 Variance 是最差情况。
这一页讲的是 Bias 和 Variance,它们是评估机器学习模型性能的重要指标。Bias 表示预测值与真实值(红点)之间的平均偏差,代表系统误差,通常是模型过于简单的表现;Variance 表示预测值(蓝点)在不同数据集上的分散程度,反映模型对数据的敏感性,通常是模型不稳定的表现。图中展示了四种组合情况:1. 低 Bias + 低 Variance(理想情况),模型既准确又稳定;2. 低 Bias + 高 Variance,预测值接近真实值但分布较广,模型对数据过于敏感,例如未剪枝的决策树;3. 高 Bias + 低 Variance,预测值集中但远离真实值,模型过于简单导致欠拟合,例如用线性模型拟合复杂关系;4. 高 Bias + 高 Variance(最差情况),模型既不准确也不稳定。通过理解这些组合,可以更好地调整模型复杂度和数据处理方式,从而优化性能。
这一页讲的是偏差(Bias)与方差(Variance)的含义,以及它们与集成方法(Bagging 和 Boosting)之间的核心对应关系。用靶标比喻来理解:红色圆心是真实值,蓝色点是不同训练集下模型的预测。偏差衡量平均预测与真实值的偏离程度,代表系统性误差(模型太简单,无法拟合数据的真实结构);方差衡量不同训练集下预测的波动程度,代表对数据的敏感性(模型不稳定)。四种组合:低偏差低方差是理想状态;低偏差高方差——预测中心正确但散布很广,典型例子是未剪枝的决策树,对训练数据过拟合;高偏差低方差——预测聚集在一起但系统性偏离真实,典型例子是用线性模型拟合复杂非线性关系;高偏差高方差是最差情况。这里的关键结论是:Bagging 针对高方差问题——通过对独立训练的多棵树取平均来降低整体方差;Boosting 针对高偏差问题——通过逐步聚焦于之前错误的样本来降低偏差。考试常见考法:给出一个模型描述,判断它主要受偏差还是方差影响;以及说明 Bagging 和 Boosting 各自解决哪种误差。易错点:Bagging 不能降低单棵树的偏差,只能通过平均降低方差;Boosting 主要降低偏差但可能增加方差(对噪声数据易过拟合)。
这一页讲的是 Bagging 的动机与流程。重点包括从原始数据中采样多个训练集、训练多个模型并通过平均预测值提升性能。
这一页讲的是 Bagging(Bootstrap Aggregating)的动机与具体流程。首先,Bagging 的核心思想是通过从原始数据集 p_data 中采样 m 个独立的训练集(D1, D2,…, Dt),然后对每个训练集分别训练一个模型,得到对应的预测值 yi。最后将这些预测值进行平均计算,公式为 ȳ = (1/m) ∑ yi,其中 i 从 1 到 m。这种方法可以有效减少模型的方差,提升整体预测性能。下方的流程图详细描述了 Bagging 的三个步骤:第一步是从原始训练数据 D 中创建多个数据集;第二步是基于这些数据集分别训练多个分类器(C1, C2,…, Ct);第三步是将这些分类器的结果进行组合,得到最终的预测结果 C。通过这种方式,Bagging 能够利用数据的多样性和模型集成的优势,提高模型的稳定性和准确性。例如,在随机森林中,Bagging 是一种关键技术,通过对决策树的集成实现更强的预测能力。
这一页讲的是 Bagging 的基本思想。主要内容包括通过 bootstrap aggregation 方法生成多个数据集,训练多个模型并通过聚合提高预测性能。
这一页讲的是 Bagging 的基本思想,它是一种通过 bootstrap aggregation 提高模型性能的技术。首先,从一个数据集 D(包含 n 个样本)出发,通过有放回的抽样生成 m 个新的数据集,每个数据集仍然有 n 个样本。然后,对每个新的数据集分别训练一个模型。最后,通过聚合方法(回归任务中取平均值,分类任务中采用投票法)整合这些模型的预测结果,从而提高整体预测性能。幻灯片中还提到 bootstrap 是统计学中非常重要的概念。右侧流程图展示了 Bagging 的三个步骤:1. 创建多个数据集;2. 用这些数据集训练多个分类器;3. 将分类器的结果进行组合。举例来说,原始数据集 D = [A, B, C, D],通过有放回抽样可能生成样本集 [A, A, C, D] 或 [B, C, C, D] 等。这种方法通过增加模型的多样性,有效减少过拟合并提高泛化能力。
这一页讲的是 Bagging(自举聚合,Bootstrap Aggregation)的核心思想和操作流程,是随机森林的基础。Bagging 的动机:如果我们能从真实数据分布 p_data 中采样出 m 个独立训练集,在每个上训练一个模型得到预测值 y_i,然后取平均 y_bar = (1/m) 求和 y_i,这会显著降低方差(类比抛硬币多次取平均,结果比单次更稳定)。但现实中我们只有一个训练集 D,不可能真正采样 m 个独立集。解决方案:自举(Bootstrap)采样——从 D 中有放回地随机抽取 n 个样本,重复 m 次,得到 m 个大小相同但内容不同的数据集。例子:D=[A,B,C,D],有放回采样:第一次得 [A,A,C,D],第二次得 [B,C,C,D],第三次得 [A,B,B,D]。注意有放回意味着同一样本可以出现多次,也意味着平均约有 36.8% 的样本不会出现在某次采样中(「袋外样本」out-of-bag,可以用来估计泛化误差)。聚合阶段:回归取平均,分类用多数投票。考试要点:能描述 Bagging 的完整流程(有放回采样 → 独立训练 → 投票/平均);理解它为什么能降低方差(独立模型误差相互抵消);以及它的局限——不降低偏差,各树之间仍可能相关。
这一页讲的是随机森林 (Random Forests)。它是基于袋装决策树 (bagged decision trees) 的方法,解决树之间高度相关的问题,通过特征袋装 (feature bagging) 引入额外随机性来降低相关性。
这一页讲的是随机森林 (Random Forests) 的核心概念及其优化方法。随机森林是一种基于袋装决策树 (bagged decision trees) 的集成学习方法。问题在于袋装决策树中,由于贪婪选择导致根节点相同,树之间可能高度相关。最佳特征或主导特征通常对数据的较大样本都有效,导致第一层关键决策的树结构趋同。为解决这一问题,随机森林引入了特征袋装 (feature bagging) 的策略:对每个样本,随机选择输入特征的子集,并仅基于这些特征进行分裂。这种额外的随机性有效降低了树之间的相关性,提高了模型的预测性能。右侧的流程图展示了随机森林的构建过程:首先从原始训练数据中生成随机向量,然后用这些向量构建多个决策树,最后将这些树的结果组合起来形成最终预测。这种方法通过增加模型的多样性来提升稳定性和准确性。
这一页讲的是随机森林(Random Forest)在 Bagging 基础上引入的关键改进——特征随机采样(Feature Bagging),以及为什么这一步骤至关重要。问题背景:朴素 Bagging 决策森林虽然对数据集做了有放回采样,但各棵树在选根节点分裂属性时仍然面对相同的(最强)特征,贪心选择会导致所有树的前几层结构非常相似,造成树与树之间高度相关(correlated)。高相关的树取平均降方差的效果大打折扣(数学上:m 个相关系数为 ρ 的预测器取平均,方差缩减为 ρσ² + (1-ρ)σ²/m,只有当 ρ 小时效果才显著)。解决方案:特征 Bagging——在每个节点做分裂时,不考虑全部特征,而是随机抽取一个子集(通常取总特征数的平方根个),只在这个子集中选最优分裂。这样即使最优特征是 A,某棵树在某个节点恰好没有抽到 A,就会选次优特征,产生不同的树结构,从而降低树间相关性。随机森林实践效果:开箱即用效果很好,超参数调整少,训练快,有时优于调参不足的神经网络;在 Kaggle 竞赛和工业界都极其常用。考试要点:区分普通 Bagging 森林和随机森林的区别就在于「特征随机采样」这一步;能解释为什么降相关性能降低集成后的整体方差。
这一页讲的是随机森林(Random Forest)的有效性及应用特点。随机森林在分类问题中表现优异,尤其适合作为开箱即用的技术。
这一页讲的是随机森林(Random Forest)的有效性及其在实际应用中的优势。随机森林是一种集成学习方法,通过构建多个决策树并结合其结果来提高预测准确性。它在许多分类问题中都能取得很强的效果,特别适合作为开箱即用的技术(out-of-the-box technique)。随机森林的主要优点包括:第一,它通常需要较少的超参数调节(hyperparameter tuning),训练速度快,降低了使用门槛;第二,在某些情况下,即使神经网络经过大量调试,随机森林仍可能表现更好;第三,它在实际应用中非常广泛,包括在 Kaggle 竞赛中被频繁使用。举例来说,如果一个数据科学家需要快速构建一个分类模型,随机森林可以作为首选,因为它无需复杂的调参就能提供可靠的结果。这些特点使得随机森林成为机器学习领域的重要工具之一。
这一页讲的是 Bagging 的优点和局限性。优点包括减少过拟合和提升模型表现,局限性在于无法降低基础学习器的偏差以及分类器间仍存在相关性。
这一页讲的是 Bagging 的优点和局限性。Bagging(Bootstrap Aggregating)是一种集成学习方法,通过对多个模型的预测结果进行平均,能够有效减少过拟合(overfitting),提高模型的泛化能力。此外,Bagging 常被用于比赛中的获胜模型,即使单个模型表现优秀,加入一个小型的集成(ensemble)通常能进一步提升效果。然而,Bagging 也有局限性。首先,它无法降低基础学习器(base learner)的偏差,例如决策树中的贪婪局部分裂策略仍然存在,这意味着单个树的固有缺陷不会被消除。其次,尽管 Bagging 能减少模型间的方差,但分类器之间仍可能存在一定的相关性,这会影响整体性能。举例来说,在随机森林中,Bagging 是通过对数据和特征进行随机采样来实现的,但如果某些特征高度相关,分类器之间的预测结果可能仍然相似,从而影响集成效果。
这一页讲的是 Boosting 方法的核心思想,包括弱分类器的概念及其训练过程。
这一页讲的是 Boosting 方法的核心思想,即通过逐步训练多个分类器,每次训练时特别关注之前被错误分类的数据点。这种方法的目标是通过多个弱分类器(weak learners 或 base classifiers)的组合,构建一个更强的分类器。弱分类器通常是简单的模型,比如决策树的浅层版本,它们单独的性能可能不高,但在 Boosting 中,它们通过加权组合可以显著提高整体的分类效果。Boosting 的核心在于每次迭代时调整数据权重,给错误分类的样本更高的权重,从而让后续的分类器更关注这些难以分类的数据点。这种方法在实际应用中非常重要,比如在处理不平衡数据集或复杂分类任务时,它能够有效提升模型的准确性。
这一页讲的是弱学习器 (Weak Learners) 的定义和特点。弱学习器表现略优于随机猜测,例如预测正确率为 0.6,而不是 0.5。重点关注计算效率高的弱学习器,如决策树 (Decision Trees) 和决策桩 (Decision Stump)。
这一页讲的是弱学习器 (Weak Learners) 的概念及其在机器学习中的重要性。弱学习器是一种假设,其表现仅略优于随机猜测,例如预测正确标签的概率为 0.6,而不是完全随机的 0.5。这样的学习器虽然单独性能有限,但在集成学习 (Ensemble Learning) 中可以通过组合多个弱学习器来显著提高整体性能。幻灯片特别强调了计算效率高的弱学习器,例如决策树 (Decision Trees),以及更简单的决策桩 (Decision Stump)。决策桩是一种只有一个分裂点的简单树结构,适用于快速计算和处理。这种结构的优势在于,它能够以低计算成本提供基础预测能力,同时为后续集成学习算法提供构建模块。图中展示了决策桩的结构:一个根节点分裂成两个子节点,分别对应不同的分类结果。这种简单模型常用于提升算法 (Boosting) 中,作为基础学习器的典型选择。
这一页讲的是弱分类器中的决策树桩 (Decision Stumps)。它们是一种简单的分类器,基于二维数据的垂直或水平划分。
这一页讲的是弱分类器中的决策树桩 (Decision Stumps)。决策树桩是一种简单的分类器,它在二维数据中通过一次划分将数据分成两个区域,分别对应垂直或水平的半空间 (Vertical/Horizonal Half Spaces)。图中展示了两种划分方式:左图是垂直半空间划分,绿色区域表示正类 (+),白色区域表示负类 (-);右图是水平半空间划分,绿色区域表示正类 (+),白色区域表示负类 (-)。虽然单个决策树桩的分类能力有限,但它们可以作为构建更复杂模型的基础组件。例如,在集成学习算法如 AdaBoost 中,多个弱分类器可以组合成强分类器,从而显著提高分类性能。
这一页讲的是弱分类器的局限性及如何通过 Boosting 提升性能。主要内容包括弱分类器的误差公式、权重分布的定义,以及 Boosting 的核心思想。
这一页讲的是弱分类器(weak classifier)为什么不足以单独完成任务,以及如何通过 Boosting 方法提升分类性能。首先,弱分类器通常无法将训练误差降到很低。页面中给出了加权误差的公式:err(h) = Σ wi 1{h(xi) ≠ yi},其中 wi 是第 i 个样本的权重,权重总和为 1,且 wi ≥ 0。这表明误差是根据样本的权重分布计算的。对于弱学习器(weak learner),假设其误差满足 err(h) ≤ 1/2 - γ,其中 γ > 0 是一个小的正值。接着提出了一个关键问题:是否可以将多个这样的弱分类器组合成一个更强的分类器?答案是可以,通过 Boosting 方法实现。Boosting 的核心思想是逐步训练分类器,每次都特别关注之前被误分类的样本,从而提升整体性能。图示中展示了不同分类器的决策边界(垂直和水平分割),说明单一分类器的局限性。一个例子是通过多个弱分类器的组合,最终形成一个能够准确分割复杂数据的强分类器。
这一页讲的是 Boosting 方法,它是一种序列式集成学习技术,强调新模型专注于前模型的错误。
这一页讲的是 Boosting 方法,它是一种集成学习(ensemble methods)技术,模型是按顺序构建的。每个新的学习器(learner)会特别关注前一个学习器处理得不好的错误样本,从而逐步提高整体预测性能。右侧流程图展示了 Boosting 的过程:首先从训练集(training set)中选择子集进行训练,生成弱学习器(weak learner);然后测试弱学习器的表现并预测错误样本;接着重复这一过程,最终结合所有弱学习器的输出,形成整体预测(overall prediction)。Boosting 常用于分类和回归任务,尤其在处理复杂数据集时表现优异。常见的 Boosting 算法包括 AdaBoost 和 XGBoost,它们在实际应用中非常流行。举例来说,假如一个分类任务中第一轮学习器错误分类了某些样本,Boosting 会在下一轮中对这些样本赋予更高权重,以帮助模型更好地学习这些难点。
这一页讲的是 AdaBoost 的关键步骤和核心直觉。重点包括构建弱分类器序列、重新加权样本以关注困难样本、以及通过迭代减少偏差。
这一页讲的是 AdaBoost(Adaptive Boosting,自适应提升)算法的工作流程和核心思想。首先,AdaBoost 会构建一个由 M 个弱分类器(通常是决策树的简单版本,如决策树桩)组成的序列。每次迭代中,算法会重新加权训练样本,将更大的权重分配给那些被当前分类器错误分类的困难样本(hard cases)。然后在重新加权后的数据上训练新的弱分类器,并将其加入到分类器集合中。这个过程会重复多轮,最终形成一个强分类器。右侧流程图展示了训练数据经过加权后如何逐步改进模型性能:初始模型错误分类了一些样本,后续模型通过加权纠正这些错误。核心直觉是通过逐步调整权重,强调困难样本,从而减少偏差(bias),使每个分类器都能专注于之前的错误。举例来说,如果某个样本在第一轮中被错误分类,后续轮次会对它赋予更高权重,促使模型更关注它并改进分类效果。
这一页讲的是 AdaBoost(Adaptive Boosting)的完整算法流程和数学细节,是 Boosting 方法的最经典代表,也是 713 课程中最容易考公式计算的部分。AdaBoost 的核心步骤:第一步,初始化所有样本权重相等,w_i = 1/N。第二步,循环 T 轮:在当前权重分布下训练一个弱分类器 h_t(通常是决策树桩 decision stump,即只有一个分裂的树);计算加权错误率 err_t = 求和(w_i × I{h_t(x_i) ≠ y_i}) / 求和(w_i);计算该分类器的权重系数 α_t = (1/2) × log((1 - err_t) / err_t);更新样本权重:对分类错误的样本,权重乘以 exp(α_t)(即增大),对分类正确的样本权重缩小;对权重归一化。第三步,最终预测 H(x) = sign(求和 α_t × h_t(x))。关键直觉:err_t < 0.5 时 α_t > 0(弱分类器比随机猜测好,就有正权重);err_t 越小 α_t 越大,说明越准确的分类器在投票中话语权越重;被错误分类的样本权重增大,迫使下一轮的弱分类器重点关注这些「难例」。考试计算题经典套路:给出 3 轮迭代的 err_1、err_2、err_3,要求算出 α_1、α_2、α_3,再写出最终分类器公式。易错:α 公式中分子是 1 - err,分母是 err,顺序不能搞反;权重更新方向是「错了就涨」。
这一页讲的是 AdaBoost 算法的流程图视图,包括样本权重更新、弱分类器训练和最终预测的聚合过程。
这一页讲的是 AdaBoost 算法的核心流程。首先,样本会被反复重新加权 (re-weighted samples),权重更新公式为 wi ← wi exp(2αt I(ht(xi) ≠ t(i))),其中 αt 是弱分类器的权重,errt 是分类错误率。每轮都会训练一个新的弱分类器 ht,并根据分类器的表现调整样本权重,使得错误分类的样本权重增大,正确分类的样本权重减小。最终预测通过聚合所有轮次的弱分类器输出,公式为 H(x) = sign(Σ αt ht(x))。图中展示了从初始样本到最终预测的流程,箭头表示权重更新和分类器训练的顺序。举例来说,如果某轮分类器对某些样本分类错误,这些样本的权重会增加,使得下一轮分类器更关注这些样本,从而提高整体模型的准确性。这种迭代过程使得 AdaBoost 能有效组合多个弱分类器,生成一个强分类器。
这一页讲的是 AdaBoost 的训练数据。主要包括:从标注好的训练集开始;初始时所有样本权重相等;通过权重变化学习弱分类器序列。
这一页讲的是 AdaBoost 算法的训练数据处理过程。首先,训练开始时需要一个标注好的训练集,其中每个样本都有明确的类别标签。初始阶段,所有训练样本的权重相等,这意味着在训练的第一步中,每个样本对分类器的影响是均等的。随后,算法会在同一数据集上学习一系列弱分类器,每次迭代后根据分类器的表现调整样本权重。右侧的图展示了一个数据分布示例,蓝色加号表示正类样本,红色减号表示负类样本。初始权重均等时,所有样本的影响力相同。通过这种权重调整机制,AdaBoost 能够逐步关注难以分类的样本,从而提高整体分类性能。这种方法的核心思想是通过多次迭代逐步优化弱分类器,使其最终组合成为一个强分类器。
这一页讲的是 AdaBoost 算法的第一轮迭代过程。主要内容包括初始化权重、训练弱分类器 h1、计算加权误差 ε1 和系数 α1,以及当前集成模型的表达式。
这一页讲的是 AdaBoost 算法的第一轮迭代过程。首先,初始化样本权重 wi,每个样本权重均为 1/10,表示初始阶段所有样本的重要性相同。接着训练第一个弱分类器 h1,并计算其加权误差 ε1,公式显示 ε1 是错误分类样本的加权比例,计算结果为 3/10。然后根据 ε1 计算弱分类器的系数 α1,公式为 α1 = 1/2 log((1 - ε1) / ε1),最终得到 α1 ≈ 0.42,表示 h1 在集成模型中的重要性。右侧的图展示了 h1 的分类效果,蓝色区域和红色区域分别代表分类的正负区域,其中 ε1 和 α1 的数值也标注在图中。最后,当前的集成模型 H(x) 是通过 α1 加权后的 h1 的符号函数,表示集成模型的预测结果。这一轮的主要目标是通过弱分类器逐步提高整体分类性能。
这一页讲的是 AdaBoost 算法的第二轮迭代过程。主要包括权重调整、弱分类器 h₂ 的训练、计算加权误差 ε₂ 和系数 α₂,以及更新集成模型 H(x)。
这一页讲的是 AdaBoost 算法的第二轮迭代过程。在第一步中,算法增加了被上一轮弱分类器 h₁ 错误分类样本的权重 w,使这些样本在下一轮中更受关注。接着,利用更新后的权重训练第二个弱分类器 h₂。通过公式计算加权误差 ε₂,公式中分子表示 h₂ 错误分类样本的加权总和,分母是所有样本的权重总和,结果为 0.21。然后利用 ε₂ 计算弱分类器 h₂ 的系数 α₂,公式为 α₂ = 1/2 log((1 - ε₂)/ε₂),结果约为 0.66。最后,更新了集成模型 H(x),其表达式为 H(x) = sign(α₁h₁(x) + α₂h₂(x)),即通过加权组合多个弱分类器的输出形成最终模型。右侧图表展示了 h₂ 的分类边界、加权误差 ε₂ 和系数 α₂ 的具体值,以及权重更新后的分布 D₃。这个过程体现了 AdaBoost 的核心思想:通过迭代提升分类器的性能。
这一页讲的是 AdaBoost 算法的第三轮训练过程,重点包括重新调整数据权重、计算加权错误率 ε3 和权重 α3,以及最终的分类器组合公式。
这一页讲的是 AdaBoost 算法的第三轮训练过程。首先,通过重新调整数据权重后训练第三个弱分类器 h3。加权错误率 ε3 的计算公式为加权样本中分类错误的比例,这里 ε3 降至 0.14,说明 h3 的性能有所提高。接着计算权重 α3,用公式 1/2 log((1-ε3)/ε3) 得出 α3 ≈ 0.91,表示 h3 在组合分类器中的重要性权重。右侧的图展示了数据分布及分类结果,蓝色和红色区域分别表示正负样本的分类情况,绿色标注了 ε3 和 α3 的值。最后,三分类器的组合公式为 H(x) = sign(α1h1(x) + α2h2(x) + α3h3(x)),通过加权投票实现更强的分类能力。这一过程体现了 AdaBoost 算法逐轮优化弱分类器权重的机制,从而提升整体分类性能。
这一页讲的是 AdaBoost 的最终分类器。关键点包括加权投票机制、弱分类器的权重分配以及组合后形成复杂决策边界。
这一页讲的是 AdaBoost 的最终分类器。首先,最终预测器是通过弱分类器的加权投票 (weighted vote) 来实现的。每个弱分类器的权重由其准确性决定,更准确的弱分类器会获得更大的权重系数 αₜ。公式 H_final(x) = sign(0.42h₁(x) + 0.65h₂(x) + 0.92h₃(x)) 表示最终分类器通过加权的弱分类器组合来预测结果。页面右侧的图展示了三个弱分类器的加权过程,它们分别以权重 0.42、0.65 和 0.92 参与投票,最终形成一个复杂的非线性决策边界。底部的图例说明了弱分类器组合后如何将简单的决策树 (stumps) 转化为复杂的分类边界。举例来说,单个弱分类器可能只能区分部分数据点,但通过加权组合,它们可以实现更精确的整体分类。这种方法的优势在于提升模型的准确性和鲁棒性,同时保持计算效率。
这一页讲的是 AdaBoost 算法的伪代码。主要内容包括输入输出定义、样本权重初始化、迭代过程及最终分类器的生成。
这一页讲的是 AdaBoost 算法的伪代码。首先定义了输入,包括数据集 D_N、弱分类器 WeakLearn 和迭代次数 T。输出是最终的强分类器 H(x)。算法初始化样本权重 w_i 为 1/N,然后进入 T 次迭代过程。在每次迭代中,使用加权样本训练弱分类器 h_t,并计算加权错误率 err_t。根据错误率,计算分类器的权重系数 α_t,错误率越低,权重越高。接着更新样本权重 w_i,使误分类样本的权重增加,正确分类样本的权重减少,具体更新公式为 w_i = w_i exp(-α_t t^(i) h_t(x^(i)))。最后,组合所有弱分类器的结果,生成强分类器 H(x),其形式为 H(x) = sign(Σ α_t h_t(x))。这一算法通过迭代优化样本权重,逐步提升分类器性能,是集成学习中的经典方法。
这一页讲的是 AdaBoost 第一轮的具体数值计算示例,是理解算法流程最清晰的「从零开始」演示。初始化:10 个训练样本,每个权重 w_i = 1/10。第一轮:训练弱分类器 h_1,假设它在当前(均匀)权重下误分类了 3 个样本,加权错误率 ε_1 = 3/10 = 0.3;计算系数 α_1 = (1/2) × log((1-0.3)/0.3) = (1/2) × log(7/3) ≈ 0.42;此时集成只有一个成员:H(x) = sign(0.42 × h_1(x))。第二轮:将第一轮误分类的 3 个样本权重提高(乘以 exp(2×0.42)),归一化后这些「难例」占更大权重;新弱分类器 h_2 在这个重权重分布下训练,加权错误率降到 ε_2 = 0.21,α_2 ≈ 0.66;集成变成 H(x) = sign(0.42 h_1 + 0.66 h_2)。第三轮类似,ε_3 = 0.14,α_3 ≈ 0.91;最终 H(x) = sign(0.42 h_1 + 0.65 h_2 + 0.92 h_3)。观察规律:随着轮数增加,每一轮都聚焦于更难的样本,加权错误率下降,α 值增大(更准确的分类器话语权更大)。最终决策边界是多个简单半平面的加权组合,可以形成复杂的非线性边界。考试要点:给出 ε 值能算 α;知道最终预测是 sign 函数对加权和取符号;理解为什么 AdaBoost 是「降低偏差」而不是降低方差。
这一页讲的是Gradient Boosting的原理与特点。重点包括它是累加式模型、使用完整的决策树而非树桩、以及优化目标函数时考虑正则化项。
这一页讲的是Gradient Boosting(梯度提升算法)的原理与特点。Gradient Boosting是一种累加式模型,类似于AdaBoost,但每个后续的决策树都旨在提升整体模型的性能。公式中,预测值ŷi是多个树的输出值的累加结果,即ŷi等于从t=1到T的所有ft(xi)的总和。与AdaBoost不同的是,Gradient Boosting使用完整的决策树,而不是简单的树桩,从而能够捕获更复杂的模式。此外,优化目标函数时,除了最小化预测误差ℓ(yi, ŷi),还加入了正则化项ω(ft),以控制模型复杂度,避免过拟合。右侧的图表展示了模型迭代的过程,每次迭代都会添加新的树来减少误差,最终模型的误差逐步降低。这种方法在分类和回归任务中都非常有效,例如在预测房价时,逐步添加树可以更准确地拟合数据分布。
这一页讲的是梯度提升(Gradient Boosting)的原理及其与 AdaBoost 的本质区别,引出 XGBoost 这一工业界最重要的集成算法。Gradient Boosting 的核心思想:把 Boosting 从重调样本权重的视角,转变成「沿损失函数梯度方向下降」的视角。每一步训练一棵新树来拟合当前模型的「残差」(residual),即当前预测与真实标签的差值,残差在数学上等于损失函数关于当前预测值的负梯度。最终预测 y_hat_i = 求和(f_t(x_i)),是所有树预测值的加法叠加。目标函数包含损失项(衡量预测精度)和正则化项(控制树的复杂度):obj(θ) = 求和 l(y_i, y_hat_i) + 求和 ω(f_t),其中 ω 惩罚树的叶节点数量和叶权重的大小。与 AdaBoost 的关键区别:AdaBoost 每次加一个「规则」(decision stump,一个分裂);Gradient Boosting 每次加一整棵树;AdaBoost 通过重加权样本来聚焦难例,而 Gradient Boosting 通过拟合梯度(残差)来优化任意可微的损失函数,因此更通用。XGBoost 是 Gradient Boosting 的高效实现,额外支持并行构树、分布式计算、稀疏数据处理,是 Kaggle 竞赛获奖神器。考试要点:能解释「拟合残差」的直觉;区分 AdaBoost 和 Gradient Boosting 的机制差异;知道 XGBoost 是 Gradient Boosting 的工业级实现。
这一页讲的是梯度提升(Gradient Boosting)的核心思想及其与 AdaBoost 的区别。重点包括通过梯度减少误差、梯度优化连接以及两种方法的不同之处。
这一页讲的是梯度提升(Gradient Boosting)的核心思想,强调通过梯度方向减少损失的优化方法。梯度提升的关键在于,每次添加的新树都旨在最有效地减少剩余误差(即梯度)。这种方法与梯度优化(Gradient-based optimization)紧密相关,因为它遵循最陡下降方向来优化模型性能。此外,幻灯片还比较了梯度提升与 AdaBoost 的主要区别:AdaBoost 每次添加的是一个规则(例如一个划分),而梯度提升每次添加的是一个完整的模型(例如一棵树)。举例来说,在梯度提升中,如果初始模型预测的误差集中在某些样本上,新添加的树会专注于修正这些样本的误差,从而逐步提高整体预测的准确性。这种方法在处理复杂数据集时非常有效,尤其是在回归和分类任务中。
这一页讲的是梯度提升算法 (Gradient Boosting Algorithm) 的伪代码流程,主要包括模型初始化、计算伪残差、训练弱学习器和更新模型等步骤。
这一页讲的是梯度提升算法 (Gradient Boosting Algorithm) 的伪代码流程。首先,算法以一个常数值初始化模型 F₀(x),通过最小化损失函数 L(y, F(x)) 来确定初始值。接下来,在迭代步骤中 (m=1 到 M),首先计算伪残差 rᵢₘ,它表示当前模型预测值与真实值之间的梯度方向,用公式 -∂L(yᵢ, F(x))/∂F(x) 表示。然后,基于伪残差训练一个弱学习器 hₘ(x),并通过优化问题确定乘数 γₘ,使得新的模型更新最优。最后,模型更新为 Fₘ(x) = Fₘ₋₁(x) + γₘhₘ(x)。这一算法通过逐步减少残差来提升模型的预测能力,体现了梯度下降的思想。伪代码清晰地展示了每一步的数学表达和优化目标,是理解梯度提升算法的重要参考。
这一页讲的是梯度提升 (Gradient Boosting) 和 XGBoost 的基本原理与特点。重点包括梯度提升的迭代过程和 XGBoost 的优化特性。
这一页讲的是梯度提升 (Gradient Boosting) 和 XGBoost 的原理与应用。梯度提升通过定义目标函数 (objective function),逐步迭代寻找下一棵树 f_t。具体步骤包括从深度为 0 开始,贪婪地添加分裂点以最大化目标函数的改进。当分裂点的增益为负或达到最大深度时停止,并通过剪枝优化模型。XGBoost (eXtreme Gradient Boosting) 是梯度提升决策树的一种具体实现,具有正则化功能。它支持并行树构建、分布式计算,以及针对超大数据集的外存计算 (out-of-core computation),显著提升了计算效率和模型性能。这些特点使 XGBoost 成为处理大规模数据集和复杂任务的强大工具。
这一页讲的是树集成方法的优化概念,包括决策树、随机森林、AdaBoost 和 XGBoost 等。重点在于不同方法的特点和改进方向。
这一页讲的是树集成方法的优化概念。从简单的决策树开始,它只构建一个树模型。随机森林通过构建多个树并聚合结果来提高预测性能,而加入特征袋装(feature bagging)的随机森林进一步减少了树之间的相关性,提升了模型的泛化能力。然后是加法提升(Additive Boosting,AdaBoost),它通过调整样本权重,重点关注前一轮分类错误的样本,从而逐步优化模型。最后是梯度提升(Gradient Boosting,XGBoost),它通过构建下一棵树来最大化误差的减少,采用的是沿损失函数最陡下降方向的优化步骤。这些方法的改进方向各有侧重,例如随机森林强调模型的稳定性,AdaBoost注重错误样本的纠正,而XGBoost则通过优化损失函数实现更高效的学习。这些技术在实际应用中能够显著提升模型的预测性能,例如在分类问题中使用XGBoost可以快速找到最优解,同时减少过拟合。
这一页讲的是从单棵决策树到各种集成方法的演进路径总结,是整讲最好的「知识地图」型复习页,适合考前快速回顾。演进层次清晰:第一层,单棵决策树——简单可解释,但高方差、贪心不全局最优;第二层,随机森林——大量树做 Bagging 后聚合结果(投票/平均),降低方差;第三层,随机森林加特征 Bagging——在每个节点随机选特征子集,进一步降低树间相关性,是随机森林相比朴素 Bagging 的关键改进;第四层,AdaBoost——加法式 Boosting,每轮调整样本权重聚焦误分类样本,降低偏差,每次加一个 stump;第五层,Gradient Boosting/XGBoost——每轮拟合当前模型的梯度(残差),加一整棵树,优化任意可微损失函数,加入正则化防止过拟合。这一页的价值在于它把「降方差」和「降偏差」这两条线索串联起来:Bagging 系列(随机森林)走的是降方差路线;Boosting 系列(AdaBoost、Gradient Boosting)走的是降偏差路线;两者合用(如 Stacking 或在竞赛中分别建模后融合)可以同时降低两种误差。考试常考:给出一种集成方法名称,判断它主要降低偏差还是方差,并说明原因。
这一页讲的是决策树及集成学习的总结与要点。决策树简单但易过拟合,集成学习通过 Bagging 和 Boosting 提升性能。
这一页讲的是决策树(Decision Trees)和集成学习(Ensemble Learning)的核心思想及其优势。决策树是一种基于递归分裂的简单且易解释的模型,但单一决策树可能存在过拟合(高方差)和贪婪构建(非全局最优)的问题。为解决这些缺点,集成学习通过结合多个模型来提升性能。Bagging(如随机森林 Random Forest)通过独立树的平均减少方差;Boosting(如 AdaBoost 和 Gradient Boosting)通过逐步学习错误减少偏差。其关键思想是将多个弱学习器(Weak Learners)组合成一个强学习器(Strong Learner)。最终 takeaway 是:Bagging 能稳定模型,Boosting 则能逐步提高准确性。
这一页讲的是 Boosting 的核心思想。重点包括逐步关注难分类的样本,并非独立训练模型或减少特征。
这一页讲的是 Boosting 的核心思想。Boosting 是一种集成学习方法,其关键在于通过多轮训练逐步关注分类错误的样本,从而提升整体模型的性能。选项中,正确答案是 B,即“Focus on hard examples sequentially”。这意味着 Boosting 会在每轮训练中调整样本权重,让模型更加关注那些难以分类的样本,从而提高分类效果。这种方法的核心优势在于能够通过多个弱分类器的组合形成一个强分类器。举例来说,AdaBoost 是一种典型的 Boosting 算法,它通过对错误样本赋予更高权重来优化模型。页面还包含一个二维码,可能用于进一步学习或测试相关内容。
这一页讲的是 Gradient Boosting 的树训练目标。重点包括:A. 最大化信息增益,B. 拟合残差(梯度),C. 降低树深度。
这一页讲的是 Gradient Boosting 算法中,每棵新树的训练目标。Gradient Boosting 是一种集成学习方法,通过逐步建立模型来减少预测误差。选项 A 提到最大化信息增益,但这通常是决策树的分裂标准,而非 Gradient Boosting 的核心目标。选项 B 提到拟合残差(梯度),这是 Gradient Boosting 的关键点:每棵新树的训练是为了拟合前一轮模型预测的残差,从而逐步优化整体模型性能。选项 C 提到降低树深度,这虽然可以控制模型复杂度,但不是每棵树的主要训练目标。正确答案是 B,因为 Gradient Boosting 的核心思想是通过梯度下降方法逐步优化模型,拟合残差以减少误差。
这一页讲的是 Boosting 的训练方式。重点是问题 Q3:Boosting 中模型是否是并行独立训练的。
这一页讲的是 Boosting 的训练特点,特别是 Q3 提问:在 Boosting 中,模型是否是并行独立训练的。这是一个判断题,答案是 False。Boosting 的核心思想是通过串行方式训练多个弱模型,每个模型的训练会依赖于前一个模型的结果。具体来说,Boosting 会根据前一个模型的错误分布调整样本权重,使后续模型更关注之前未正确预测的样本。这种依赖关系使得 Boosting 的训练是顺序的,而不是并行独立的。这种方法的优势在于可以逐步提高整体模型的性能。一个典型例子是 AdaBoost 算法,它通过调整样本权重来优化预测结果。这种串行训练方式与 Bagging 的并行独立训练形成鲜明对比,后者通过独立训练多个模型并结合它们的预测结果来降低方差。
这一页讲的是课程总结与互动环节,包括感谢、问答和本周测验提醒。
这一页讲的是课程的结束部分,表达了对参与者的感谢,并强调了互动环节的重要性。首先,幻灯片上写有“Thank you!”表示对听众的感谢,体现了课程结束时的礼貌和总结性。其次,“Q&A”意味着接下来是问答环节,鼓励听众提出问题并参与讨论,这是加深理解和解决疑惑的重要机会。最后,“Quiz this week!”提醒听众本周有测验,强调了课程内容的应用性和评估的重要性。通过这一页,讲师希望听众能够积极参与问答并准备好迎接测验,以巩固所学知识。