(五)如何用 Python 从头开始实现 Bagging 算法

您所在的位置:网站首页 bagging采样放回 (五)如何用 Python 从头开始实现 Bagging 算法

(五)如何用 Python 从头开始实现 Bagging 算法

2024-07-14 20:46| 来源: 网络整理| 查看: 265

作者:chen_h 微信号 & QQ:862251340 微信公众号:coderpai

(一)机器学习中的集成学习入门

(二)bagging 方法

(三)使用Python进行交易的随机森林算法

(四)Python中随机森林的实现与解释

(五)如何用 Python 从头开始实现 Bagging 算法

决策树是一种简单而强大的预测建模技术,但它们存在高方差。这意味着在给定不同的训练数据的情况下,树可以得到非常不同的结果。为了使决策树更加健壮并实现更好性能,我们会采用集成学习方法,其中一种是 Bagging 方法。

在本教程中,您将了解如何使用 Python从头开始使用决策树的 bagging 过程。完成本教程后,您将了解:

如何创建数据集的自举过程;如何使用自举模型进行预测;如何将 bagging 算法应用到你的预测模型中; Bootstrap Aggregation 算法

Bootstrap 是一种有放回的数据采集方式。这还意味着一个新的数据集是从原来数据中进行随机采用得到的,并且会把数据进行放回,然后进行下一次采样。

当我们在估算一个非常庞大的数据集的时候,这种估算方式是非常好的。我们可以通过计算一个有限集合的均值从而来得到整个数据集的均值。这种方法我们一般都是和一些具有高方差的算法一起使用,比如决策树。我们通过对每个自举样本进行单独模型计算,然后输出多个模型结果的平均值。这种技术称为 bootstrap 或者 bagging。

方差意味着算法的性能对训练数据敏感,高方差表明训练数据的变化越多,算法的性能就越差。我们可以通过训练许多树并且取其预测的平均值,可以改善诸如未修剪的决策树之类的高方差机器学习算法的性能。模型取得的结果通常会优于单个决策树的表现。

除了提高性能之外,bagging 的另一个好处是它不会过度拟合问题,我们可以通过继续添加树木,知道达到最佳性能。

Sonar 数据集

在本教程中我们使用的是 Sonar 数据集。这是一个描述声呐信号从不同表面反弹的数据集。输入数据是由 60 个特征数据组成的,输出数据是一个二分类,来判断物体表面是岩石还是金属圆柱。数据一共有 208 条。这是一个非常简单的数据集。所有的输入变量都是连续的,取值在 0 到 1 之间。输出变量是 M(金属圆柱) 和 R(岩石),我们需要将这个分类结果转变成 1 和 0。数据我们通过 UCI Machine Learing 进行下载。下载链接:https://archive.ics.uci.edu/ml/datasets/Connectionist+Bench+(Sonar,+Mines+vs.+Rocks)

实战例子

本教程分为两部分:

Bootstrap 采样;声呐数据分析;

这些步骤提供了数据采样和算法编写的基本功能,我们可以学习bagging算法是如何进行基础工作的。

1. Bootstrap 采样

让我们首先深入了解 bootstrap 方法的工作原理。

我们可以通过从数据集中随机选择行数据,并将它们添加到新列表来创建数据集成为新样本。我们可以针对固定数量的行重复进行此操作,或者知道新数据集的大小与原始数据集的大小的比率达到我们的要求。我们每采集一次数据,都会进行放回,然后再次采集。

下面是一个名为 subsample() 的函数,它实现了这个过程。随机模块中的 randrange() 函数用于选择随机行索引,以便在循环的每次迭代中添加到样本中。样本的默认数量大小是原始数据集的大小。

def subsample(dataset, ratio=1.0): sample = list() n_sample = round(len(dataset) * ratio) while len(sample)


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3