最近学习<西瓜书>的集成学习之Boosting算法,看了一个很好的例子(https://zhuanlan.zhihu.com/p/27126737),为了方便以后理解,现在更详细描述一下步骤. AdaBoosting(Adaptive Boosting)算法本质思想如下: 以最大准确率拟合第一个学习器: 第二个需要修正第一个的错误:筛选出错误并把它们放大: 第三个再修正之前的错误: 重复以上步骤,直到学习器数目达事先指定的值,再将这些学习器进行加权结合. 给定数据集如下: 注: 1)y的取值只…
GBDT和xgboost在竞赛和工业界使用都非常频繁,能有效的应用到分类.回归.排序问题,虽然使用起来不难,但是要能完整的理解还是有一点麻烦的.本文尝试一步一步梳理GB.GBDT.xgboost,它们之间有非常紧密的联系,GBDT是以决策树(CART)为基学习器的GB算法,xgboost扩展和改进了GDBT,xgboost算法更快,准确率也相对高一些. 1. Gradient boosting(GB) 机器学习中的学习算法的目标是为了优化或者说最小化loss Function, Gradient…
一步一步理解Paxos算法 背景 Paxos 算法是Lamport于1990年提出的一种基于消息传递的一致性算法.由于算法难以理解起初并没有引起人们的重视,使Lamport在八年后重新发表到 TOCS上.即便如此paxos算法还是没有得到重视,2001年Lamport用可读性比较强的叙述性语言给出算法描述.可见Lamport对 paxos算法情有独钟.近几年paxos算法的普遍使用也证明它在分布式一致性算法中的重要地位.06年google的三篇论文初现“云”的端倪,其中的chubby锁服务使用p…
一步一步的理解C++STL迭代器 "指针"对全部C/C++的程序猿来说,一点都不陌生. 在接触到C语言中的malloc函数和C++中的new函数后.我们也知道这两个函数返回的都是一个指针.该指针指向我们所申请的一个"堆".提到"堆".就不得不想到"栈".从C/C++程序设计的角度思考,"堆"和"栈"最大的差别是"栈"由系统自己主动分配而且自己主动回收,而"堆…
背景知识 要使用 Django,首先必须先安装 Django. 下图是 Django 官网的版本支持,我们可以看到上面有一个 LTS 存在.什么是 LTS 呢?LTS ,long-term support,也就是长期技术支持版的意思.长期技术支持版意味着资料的丰富程度和稳定性会比其他版本的要好.可以看到,目前的长期技术是 1.11,而上一个长期技术支持版是 1.8 ,我们尽量使用 1.11 长期技术支持版,因为企业在做技术选型的时候,选择的往往不是最新的,而是最稳定的. 安装 Django,打开…
一步一步理解线段树   目录 一.概述 二.从一个例子理解线段树 创建线段树 线段树区间查询 单节点更新 区间更新 三.线段树实战 -------------------------- 一 概述 线段树,类似区间树,它在各个节点保存一条线段(数组中的一段子数组),主要用于高效解决连续区间的动态查询问题,由于二叉结构的特性,它基本能保持每个操作的复杂度为O(logn). 线段树的每个节点表示一个区间,子节点则分别表示父节点的左右半区间,例如父亲的区间是[a,b],那么(c=(a+b)/2)左儿子的…
  本文大部分内容翻译自Illustrated Self-Attention, Step-by-step guide to self-attention with illustrations and code,仅用于学习,如有翻译不当之处,敬请谅解! 什么是Self-Attention(自注意力机制)?   如果你在想Self-Attention(自注意力机制)是否和Attention(注意力机制)相似,那么答案是肯定的.它们本质上属于同一个概念,拥有许多共同的数学运算.   一个Self-At…
一.概述 关于word2vec,首先需要弄清楚它并不是一个模型或者DL算法,而是描述从自然语言到词向量转换的技术.词向量化的方法有很多种,最简单的是one-hot编码,但是one-hot会有维度灾难的缺点,而且one-hot编码中每个单词都是互相独立的,不能刻画词与词之间的相似性.目前最具有代表性的词向量化方法是Mikolov基于skip-gram和negative sampling开发的,也是大家通常所认为的word2vec.这种方法基于分布假设(Distributed Hypothesis)…
http://www.cnblogs.com/maybe2030/p/4585705.html 阅读目录 1 什么是随机森林? 2 随机森林的特点 3 随机森林的相关基础知识 4 随机森林的生成 5 袋外错误率(oob error) 6 随机森林工作原理解释的一个简单例子 7 随机森林的Python实现 8 参考内容 回到顶部 1 什么是随机森林? 作为新兴起的.高度灵活的一种机器学习算法,随机森林(Random Forest,简称RF)拥有广泛的应用前景,从市场营销到医疗保健保险,既可以用来做…
Boosting boosting和bagging很类似,所使用的多个分类器类型都是一致的.另外,他们的主要区别点如下: boosting中不同的分类器是通过串行得到的,每个分类器都是根据已经训练出来的分类器的性能来进行训练. bagging中不同的分类器之前是没有影响的. boosting最终的分类结果是各个基本分类器的加权得到,bagging分类器的权重是相等的. boosting不改变所给的训练数据,只是改变所给训练数据的一个权值的分布. Boosting的主要版本:AdaBoost, G…