1.集成学习概述 集成学习算法可以说是现在最火爆的机器学习算法,参加过Kaggle比赛的同学应该都领略过集成算法的强大.集成算法本身不是一个单独的机器学习算法,而是通过将基于其他的机器学习算法构建多个学习器并集成到一起.集成算法可以分为同质集成和异质集成,同质集成是值集成算法中的个体学习器都是同一类型的学习器,比如都是决策树:异质集成是集成算法中的个体学习器由不同类型的学习器组成的.(目前比较流行的集成算法都是同质算法,而且基本都是基于决策树或者神经网络的) 集成算法是由多个弱学习器组成的算法,…
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…
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…
集成学习 个体学习器1 个体学习器2 个体学习器3   ——> 结合模块  ——>输出(更好的) ... 个体学习器n 通常,类似求平均值,比最差的能好一些,但是会比最好的差. 集成可能提升性能.不起作用.甚至起负作用. 集成要提高准确率! 每一个个体学习器之间存在差异 一定要有差异性,有差异性才能提升.这些弱学习器需要,好而不同. 集成学习分类:Bagging Boosting Bagging:并行生成,然后结合.不存在依赖关系. Boosting:依赖关系,一个一个学习器产生. AdaBo…
Adaboost 中文名叫自适应提升算法,是一种boosting算法. boosting算法的基本思想 对于一个复杂任务来说,单个专家的决策过于片面,需要集合多个专家的决策得到最终的决策,通俗讲就是三个臭皮匠顶个诸葛亮. 对于给定的数据集,学习到一个较弱的分类器比学习到一个强分类器容易的多,boosting就是从弱学习器出发,反复学习,得到多个弱分类器,最后将这些弱分类器组合成强分类器. boosting算法需要解决两个问题 每一轮如何改变训练样本的权重 如何将弱分类器组合成强分类器 adabo…
一.简介 xgboost在集成学习中占有重要的一席之位,通常在各大竞赛中作为杀器使用,同时它在工业落地上也很方便,目前针对大数据领域也有各种分布式实现版本,比如xgboost4j-spark,xgboost4j-flink等.xgboost的基础也是gbm,即梯度提升模型,它在此基础上做了进一步优化... 二.损失函数:引入二阶项 xgboost的损失函数构成如下,即一个经验损失项+正则损失项: \[Cost(y,F_{m-1},f_m)=\sum_{i=1}^n L(y_i,F_{m-1}(x…
一.简介 adaboost是一种boosting方法,它的要点包括如下两方面: 1.模型生成 每一个基分类器会基于上一轮分类器在训练集上的表现,对样本做权重调整,使得错分样本的权重增加,正确分类的样本权重降低,所以当前轮的训练更加关注于上一轮误分的样本: 2.模型组合 adaboost是采用的加权投票的方法 简单来说,adaboost算法涉及两种权重的计算:样本权重.分类器权重,接下来直接讲算法流程 二.算法流程 输入:训练集\(T=\{(x_1,y_1),(x_2,y_2),...,(x_N,…
adaboost 的思想很简单,算法流程也很简单,但它背后有完整的理论支撑,也有很多扩展. 权重更新 在算法描述中,权重如是更新 其中 wm,i 是m轮样本i的权重,αm是错误率,Øm是第m个基学习器的输出,Zm是归一化因子 当预测值与真实值相同时,yØ=1,-αyØ<0,exp(-αyØ)<1,权重降低: 当预测值与真实值不同时,yØ=-1,-αyØ>0,exp(-αyØ)>1,权重增加: 而且变化幅度由α确定: 这样可以说得通,但是这个式子是怎么来的呢? 原理推导 第一个式子表…
这一章也是本书基本理论的一章,我对这章后面有些公式看的比较模糊,这一会章涉及线性代数和概率论基础知识,讲了几种经典的线性模型,回归,分类(二分类和多分类)任务. 3.1 基本形式 给定由d个属性描述的示例 x =(x1:x2:… :xd),其中xi是x在第i个属性上的取值,线性模型(linear model)试图学得一个通过属性的线性组合来进行预测的函数,即: f(x) = w1x1 + w2x2 + … + wdxd + b 一般用向量形式写成: f(x) = wTx + b 其中x =(x1…
一.利用回归树实现分类 分类也可以用回归树来做,简单说来就是训练与类别数相同的几组回归树,每一组代表一个类别,然后对所有组的输出进行softmax操作将其转换为概率分布,然后再通过交叉熵或者KL一类的损失函数求每颗树相应的负梯度,指导下一轮的训练,以三分类为例,流程如下: 二.softmax+交叉熵损失,及其梯度求解 分类问题,一般会选择用交叉熵作为损失函数,下面对softmax+交叉熵损失函数的梯度做推导: softmax函数在最大熵那一节已有使用,再回顾一下: \[softmax([y_1^…