boosting

R语言中的机器学习

余生颓废 提交于 2019-12-16 17:45:04
转载自 R中文论坛(http://rbbs.biosino.org/Rbbs/posts/list/192.page) Machine Learning & Statistical Learning (机器学习 & 统计学习) 网址: http://cran.r-project.org/web/views/MachineLearning.html 维护人员:Torsten Hothorn 版本:2008-02-18 18:19:21 翻译:R-fox, 2008-03-18 机器学习是计算机科学和统计学的边缘交叉领域,R关于机器学习的包主要包括以下几个方面: 1)神经网络(Neural Networks): nnet包执行单隐层前馈神经网络,nnet是VR包的一部分( http://cran.r-project.org/web/packages/VR/index.html )。 2)递归拆分(Recursive Partitioning): 递归拆分利用树形结构模型,来做回归、分类和生存分析,主要在rpart包( http://cran.r-project.org/web/packages/rpart/index.html )和tree包( http://cran.r-project.org/web/packages/tree/index.html )里执行,尤其推荐rpart包

“机器学习实战”刻意练习——分类问题:AdaBoost

别等时光非礼了梦想. 提交于 2019-12-15 04:24:29
参考: Python3《机器学习实战》学习笔记(十):提升分类器性能利器-AdaBoost - Jack-Cui 一、概述 元算法 ,或者说 集成方法 是对其他算法进行组合的一种方式。 接下来我们将集中关注一个称作 AdaBoost 的最流行的元算法。 使用 集成方法 时会有多种形式:可以是 不同算法 的集成,也可以是 同一算法在不同设置下 的集成,还可以是 数据集不同部分分配给不同分类器 之后的集成。 优缺点 优点: 泛化错误率低 , 易编码 ,可以应用在大部分分类器上, 无参数调整 。 缺点: 对离群点敏感 。 适用数据类型: 数值型 和 标称型 数据。 AdaBoost的一般流程 收集数据:可以使用任意方法。 准备数据:依赖于所使用的 弱分类器类型 ,我们使用的是 单层决策树 ,这种分类器可以处理任何数据类型。作为弱分类器,简单分类器的效果更好。 分析数据:可以使用任意方法。 训练算法:AdaBoost的大部分时间都用在训练上,分类器将多次在同一数据集上训练弱分类器。 测试算法:计算分类的错误率。 使用算法:同SVM一样,AdaBoost预测两个类别中的一个。如果想把它应用到多个类别的场合,那么就要像多类SVM中的做法一样对AdaBoost进行修改。 二、相关原理 1.bagging与boosting 自举汇聚法 (bootstrap aggregating),也称为

Feature importance 'gain' in XGBoost

落爺英雄遲暮 提交于 2019-12-14 03:56:23
问题 I want to understand how the feature importance in xgboost is calculated by 'gain'. From https://towardsdatascience.com/be-careful-when-interpreting-your-features-importance-in-xgboost-6e16132588e7: ‘Gain’ is the improvement in accuracy brought by a feature to the branches it is on. The idea is that before adding a new split on a feature X to the branch there was some wrongly classified elements, after adding the split on this feature, there are two new branches, and each of these branch is

R语言 机器学习包

孤人 提交于 2019-12-10 01:44:38
from: http://www.zhizhihu.com/html/y2009/410.html 机器学习是计算机科学和统计学的边缘交叉领域,R关于机器学习的包主要包括以下几个方面: 1)神经网络(Neural Networks): nnet包执行单隐层前馈神经网络,nnet是VR包的一部分( http://cran.r-project.org/web/packages/VR/index.html )。 2)递归拆分(Recursive Partitioning): 递归拆分利用树形结构模型,来做回归、分类和生存分析,主要在rpart包( http://cran.r-project.org/web/packages/rpart/index.html )和tree包( http://cran.r-project.org/web/packages/tree/index.html )里执行,尤其推荐rpart包。Weka里也有这样的递归拆分法,如:J4.8, C4.5, M5,包Rweka提供了R与Weka的函数的接口( http://cran.r-project.org/web/packages/RWeka/index.html )。 party包提供两类递归拆分算法,能做到无偏的变量选择和停止标准:函数ctree()用非参条件推断法检测自变量和因变量的关系;而函数mob(

手机端页面时,字体的显示大小与在CSS中指定的大小不一致

大城市里の小女人 提交于 2019-12-08 00:35:06
最近在做一个手机端页面时,遇到了一个奇怪的问题:字体的显示大小,与在CSS中指定的大小不一致。大家可以查看这个Demo(记得打开Chrome DevTools)。 就如上图所示,你可以发现,原本指定的字体大小是24px,但是最终计算出来的却是53px,看到这诡异的结果,我心中暗骂一句:这什么鬼! 随后开始对问题各种排查:某个标签引起的?某个CSS引起的?又或者是某句JS代码引起的。通过一坨坨的删代码,发现貌似都不是。我不禁又骂,到底什么鬼!不过中间还是发现了一些端倪:当页面中的标签数量或者文本数量大于某一个值,或者当CSS定义的字体大小落在某个区间时,这个问题才会被触发。而且字体变大后的值也随着原始定义的字体大小而改变。 然后自然就是各种搜索,终于有了新的发现。原来这个特性被称做「Text Autosizer」,又称「Font Boosting」、「Font Inflation」,是 Webkit 给移动端浏览器提供的一个特性:当我们在手机上浏览网页时,很可能因为原始页面宽度较大,在手机屏幕上缩小后就看不清其中的文字了。而 Font Boosting 特性在这时会自动将其中的文字字体变大,保证在即不需要左右滑动屏幕,也不需要双击放大屏幕内容的前提下,也可以让人们方便的阅读页面中的文本。 不过这个特性并不总是有必要的,还好在查到问题原因的同时,大家也讨论了对这个问题的一些处理方案:

How can I boost the field length norm in elasticsearch function score?

浪尽此生 提交于 2019-12-06 20:48:41
问题 I know that elasticsearch takes in account the length of a field when computing the score of the documents retrieved by a query. The shorter the field, the higher the weight (see The field-length norm). I like this behaviour: when I search for iphone I am much more interested in iphone 6 than in Crappy accessories for: iphone 5 iphone 5s iphone 6 . Now, I would like to try to boost this stuff, let's say that I want to double its importance. I know that one can modify the score using the

How can I boost the field length norm in elasticsearch function score?

柔情痞子 提交于 2019-12-05 02:42:32
I know that elasticsearch takes in account the length of a field when computing the score of the documents retrieved by a query. The shorter the field, the higher the weight (see The field-length norm ). I like this behaviour: when I search for iphone I am much more interested in iphone 6 than in Crappy accessories for: iphone 5 iphone 5s iphone 6 . Now, I would like to try to boost this stuff, let's say that I want to double its importance. I know that one can modify the score using the function score , and I guess that I can achieve what I want via script score . I tried to add another field

集成学习

徘徊边缘 提交于 2019-12-04 15:17:45
集成学习 集成学习通过构建并结合多个学习器来完成学习任务。 集成学习的思路是通过合并多个模型来提升机器学习性能,这种方法相较于当个单个模型通常能够获得更好的预测结果。这也是集成学习在众多高水平的比赛如奈飞比赛,KDD和Kaggle,被首先推荐使用的原因。 分类 用于减少方差的bagging 用于减少偏差的boosting 用于提升预测结果的stacking 集成学习方法也可以归为如下两大类: 1 串行集成方法,这种方法串行地生成基础模型(如AdaBoost)。串行集成的基本动机是利用基础模型之间的依赖。通过给错分样本一个较大的权重来提升性能。 2 并行集成方法,这种方法并行地生成基础模型(如Random Forest)。并行集成的基本动机是利用基础模型的独立性,因为通过平均能够较大地降低误差。 Bagging和Boosting的区别? 样本选择: Bagging: 训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。 Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。 样例权重: Bagging: 使用均匀取样,每个样例的权重相等。 Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大。 预测函数: Bagging: 所有预测函数的权重相等。 Boosting

Solr MoreLikeThis boosting query fields

匿名 (未验证) 提交于 2019-12-03 08:54:24
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: I am experimenting with Solr's MoreLikeThis feature. My schema deals with articles, and I'm looking for similarities between articles within three fields: articletitle, articletext and topic. The following query works well: q=id:(2e2ec74c-7c26-49c9-b359-31a11ea50453) &rows=100000000&mlt=true &mlt.fl=articletext,articletitle,topic&mlt.boost=true&mlt.mindf=1&mlt.mintf=1 But I would like to experiment with boosting different query fields - i.e. putting more weight on similarities in the articletitle, for instance. The documentation ( http:/

【集成模型】Boosting

天涯浪子 提交于 2019-12-02 16:47:30
0 - 思想   Boosting算法思想是将“弱学习算法”提升为“强学习算法”。一般来说,弱学习算法容易找到,而后通过反复学习得到一系列弱分类器,再通过加权将他们组合起来得到一个强分类器。   Boosting算法主要有两个核心概念:加法模型和前向分步算法。   加法模型即是将一系列弱分类器线性相加组成强分类器的过程,有如下形式 $$F_M(x;P)=\sum_{m=1}^n\beta_m h_m(x;a_m),$$ 其中$h(x;a_m)$表示第$m$个弱分类器,$a_m$对应该弱分类器的最优参数,$\beta_m$表示该分类器在强分类器中所占比重,$P$是所有$a_m$和$\beta_m$的组合。   前向分步指的是在训练过程中,下一轮迭代产生的分类器是在上一轮的基础上训练得到的(顺序依次进行训练,sequentially),可以表达为 $$F_m(x)=F_{m-1}(x)+\beta_m h_m(x;a_m).$$   不同的Boosting算法具有不同的损失函数,常用的AdaBoost是损失函数为指数损失的Boosting算法。 1 - AbaBoost 1.0 - 特点 在每一轮迭代中,AdaBoost改变了训练数据的权值(即改变了样本的概率分布),其目标是为了将关注点放在被错误分类的样本上。具体做法为:减少上一轮被正确分类的样本权值,增加上一轮被错误分类的样本权值