谈谈模型融合之三 —— GBDT】的更多相关文章

前言 本来应该是年后就要写的一篇博客,因为考完试后忙了一段时间课设和实验,然后回家后又在摸鱼,就一直没开动.趁着这段时间只能呆在家里来把这些博客补上.在之前的文章中介绍了 Random Forest 和 AdaBoost,这篇文章将介绍介绍在数据挖掘竞赛中,最常用的算法之一 -- GBDT(Gradient Boosting Decision Tree). GBDT 原理 GBDT 实际上是 GBM(Gradient Boosting Machine) 中的一种,采用 CART 树作为基学习器,…
前言 前面的文章中介绍了决策树以及其它一些算法,但是,会发现,有时候使用使用这些算法并不能达到特别好的效果.于是乎就有了集成学习(Ensemble Learning),通过构建多个学习器一起结合来完成具体的学习任务.这篇文章将介绍集成学习,以及其中的一种算法 AdaBoost. 集成学习 首先先来介绍下什么是集成学习: 构建多个学习器一起结合来完成具体的学习任务,常可获得比单一学习器显著优越的泛化性能,对"弱学习器" 尤为明显(三个臭皮匠,顶个诸葛亮) 也称为Multi-Classif…
模型融合 有的时候我们手头可能有了若干个已经训练好的模型,这些模型可能是同样的结构,也可能是不同的结构,训练模型的数据可能是同一批,也可能不同.无论是出于要通过ensemble提升性能的目的,还是要设计特殊作用的网络,在用Caffe做工程时,融合都是一个常见的步骤. 比如考虑下面的场景,我们有两个模型,都是基于resnet-101,分别在两拨数据上训练出来的.我们希望把这两个模型的倒数第二层拿出来,接一个fc层然后训练这个fc层进行融合.那么有两个问题需要解决:1)两个模型中的层的名字都是相同的…
这是在kaggle上的一个练习比赛,使用的是ImageNet数据集的子集. 注意,mxnet版本要高于0.12.1b2017112. 下载数据集. train.zip test.zip labels 然后解压在data文件夹下 1. 数据 1.1 整理数据 将解压后的数据整理成Gluon能够读取的形式,这里我直接使用了zh.gluon.ai教程上的代码 导入各种库 import math import os import shutil from collections import Counte…
话不多说,直接上代码 def stacking_first(train, train_y, test): savepath = './stack_op{}_dt{}_tfidf{}/'.format(args.option, args.data_type, args.tfidf) os.makedirs(savepath, exist_ok=True) count_kflod = 0 num_folds = 6 kf = KFold(n_splits=num_folds, shuffle=Tru…
当你的深度学习模型变得很多时,选一个确定的模型也是一个头痛的问题.或者你可以把他们都用起来,就进行模型融合.我主要使用stacking和blend方法.先把代码贴出来,大家可以看一下. import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.metrics import roc_curve SEED = 222 np.random.seed(SEED) from sklearn.mod…
一般提升模型效果从两个大的方面入手 数据层面:数据增强.特征工程等 模型层面:调参,模型融合 模型融合:通过融合多个不同的模型,可能提升机器学习的性能.这一方法在各种机器学习比赛中广泛应用, 也是在比赛的攻坚时刻冲刺Top的关键.而融合模型往往又可以从模型结果,模型自身,样本集等不同的角度进行融合. 模型融合是后期一个重要的环节,大体来说有如下的类型方式: 加权融合(投票.平均) 硬投票 软投票 boosting/bagging(集成学习) stacking/blending 本文主要介绍sta…
作者:JSong, 日期:2017.10.10 集成学习(ensemble learning)通过构建并结合多个学习器来完成学习任务,常可获得比单一学习器显著优越的泛化性能,这对"弱学习器"尤为明显. 目前,有三种常见的集成学习框架:bagging,boosting和stacking.第一种是并行的,各个基学习器之间不存在强依赖关系,代表是随机森林算法.后两者是串行的,基学习器之间存在强依赖关系,必须串行生成.具体可参见我的文章 机器学习|集成学习. 1.前向分步算法(forward…
1. blending 需要得到各个模型结果集的权重,然后再线性组合. """Kaggle competition: Predicting a Biological Response. Blending {RandomForests, ExtraTrees, GradientBoosting} + stretching to [0,1]. The blending scheme is related to the idea Jose H. Solorzano presente…
一.Catboost简介 全称:Gradient Boosting(梯度提升) + Categorical Features(类别型特征) 作者:俄罗斯的搜索巨头Yandex 官方地址 论文链接 | 项目地址 文档地址 视频 二.Catboost的特点 一般来说,Gradient Boosting(GB)方法适用于异质化数据.即,若你的数据集全由图片数据构成或者全由视频数据构成之类的,我们称其为同质化数据,这时使用神经网络往往会有更好的表现.但对于异质化数据,比如说数据集中有user gende…