湖南网站设计外包哪家好苏州网站建设公司鹅鹅鹅

当前位置: 首页 > news >正文

湖南网站设计外包哪家好,苏州网站建设公司鹅鹅鹅,四川省城乡建设厅门户网站,windows搭建网站开发什么是 Boosting Boosting 通过按顺序纠正错误并将弱学习器组合成强预测器来提高机器学习性能。机器学习的最新进展引入了解决复杂问题的新方法。Boosting 是一种不断显示出希望的技术。它通过使用多种算法来提高性能#xff0c;从而改变了我们进行数据建模的方式。随着 Boost…什么是 Boosting Boosting 通过按顺序纠正错误并将弱学习器组合成强预测器来提高机器学习性能。机器学习的最新进展引入了解决复杂问题的新方法。Boosting 是一种不断显示出希望的技术。它通过使用多种算法来提高性能从而改变了我们进行数据建模的方式。随着 Boost 概念的不断发展Gradient Boosting 和 XGBoost 等更新的变体已经出现突破了速度和准确性的界限。 机器学习中的提升 Boosting 是机器学习中一种强大的集成学习方法专门设计用于通过将多个弱学习器性能仅比随机猜测稍好一点的模型组合到一个强学习器中来提高预测模型的准确性。 提升的本质在于迭代过程其中每个弱学习器都经过训练以纠正其前身的错误从而逐渐增强整体模型的性能。通过关注早期模型所犯的错误Boosting 将一组较弱的学习器转换为更准确的模型。 提升的工作原理 Boosting 通过一个系统的过程将弱学习者转变为一个统一的强学习者该过程专注于减少顺序模型训练中的错误。涉及的步骤包括 选择初始权重为所有数据点分配初始权重以表明它们在学习过程中的重要性。按顺序训练根据数据训练第一个弱学习器。评估其性能后增加错误分类实例的权重。这使得下一个较弱的学习器更专注于更难的情况。迭代过程重复调整权重和培训后续学习者的过程。到目前为止每个新模型都侧重于集成 ensemble 的弱点。合并结果聚合所有弱学习器的预测以形成最终输出。聚合通常是加权的其中更准确的学习者具有更大的影响力。 这种方法通过更集中地关注训练数据中的困难情况有效地最大限度地减少了错误从而产生了强大的预测性能。 提升算法的类型 让我们来看看一些最著名的提升算法。 AdaBoost自适应提升 AdaBoost 是最早的提升算法之一。它侧重于在每次添加学习者时重新加权训练示例更加强调分类不正确的实例。AdaBoost 对于二进制分类问题特别有效。 梯度提升 梯度提升按顺序构建模型并在此过程中纠正错误。它使用梯度下降算法来最大限度地减少添加新模型时的损失。此方法非常灵活可用于回归和分类问题。 XGBoost极端梯度提升 XGBoost 是一个优化的分布式梯度提升库也是 Kaggle 上许多比赛获胜者的首选方法。它旨在实现高效、灵活和便携。它在 Gradient Boosting 框架下实施机器学习算法为许多实际数据问题提供可扩展且准确的解决方案。 集成方法 Boosting 属于较大的集成方法组。集成方法是一种机器学习方法它结合了多个模型来产生比任何单个模型通常无法单独实现的更准确的预测。这些技术的工作原理是利用不同模型的多样性每个模型都有自己的优点和局限性以创建一个集体决策过程。 不同类型的集成方法 Boosting 是一种突出的集成学习技术但它只是增强模型预测强度的几种技术之一。让我们来看看其他几个。 Bagging Bootstrap Aggregating一种在训练数据的随机子集上训练多个模型并聚合其预测的方法。它减少了方差并有助于避免过度拟合。Stacking Stacked Generalization一种通过训练元模型来组合多个模型以了解如何最好地组合基础模型的预测的技术。它可以捕获单个模型可能会遗漏的复杂模式。Blending类似于 stacking但使用保留的验证集来训练元模型而不是交叉验证。它比堆叠更简单、更快捷但可能不那么可靠。投票通过多数投票硬投票或预测概率的加权平均值软投票组合来自多个模型的预测。它易于实现并且对各种基本模型非常有效。 代练 vs. 装袋 Boosting 通常被比作 bagging。尽管它们在某些方面相似但肯定存在很大差异。下表比较了代练和装袋 特征提高装袋概念重点通过关注以前错误分类的示例按顺序提高准确性。在随机子集上训练多个模型对其预测进行平均。模型训练顺序训练允许每个模型从前一个模型的错误中学习。在不同数据样本上对模型进行并行训练增加了多样性。减少错误主要减少偏差并在较小程度上减少方差。减少方差尤其是在容易过度拟合的复杂模型中。对异常值的敏感度由于更加关注错误分类的数据因此更加敏感。由于随机抽样会稀释异常值的影响因此灵敏度较低。例子AdaBoost、梯度提升、XGBoost。随机森林Bootstrap 聚合。 Python 中的 Boosting 实现 了解提升的最佳方法之一是尝试在实践中展示它。为此我们将使用这个 Almond Types Classification Kaggle 数据集该数据集具有三种类型的杏仁、 和 以及它们独特的物理属性例如面积、周长和圆度。MAMRASANORAREGULAR 每个杏仁样品的特征都是通过复杂的图像处理技术提取的。数据集中的 Null 值表示杏仁的方向无论是直立、侧放还是仰卧影响特征提取过程准确性的实例。 现在我们使用此数据集来尝试分类任务。我们将使用 AdaBoost 算法正如我们所说该算法通过将弱学习器组合成一个强学习器来提高模型性能。 导入库 我们首先导入必要的库并加载 almond 数据集。然后我们拆分特征和目标变量。 import pandas as pd almonds pd.read_csv(Almond.csv, index_col0) X almonds.drop(Type, axis1)
y almonds[Type]处理缺失数据 接下来我们通过使用 KNN 插补器填充缺失值来清理数据集。这确保了我们的模型有一个完整的数据集。 from sklearn.impute import KNNImputer imputer KNNImputer(n_neighbors5) X_imputed imputer.fit_transform(X)拆分数据以进行训练和测试 from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test train_test_split(X_imputed, y, test_size0.2, random_state42)训练决策树分类器 我们在这里训练一个简单的决策树模型它为我们提供了基线准确性然后再继续提高其性能 from sklearn.tree import DecisionTreeClassifier from sklearn.metrics import accuracy_score tree DecisionTreeClassifier(max_depth1, random_state42) tree.fit(X_train, y_train) tree_accuracy accuracy_score(y_test, tree.predict(X_test))使用 AdaBoost 提高性能 然后我们使用 AdaBoost 通过关注其错误和提高准确性来提高决策树的性能。 from sklearn.ensemble import AdaBoostClassifier ada AdaBoostClassifier(base_estimatortree, n_estimators100, learning_rate1.0, random_state42) ada.fit(X_train, y_train) ada_accuracy accuracy_score(y_test, ada.predict(X_test))# Print the accuracies print(fAccuracy of the weak learner (Decision Tree): {tree_accuracy * 100:.2f}%) print(fAccuracy of AdaBoost model: {ada_accuracy * 100:.2f}%)最终输出 最后我们比较结果了解 AdaBoost 如何显著提高准确性。 Accuracy of the weak learner (Decision Tree): 43.14% Accuracy of AdaBoost model: 61.50%那么收获是什么结果说明了通过 AdaBoost 进行集成学习的力量。在这里弱学习器是一个最大深度仅为 1 的决策树其准确率约为 43%。鉴于只有三种杏仁43% 的准确率并不比猜测的平均值高多少。但是当这个弱学习器在具有 100 次迭代的 AdaBoost 模型中用作基本估计器时准确率提高到 62%。 退后一步需要注意的是虽然 AdaBoost 在我们的 Almonds 数据集上报告了更高的准确性但它可能并不总是最适合每种情况。存在过度拟合的风险尤其是对于像这样的较小数据集模型可能会变得过于复杂。实际上更简单的分类技术对于某些任务的性能可能同样好甚至更好。因此虽然我们在这里使用 AdaBoost 来说明这个概念但重要的是要退后一步考虑一下我们是否真的想要高级别的复杂性。 结论 Boosting 代表了机器学习领域的重大进步展示了集成方法在提高预测准确性方面的力量。正如我们所探索的AdaBoost、Gradient Boosting 和 XGBoost 等提升算法基于一个基本原理运行组合多个弱模型以创建单个更有效的预测器。 但是重要的是要记住提升只是机器学习工具包中的一种工具。它的有效性可能因具体问题而异。与任何机器学习技术一样了解何时以及如何应用提升是其充分发挥潜力的关键。