机器学习算法学习---模型融合和提升的算法(二)

元算法(集成方法)是对其他算法进行组合的一种方式。

优点:泛化错误率低,易编码,可以应用在大部分分类器上,无参数调整。

缺点:对离群点敏感

适用数据:数值型、标称型

AdaBoost算法的具体步骤如下:

1. 给定训练样本集S,其中X和Y分别对应于正例样本和负例样本; T为训练的最大循环次数;

2. 初始化样本权重为1/n ,即为训练样本的初始概率分布;

3. 第一次迭代:

(1) 训练样本的概率分布相当下,训练弱分类器;

(2) 计算弱分类器的错误率;

(3) 选取合适阈值,使得误差最小;

(4) 更新样本权重;

经T次循环后,得到T个弱分类器,按更新的权重叠加,最终得到的强分类器。

更新的规则是:减小弱分类器分类效果较好的数据的概率,增大弱分类器分类效果较差的数据的概率。最终的分类器是个弱分类器的加权平均。

1、基于数据集多重抽样的分类器

bagging和boosting的区别

2、训练算法:基于错误提升分类器的性能

Adaboost是adaptive boosting(自适应boosting)的缩写,为了从所有弱分类器中得到最终的分类结果,Adaboost为每个分类器分配了一个权重值alpha,这些alpha值是基于每个弱分类器的错误率进行计算的。

错误率ε=未正确分类的样本数目/所有样本数目

alpha的计算公式:α=1/2ln((1-ε)/ε)

权重向量D的更新:

如果样本正确分类,其权重更改为Di(t+1)=Di(t)e-α/Sum(D)

如果样本被错分,其权重更改为Di(t+1)=Di(t)eα/Sum(D)

3、基于单层决策树构建分类器

单层决策树,也称决策树桩,是一种简单的决策树,仅基于单个特征来做决策。

程序实现可见:

https://www.cnblogs.com/zy230530/p/6909288.html

4、分类算法中的非均衡问题

https://www.cnblogs.com/zy230530/p/6909320.html

原文地址:https://www.cnblogs.com/zhenpengwang/p/10890997.html

时间: 2024-09-29 09:49:34

机器学习算法学习---模型融合和提升的算法(二)的相关文章

模型融合和提升的算法------算法面试题

● bagging和boosting的区别 参考回答: Bagging是从训练集中进行子抽样组成每个基模型所需要的子训练集,然后对所有基模型预测的结果进行综合操作产生最终的预测结果. Boosting中基模型按次序进行训练,而基模型的训练集按照某种策略每次都进行一定的转化,最后以一定的方式将基分类器组合成一个强分类器. Bagging的训练集是在原始集中有放回的选取,而Boosting每轮的训练集不变,只是训练集中的每个样本在分类器中的权重都会发生变化,此权值会根据上一轮的结果进行调整. Bag

算法学习(一)(插入排序算法)

1.Maximum of array 说明:给定一组数组,进行排序,得到最大值和最小值. 1 input data: 2 1 3 5 7 9 11 ... 295 297 299 300 298 296 ... 12 10 8 6 4 2 3 4 answer: 5 300 1 利用插入排序算法进行排序: 1 Array = [27871, -16173, -31511, -13095, 30159, -55191, -15285, 14394, 69666, -17640, -20828, 4

PHP算法学习(2) 轮训加权算法

2019年1月8日16:10:51 svn地址:svn://gitee.com/zxadmin/live_z    代码在code里面 <?php /* * 加权轮训算法 * * * $arr = array( array('id' => 'A', 'weight' => 3), array('id' => 'B', 'weight' => 3), array('id' => 'C', 'weight' => 6), array('id' => 'D', '

多模型融合推荐算法

常见的多模型融合算法 多模型融合算法可以比单一模型算法有极为明显的效果提升.但是怎样进行有效的融合,充分发挥各个算法的长处?这里总结一些常见的融合方法: 1. 线性加权融合法 线性加权是最简单易用的融合算法,工程实现非常方便,只需要汇总单一模型的结果,然后按不同算法赋予不同的权重,将多个推荐算法的结果进行加权,即可得到结果: 是给用户(user)推荐商品(item)的得分, 是算法K的权重,是算法k得到的用户(user)对商品item的推荐得分.这种融合方式实现简单,但效果较差.因为线性加权的参

模型融合

一.Voting 模型融合其实也没有想象的那么高大上,从最简单的Voting说起,这也可以说是一种模型融合.假设对于一个二分类问题,有3个基础模型,那么就采取投票制的方法,投票多者确定为最终的分类. 二.Averaging 对于回归问题,一个简单直接的思路是取平均.稍稍改进的方法是进行加权平均.权值可以用排序的方法确定,举个例子,比如A.B.C三种基本模型,模型效果进行排名,假设排名分别是1,2,3,那么给这三个模型赋予的权值分别是3/6.2/6.1/6这两种方法看似简单,其实后面的高级算法也可

十大经典预测算法六---集成学习(模型融合算法)

模型融合算法概念 它不是具体的指某一个算法,而是一种把多个弱模型融合合并在一起变成一个强模型的思想 用模型融合算法的原因 1.单个模型容易过拟合,多个模型融合可以提高范化能力 2.单个模型预测能力不高,多个模型往往能提高预测能力 3.对于数据集过大或过小,可以分别进行划分和有放回的操作,产生不同的数据子集,然后通过数据子集训练不同的分类模型,最终合并成一个大的分类器 4.对于多个异构的特征集的时候,很难进行融合,可以考虑每个数据集构建一个分类模型,然后将多个模型融合 5.模型融合算法成功的关键在

吴裕雄 python 机器学习——集成学习AdaBoost算法分类模型

import numpy as np import matplotlib.pyplot as plt from sklearn import datasets,ensemble from sklearn.model_selection import train_test_split def load_data_classification(): ''' 加载用于分类问题的数据集 ''' # 使用 scikit-learn 自带的 digits 数据集 digits=datasets.load_d

吴裕雄 python 机器学习——集成学习AdaBoost算法回归模型

import numpy as np import matplotlib.pyplot as plt from sklearn import datasets,ensemble from sklearn.model_selection import train_test_split def load_data_classification(): ''' 加载用于分类问题的数据集 ''' # 使用 scikit-learn 自带的 digits 数据集 digits=datasets.load_d

《机器学习实战》学习笔记:利用Adaboost元算法提高分类性能

一. 关于boosting算法的起源 boost 算法系列的起源来自于PAC Learnability(直译过来称为:PAC 可学习性).这套理论主要研究的是什么时候一个问题是可被学习的. 我们知道,可计算性在计算理论中已经有定义,而可学习性正是PAC Learnability理论所要定义的内容.另外,在计算理论中还有很大一部分精力花在研究问题是可计算的时候,其复杂度又是什么样的.因此,在计算学习理论中,也有研究可学习的问题的复杂度的内容,主要是样本复杂度 (Sample Complexity)