摘要:
AdaBoost算法将多个不同的决策树用一种非随机的方式组合起来,比传统决策树精度更高也更加稳定。AdaBoost的出现不仅拯救了有些式微的决策树算法,而且还开创了集成学习算法的先河。在AdaBoost的影响下,Friedman在1999年提出了梯度提升决策树算法,这种算法完美地将梯度提升算法和CART算法结合起来,不仅可以用于回归问题,同样也可以应用于分类问题中。GBDT被很多人认为是传统机器学习中位居Top3的算法。即使这样,GBDT也并不完美,相比于AdaBoost,因为后一棵树的训练依赖于前一棵树的残差,所以其并不能进行并行训练。XGBoost是近年来针对大规模机器学习需求对GBDT提出的改进方案。XGBoost是2016年由华盛顿大学在读博士生陈天奇发布的开源框架,相关论文 XGBoost: A Scalable Tree Boosting System 也发表在机器学习与数据挖掘顶级会议KDD2016上。XGBoost较传统的GBDT算法,加入了正则项,能够更好地防止模型过拟合,并且可以并行分布式计算,极大地提高了精度和训练效率。 阅读全文
摘要:
决策树是一种很基本的分类与回归方法,但正如前面博文机器学习排序算法:RankNet to LambdaRank to LambdaMART中所讲的LambdaMART算法一样,这种最基本的算法却是很多经典、复杂、高效的机器学习算法的基础。关于什么是决策树,网上一搜就会有很多博客文章,所以本文并不想讨论这个话题。本文想讨论的是决策树中两个非常重要的决策指标:熵和基尼指数。熵和基尼指数都是用来定义随机变量的不确定性的指标。下面先介绍什么是随机变量的不确定性。
什么是随机变量的不确定性?举个例子,比如一个班级有50个同学,每个同学都有且仅有一部智能手机,问:如果任意选择一位同学,他可能用什么品牌的手机?如果这个班的同学全部都用苹果手机,那这个问题很好回答,也即“从这个班中任意选取的一位同学用什么品牌的手机”这个随机变量是确定的,不确定性为0。但如果这个班级中$\frac{1}{3}$的同学用小米手机,$\frac{1}{3}$的同学用苹果手机,其余$\frac{1}{3}$的同学用华为手机,这种情况下,这个变量的不确定性明显增大了。那接下来就需要考虑另外一个问题:什么情况下,这个变量的不确 阅读全文
摘要:
RankNet、LambdaRank和LambdaMART是三个关系非常紧密的机器学习排序算法。简而言之,RankNet是最基础,基于神经网络的排序算法;而LambdaRank在RankNet的基础上修改了梯度的计算方式,也即加入了lambda梯度;LambdaMART结合了lambda梯度和MART(另称为GBDT,梯度提升树)。这三种算法在工业界中应用广泛,在BAT等国内大厂和微软谷歌等世界互联网巨头内部都有大量应用,还曾经赢得“Yahoo!Learning To Rank Challenge(Track 1)"的冠军。本人认为如果评选当今工业界中三种最重要的机器学习算法,以LambdaMART为首的集成学习算法肯定占有一席之地,另外两个分别是支持向量机和深度学习。 阅读全文
摘要:
最短路径算法中,有四种算法是最常见的,分别是Dijkstra算法,Floyd算法,Bellman-Ford算法和SPFA算法。 阅读全文
摘要:
约翰·法雷 是英国一位多才多艺的“ 杂家” , 生活在拿破仑时代, 职业是土地丈量员, 却有着广泛的爱好, 喜欢搜集奇异的石头、矿物, 兴致来潮, 撰写小块科普文章在《哲学杂志》上发表, 题材广泛涉及到地质、音乐、钱币、车轮、慧星, 偶尔也涉及数学小品。1816年, 当他审读亨利 戈德温所编的“ 小数商表” 时,忽然有一个问题涌上心头, 既约最简真分数有多少呢能不能把它们按一定的顺序排列出来兴致所及, 急切难忍, 他立即推开戈氏冗繁的“商表” , 动手排列起来, 一遍又一遍, 没有头绪。这时他想到两点:一是真分数有无限多个, 要“ 全部” 排出, 必须限制分母的大小二是可按递增的顺序去排列, 容易发现规律 他终于排出来了, 还发现了若干性质。发表后, 立即被当时数学家们抓住, 后来数学家柯西发现这分数串在数学中很有用,并名之为法雷数列。 没成想早在14年前, 一位名叫哈罗斯的人, 就发现并公布了自己的研究结故。名之哈罗斯一法雷数列。 阅读全文