集成学习简介
了解集成学习及其应用原因。
集成学习是机器学习中一种强大的技术,它通过组合多个独立模型来构建一个更强、更准确的预测模型。该方法通过对不同模型的预测结果进行聚合,提升整体性能,从而克服单个模型的局限性。在本节课中,我们将探讨集成学习的概念,理解其重要性,并了解这一技术的实际应用。
什么是集成学习?
集成学习是指在同一个数据集上训练多个模型,并将它们的预测结果进行整合,以得到最终预测结果的方法。集成中的每个模型可以使用不同的算法或同一算法的不同变体独立训练。然后,集成系统通过多种方式(如取平均值、投票或加权投票)合并这些模型的预测结果,形成最终输出。集成学习的核心思想在于:通过融合多样化的模型,能够降低偏差、增强鲁棒性,并获得更好的泛化能力。
为什么需要集成学习?
为了更好地理解集成学习的必要性,我们假设共有 个模型,每个模型出错的概率为 。由于各模型相互独立,多数模型同时出错的概率可按如下方式计算:
其中, 表示恰好有 个模型出错的概率,而 表示超过半数(即多数)模型同时出错的概率。
举一个具体例子:设 ,,我们可以计算多数模型出错的概率 如下:
说明:根据上述计算,单个模型出错的概率为 10%,而集成模型整体出错的概率仅为 0.86%(小于 1%)。
在单个模型出错概率低于 0.5 且各模型相互独立时,增加模型数量通常会降低多数投票的出错概率;但若单个模型出错概率高于 0.5,集成结果可能反而更差。
以下是上述例子中计算 的代码实现:
1from math import comb 2 3def calculate_error_probability(n, p): 4 p_majority = 0.0 5 k_start = n // 2 + 1 6 7 for k in range(k_start, n + 1): 8 probability = comb(n, k) * (p ** k) * ((1 - p) ** (n - k)) 9 p_majority += probability 10 11 return p_majority 12 13# 模型总数 14n = 5 15 16# 单个模型出错的概率 17p = 0.1 18 19p_majority = calculate_error_probability(n, p) 20print(f"多数模型同时出错的概率为: {p_majority}")
代码说明如下:
-
第 1 行:从
math模块导入comb函数,用于计算组合数 ,即从 个元素中选出 个的方式数目。 -
第 3–5 行:定义函数
calculate_error_probability,接收参数n(模型数量)和p(单个模型出错概率)。初始化p_majority为 0.0 用于累加概率,并计算起始索引k_start = n // 2 + 1,对应“多数”的最小模型数。 -
第 7–9 行:循环从
k_start到n,对每个k计算二项分布概率:组合数乘以 再乘以 ,并将结果累加到p_majority中。 -
第 11 行:返回累计得到的多数模型出错概率。
-
第 14–20 行:调用该函数并传入示例中的参数值,将结果保存在
p_majority变量中并打印输出。
Quiz
关于集成学习,以下哪个陈述是正确的?