| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 集成学习-Task3 投票法与Bagging -> 正文阅读 |
|
[人工智能]集成学习-Task3 投票法与Bagging |
1.?基于投票法的集成学习1.1?投票与机器学习? ? ? ? 投票简单来说就是“少数服从多数”,那么这个道理跟机器学习有什么关系呢? ? ? ? ? 我们知道集成学习简单来说就是用多个不同的模型来处理同一个问题,那么对于多个不同的处理结果我们应该如何选取呢? ? ? ? ? 对于一个分类问题来说,如果我们用多个不同的模型来预测,可能会得到多个不同的结果。显然,这里我们就可以用少数服从多数的投票法来决定。我们可以直接将投票结果中出现次数最多的类别当作预测结果,这种投票方法叫硬投票。我们还可以将预测结果是所有投票结果中概率算数平均数最大的类别当作预测结果,这种投票方法叫软投票。 ? ? ? ? 而对于一个回归问题,如果我们用多个不同的模型来预测,也可能会得到多个不同的结果。但是在这里我们很难直接用少数服从多数的方式判断应取的预测值。这里,我们可以将所有模型的预测结果取一个平均值。这样也相当于所有模型都参与到了最终的决策中。 ? ? ? ? 由此,投票法自身也就是一种集成学习模型。它通过多个模型的集成来降低方差,从而提升模型鲁棒性。理想情况下,投票法的预测效果应优于任何一个单一模型。 ? ? ? ? 理论上,参与投票法的模型可以是任何已经训练好了的模型,但在实际应用上,投票法想产生较好的效果需要满足两个条件。 ? ? ? ? 1.?不同模型之间的效果不可以差太大。如果某个模型效果远不如其他模型,很可能会成为噪声; ? ? ? ? 2.?模型之间应具有较小的同质性。换句话说所有参与的模型在原理或结构上应具有明显的差异。例如在模型预测效果近似的情况下,基于树模型和线性模型的投票法就要优于两个树模型和两个线性模型。 ? ? ? ? 对于分类问题,应当采取硬投票还是软投票要看参与的模型可否能预测出明确的结果。假如所有参与的模型都是决策树模型,那么采取硬投票更合适。而如果模型预测的都是概率,则采用软投票更合适。 ? ? ? ? 投票法面临的一个问题就是,它将所有参与的模型都一视同仁。这就意味着所有的模型对结果的贡献都是一样的。假如某些模型表现不稳定,时好时坏。则对最后的结果也会产生一定的影响。 1.2?在sklearn中使用投票法? ? ? ? sklearn中有两个投票法的封装模块,VotingRegressor和VotingClassifier。它们参数相同,操作方式也相同。下面我们看个构建投票法的实例。
? ? ? ? 我们再看一个例子,这次我们将多个kNN模型封装成一个集成模型,并用它做分类。
??????????输出结果如下:
? ? ? ? ?通过箱形图我们可以看到硬投票方法对预测结果精度的提升。 2. Bagging2.1?原理? ? ? ? ?在我看来,Bagging是对投票法的一种优化。既然是优化,则说明一般的投票法存在某些问题。我们之前提到,对于集成学习而言,理想的基模型选取条件是希望各个模型具有异质性即彼此的原理和结构具有较大差异。但是,实际情况下这一点不太容易保证,就像上面的实例一样,我们采用的基模型可能都是同质的。因此,为了提升同质基模型的异质性,我们想到一个简单的思路,那就是对数据进行不同的采样。然后让同质基模型在各自的采样数据集上训练,这样基模型的训练环境就存在了差异,进而提升了异质性。 ? ? ? ? Bagging的核心在于自助采样(bootstrap)这一概念。简单来说就是有放回抽样。我们通过有放回抽样的方式得到多个可能存在交集但是又不完全一样的数据集。然后基于每个数据集并行训练各自的基模型。最后将这些模型做集成,利用投票方式得到预测结果。这就是Bagging的基本流程。 2.2 Bagging在决策树中的应用? ? ? ? 由于Bagging最常见和最成功的应用都是在决策树模型上的集成。因此这里我们也用两种决策树模型当作基模型来举例。 ? ? ? ? 我们先复习一下决策树的基础知识。决策树模型的每个非叶子节点表示模型对样本在一个特征上的判断,节点下方的分支代表对样本的划分。决策树的建立过程是一个对训练数据不断划分的过程。我们希望通过划分,决策树的分支节点所包含的样本“纯度”要尽可能地高。换句话说,每次划分之后,子节点中包含的所有数据应当越来越相似。这不但是决策树的训练过程,而且还是决策树选择当前最佳划分节点的特征的规则。 ? ? ? ? 那么,要如何来衡量这种“纯度”呢?目前常见的指标有信息增益(IG)、信息增益比和基尼指数。 ? ? ? ? 要了解什么是信息增益,首先要了解什么叫信息熵和条件信息熵。在信息论和概率统计中,信息熵表示随机变量的不确定程度。对于一组数据来说,越随机、不确定性越高,信息熵越大,反之则越小。信息熵可以用香农公式 来计算。其中,k表示随机变量的所有取值情况。在决策树中可以用来表示节点中的所有数据的标签的取值情况。 ? ? ? ? 我们假设有两组标签 ? ? ? ? 则它们对应的信息熵为 ? ? ? ? 显然,从数据中我们可以发现1确实比2要更加“不确定”或者“不纯净”。 ? ? ? ? 知道了信息熵,我们还需要进一步了解什么叫条件信息熵。简单来说,条件信息熵指的就是按照某特征对节点划分后,各个子节点的信息熵的加权平均值。其中权值就是新节点中数据占原节点中数据的比例。用形式化定义来描述就是 其中,T指原节点,X指划分特征,x是该划分特征的不同取值。 ? ? ? ? 为了更好地理解,我们举一个例子。假设有一个如图所示的矩阵 ? ? ? ? 该矩阵每行代表一个数据,前两列代表特征,记作和,最后一列代表标签?。我们分别按照和来对数据进行划分,可以计算如下的条件信息熵 ? ? ? ? 在知道了信息熵和条件信息熵之后,我们就可以计算信息增益了。实际上,信息增益就是一个节点划分前的信息熵与划分后的条件信息熵的差。这个差值越大,说明划分后的节点中标签取值越确定。我们还是按照上面的例子,先计算原节点的信息熵 然后我们计算以不同特征划分后的信息增益 ? ? ? ? 显然,这说明在目前可以作为划分节点的最佳特征。 ? ? ? ? 在信息增益的基础上,诞生了信息增益比的概念。信息增益比实际上就是让信息增益除以一个系数。该系数是划分特征在原节点中的信息增益。我们还是按照上个例子来计算 ? ? ? ? 除了信息增益和信息增益比,我们还可以用基尼指数来衡量确定性。基尼指数指的是一个随机选中的样本被分错的概率。由此它的形式化定义如下 ? ? ? ? 如果我们对节点进行划分,划分后的基尼指数可以定义为 ? ? ? ? 一般,我们会选择使得划分后基尼指数最小的特征来划分。需要强调的是在用基尼指数衡量划分效果时我们只看指数值而不是变化量。 ? ? ? ? 另外,这三种指标对应的决策树模型分别为:ID3(信息增益),C4.5(信息增益比)和CART(基尼指数)。 ? ? ? ? Bagging最经典的应用是随机森林(RF)。在具体实现上,每个决策树模型的构建特征和训练样本都是通过随机采样得到的。随机森林的预测结果是多个决策树输出的投票结果。 2.3?在sklearn中使用Bagging????????类似于投票法,在sklearn中也有两个封装好的模块,BaggingRegressor和BaggingClassifier。
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 18:24:56- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |