Questions tagged «boosting»

一系列算法将弱预测模型组合成强预测模型。最常用的方法称为梯度增强,最常用的弱模型是分类/回归树。

2
促进神经网络
最近,我正在研究学习增强算法,例如adaboost,梯度增强,并且我知道最常用的弱学习者是树这一事实。我真的想知道最近有一些使用神经网络作为基础学习者的成功例子(我的意思是一些论文或文章)。

4
“半监督学习”-过度拟合吗?
我正在阅读Kaggle竞赛获奖解决方案的报告(恶意软件分类)。该报告可在此论坛帖子中找到。问题是分类问题(九个类别,度量标准是对数损失),其中训练集中有10000个元素,测试集中有10000个元素。 在比赛期间,针对30%的测试集对模型进行了评估。另一个重要因素是模型的表现非常出色(准确性接近100%) 作者使用以下技术: 我们提出的另一项重要技术是半监督学习。我们首先通过选择最佳模型的最大概率来生成测试集的伪标签。然后,我们将使用训练数据和测试数据以交叉验证的方式再次预测测试集。例如,将测试数据集分为A,B,C和D四个部分。我们使用整个训练数据,并将测试数据A,B,C及其伪标签一起用作新的训练集,并预测测试设置D。 相同的方法用于预测A,B和C。这是由Xiaozhou发明的,效果出乎意料,并且可以减少局部交叉验证损失,公共LB损失和私人LB损失。最佳的半监督学习模型可以使私人LB对数丢失达到0.0023,这是我们所有解决方案中的最高分。 我真的不知道它如何改善结果。是因为30%的测试集被“泄漏”了,这是使用此信息的一种方式吗? 还是有任何理论上的原因可以解释其原理?

4
如何将新向量投影到PCA空间上?
执行主成分分析(PCA)之后,我想将一个新向量投影到PCA空间上(即在PCA坐标系中找到其坐标)。 我已经使用R计算了R语言的PCA prcomp。现在,我应该可以将向量乘以PCA旋转矩阵。该矩阵中的主要成分应该按行还是按列排列?
21 r  pca  r  variance  heteroscedasticity  misspecification  distributions  time-series  data-visualization  modeling  histogram  kolmogorov-smirnov  negative-binomial  likelihood-ratio  econometrics  panel-data  categorical-data  scales  survey  distributions  pdf  histogram  correlation  algorithms  r  gpu  parallel-computing  approximation  mean  median  references  sample-size  normality-assumption  central-limit-theorem  rule-of-thumb  confidence-interval  estimation  mixed-model  psychometrics  random-effects-model  hypothesis-testing  sample-size  dataset  large-data  regression  standard-deviation  variance  approximation  hypothesis-testing  variance  central-limit-theorem  kernel-trick  kernel-smoothing  error  sampling  hypothesis-testing  normality-assumption  philosophical  confidence-interval  modeling  model-selection  experiment-design  hypothesis-testing  statistical-significance  power  asymptotics  information-retrieval  anova  multiple-comparisons  ancova  classification  clustering  factor-analysis  psychometrics  r  sampling  expectation-maximization  markov-process  r  data-visualization  correlation  regression  statistical-significance  degrees-of-freedom  experiment-design  r  regression  curve-fitting  change-point  loess  machine-learning  classification  self-study  monte-carlo  markov-process  references  mathematical-statistics  data-visualization  python  cart  boosting  regression  classification  robust  cart  survey  binomial  psychometrics  likert  psychology  asymptotics  multinomial 

2
AdaBoost是更少还是更容易过度拟合?
我已经阅读了各种(看似)矛盾的陈述,与其他学习方法相比,AdaBoost(或其他增强技术)是否更趋于过度拟合。 有充分的理由相信彼此吗?如果依赖,它依赖什么?AdaBoost减少/更多倾向于过度拟合的原因是什么?

3
XGBoost vs Python Sklearn梯度增强树
我试图了解XGBoost的工作原理。我已经了解了梯度增强树如何在Python sklearn上工作。我不清楚XGBoost是否以相同的方式工作,但速度更快,或者它与python实现之间存在根本差异。 当我读这篇论文时 http://learningsys.org/papers/LearningSys_2015_paper_32.pdf 在我看来,XGboost的最终结果与Python实现中的结果相同,但是主要区别在于XGboost如何在每个回归树中找到最佳分割。 基本上,XGBoost提供相同的结果,但是速度更快。 这是正确的,还是我还缺少其他东西?

1
关于xgboost中的过拟合问题的讨论
我的设置如下: 我正在遵循“应用的预测建模”中的指导原则。因此,我过滤了相关功能并得出以下结果: 训练集中的4900个数据点和测试集中的1600个数据点。 我有26个功能,目标是一个连续变量。 我使用5倍交叉验证来训练使用该caret软件包的模型。当我应用MARS模型时,在训练集和测试集上我得到的平均绝对误差(MAE)约为4。 但是,使用xgboost(树算法或线性算法),在训练集上得到的像是0.32(!),在测试集上得到的像是2.4。 因此,如果测试误差是训练误差的8倍,那么我会说:我已经过度拟合了训练数据。无论如何,我仍然在测试中遇到了一个较小的错误。 我在xgboost上使用以下参数: nrounds = 1000和eta = 0.01(增加nrounds和减少eta可能有所帮助,但我的内存不足并且运行时间太长) max_depth = 16:如果我比较其他帖子和默认帖子6,则看起来很大,但问题非常复杂-在这种情况下,也许16不太大。 colsample_bytree = 0.7,subsample = 0.8并且min_child_weight = 5:这样做,我尝试减少过拟合。 如果我减小max_depth,则训练和测试误差会更接近,但仍然存在较大的差距,并且测试误差会更大(略高于3)。 使用线性助推器,我得到最佳参数的大致相同的训练和测试误差: lambda = 90 和`alpha = 0:通过交叉验证发现,lambda应该防止过拟合。 colsample_bytree = 0.8,subsample = 0.8并且min_child_weight = 5:这样做,我尝试减少过拟合。 我的感觉是xgboost仍然过拟合-但训练错误以及据我在实时测试中看到的(我已经使用过xgboost模型,并且实际上已经将它们集成了4天了)看起来还不错(错误是大于测试误差,但现实生活中有关特征和其他变量的预测存在更多不确定性。 您如何看待:如果(如果可能的话)现实生活中的表现优越,我可以接受过拟合吗?我的设置中的xgboost是否趋于过度拟合?

3
决策树桩是线性模型吗?
决策树桩是只有一个拆分的决策树。也可以将其编写为分段函数。 例如,假设是一个矢量,并且X 1是第一部件X,在回归设置,某些决策残端可以是XXxX1个X1个x_1XXx F(x )= { 35X1个≤ 2X1个> 2F(X)={3X1个≤25X1个>2f(x)= \begin{cases} 3& x_1\leq 2 \\ 5 & x_1 > 2 \\ \end{cases} 但这是线性模型吗?其中可以写成?这个问题听起来可能很奇怪,因为如答案和注释中所述,如果我们绘制分段函数,它就不是一条线。请参阅下一部分,以了解为什么我要问这个问题。F(x )= βŤXF(X)=βŤXf(x)=\beta^T x 编辑: 我问这个问题的原因是逻辑回归是一个(广义的)线性模型,决策边界是一条线,也适用于决策树桩。注意,我们还有一个问题:为什么逻辑回归是线性模型?。另一方面,决策树桩似乎不是线性模型。 我问这个问题的另一个原因是因为这个问题: 在提升时,如果基础学习者是线性模型,那么最终模型是否只是简单的线性模型? 在这里,如果我们使用线性模型作为基础学习者,那么除了线性回归之外,我们什么都不会得到。但是,如果我们选择基础学习者作为决策树桩,那么我们将获得非常有趣的模型。 这是一个具有2个特征和1个连续响应的回归决策树桩示例。

2
提升:为什么将学习率称为正则化参数?
所述学习率参数(在梯度)推进收缩每个新的基础模型-通常浅树形是在串联加入的贡献。它被证明可以极大地提高测试仪的精度,这是可以理解的,因为步数越小,损耗函数的最小值就可以越精确地达到。 ν∈[0,1]ν∈[0,1]\nu \in [0,1] 我不明白为什么学习率被视为正则化参数?引用统计学习的要素,第10.12.1节,第364页: 控制树的数量不是唯一可能的正则化策略。与山脊回归和神经网络一样,也可以使用收缩技术。值越小 (收缩率越大),对于相同数量的迭代M,导致更大的训练风险。因此,ν和M都控制训练数据的预测风险。νν\nuMMMνν\nuMMM 正则化意味着“避免过度拟合的方式”,因此很明显迭代次数在这方面至关重要(M太大会导致过度拟合)。但:MMMMMM 值越小(收缩率越大),对于相同数量的迭代M,导致更大的训练风险。νν\nuMMM 仅仅意味着在低学习率的情况下,需要更多的迭代才能在训练集上达到相同的准确性。那么,这与过度拟合有何关系?

1
基于交叉验证(CV)的预测间隔
在课本和youtube讲座中,我学到了很多关于诸如boosting之类的迭代模型的知识,但是我从未见过关于推导预测间隔的任何知识。 交叉验证用于以下目的: 型号选择:尝试不同的型号,然后选择最合适的型号。如果是升压,请使用CV选择调整参数。 模型评估:估算所选模型的性能 几个参数对于模型评估很重要,其中之一是预期的预测误差。交叉验证可以很好地估计预测误差,正如《统计学习的要素》一书中所述。 但是,我们如何使用预期的预测误差来建立预测间隔? 例如,如果您预测房屋价格,则500.000欧元房屋的预测间隔将比200.000欧元房屋的预测间隔高。我们如何使用交叉验证来估计这些预测间隔?

1
校准多类增强分类器
我已阅读亚历山德鲁·尼古列斯库-米济尔和富卡鲁阿纳的论文“ 从推进获取校准概率,并在讨论” 这一主题。但是,我仍然难以理解和实现逻辑或普拉特定标来校准我的多类提升分类器(带有决策树桩的温和提升)的输出。 我对广义线性模型有些熟悉,并且我想我了解logistic和Platt的校准方法在二进制情况下如何工作,但不确定如何将本文中描述的方法扩展到多类情况。 我正在使用的分类器输出以下内容: =分类器针对要分类的样本 i为类 j投的票数F我ĴF一世Ĵf_{ij}ĴĴj一世一世i =预估班级ÿ一世ÿ一世y_i 在这一点上,我有以下问题: 问题1:我是否需要使用多项式logit来估计概率?还是我仍然可以通过逻辑回归来做到这一点(例如,以1-vs-all的方式)? 问题2:如何为多类情况定义中间目标变量(例如,按Platt的缩放比例)? Q3:我知道这可能要问很多,但是有人愿意为这个问题草拟出伪代码吗?(在更实际的水平上,我对Matlab中的解决方案感兴趣)。

3
什么时候不应该使用集成分类器?
通常,在目标是准确预测样本外类成员身份的分类问题中,我什么时候不应该使用集合分类器? 这个问题与为什么不总是使用集成学习紧密相关?。这个问题问为什么我们不一直使用合奏。我想知道是否存在某些情况,即合奏比非合奏更糟(不仅仅是“不更好,更浪费时间”)。 通过“整体分类器”,我专门指的是诸如AdaBoost和随机森林之类的分类器,而不是例如滚动自带的增强支持向量机。

1
促进和袋装树木(XGBoost,LightGBM)
有很多关于袋装 或 助树的想法的博客文章,YouTube视频等。我的一般理解是,每个的伪代码为: 套袋: 取N个随机样本,占样本的x%和特征的y% 在每个N上拟合您的模型(例如决策树) 预测每个N 对预测取平均以得出最终预测 提升: 使模型(例如决策树)适合您的数据 获取残差 使模型适合残差 进行2次N轮助推 最终预测是顺序预测变量的加权和。 我将对上面的理解进行任何澄清,但是我想要的问题如下: XGBoost和LightGBM都具有允许打包的参数。该应用程序不是Bagging OR Boosting(每篇博客文章都在谈论),而是Bagging AND Boosting。在何时何地进行装袋和装袋的伪代码是什么? 我以为它是“袋装升压树”,但似乎是“升压袋装树”。差异似乎很大。 袋装助推树: 取N个随机样本,占样本的x%和特征的y% 在N个样本中的每个样本上拟合Boosted树 预测每个N 对预测取平均以得出最终预测 这似乎是最好的方法。毕竟,增加压力的风险是过度安装,装袋的主要好处是减少过度安装;打包一堆增强模型似乎是个好主意。 但是,通过浏览(例如,scikit-learn gradient_boosting.py(用于示例装袋,但不选择随机特征)),并在有关LightGBM和XGBoost的帖子中整理一些小块,看起来XGBoost和LightGBM的工作方式如下: 增强袋装树: 使决策树适合您的数据 对于我在N轮助推中: 获取残差 如果我mod bag_frequency == 0(即每5轮装袋): 取一个随机样本,占样本的x%和特征的y%;继续使用此随机样本 使树适合残差 最终预测是顺序预测变量的加权和。 请在这里更正我的理解并填写详细信息。Boosted Bagged树(每个bag_frequency仅包含1个随机树)似乎不如Bagged Boosted Tree强大。

2
使用梯度增强进行分类:如何将预测保持在[0,1]
问题 我在努力了解预测是如何保持在内[0,1][0,1][0,1]的时间间隔与梯度推进做二元分类时。 假设我们正在研究二进制分类问题,我们的目标函数是对数损失,其中是的目标变量而是我们当前的模型。−∑yilog(Hm(xi))+(1−yi)log(1−Hm(xi))−∑yilog⁡(Hm(xi))+(1−yi)log⁡(1−Hm(xi))-\sum y_i \log(H_m(x_i)) + (1-y_i) \log(1-H_m(x_i))yyy∈{0,1}∈{0,1}\in \{0,1\}HHH 当训练下一个弱学习者,使我们的新模型为,应该使的机制是什么?或者,也许是一个更相关的问题,是否存在这样的机制?hihih_iHi=Hi−1+hiHi=Hi−1+hiH_i = H_{i-1} + h_iHi∈[0,1]Hi∈[0,1]H_i \in [0,1] 有关我在做什么的更多信息 我正在尝试使用回归树来实现梯度增强。我要避免的是将乘以因子,这样不会小于零或大于零一,然后在该范围内选择以使损失函数最小。hihih_ic∈[0,cmax]c∈[0,cmax]c \in [0,c_{\text{max}}]H+cmaxhH+cmaxhH + c_{\text{max}}hccc 这带来了以下问题:经过几轮后,我得到了一个已完全分类的点,并且可用于沿梯度方向推动分类器的最佳拆分希望将这一点推动至一个以上,我确保不会发生这种情况设置。因此,所有下一次迭代将选择相同的拆分和相同的。c=0c=0c = 0c=0c=0c = 0 我尝试了常见的正则化做法 乘以降低学习率由。这只会延迟问题。μ = 0.01cccμ=0.01μ=0.01\mu = 0.01 对特征空间进行二次采样,但是有些点很容易分类,它们几乎标记了“这是肯定的吗?”中的每个框。形式,几乎每个“良好的分裂”都显示了此行为。 我认为这不是参数问题,应该有更合理的方法来解决此问题。我并没有放弃实现被破坏的可能性,但是我没有找到解决此问题的方法。 在逻辑损失的背景下,我们所要操纵的应该是一个概率,那么我们如何避免它呢? 我的直觉是把我们构建模型,,在S形函数,使得它为界,[ 0 ,1 ],我想这会的工作,但我想知道是否有其他的解决方案。由于在分类任务中似乎成功使用了梯度增强,因此应该存在一个“正确的”(即有正当理由)解决方案。HHH[0,1][0,1][0,1]


2
GBM分类是否遭受班级规模不平衡的困扰?
我正在处理有监督的二进制分类问题。我想使用GBM软件包将个人分类为未感染/已感染。我的未感染人数是感染者的15倍。 我想知道GBM模型在班级规模不均衡的情况下是否会受到影响?我没有找到回答该问题的参考文献。 我尝试通过为未感染的个体分配1的权重并为感染的个体分配15的权重来调整权重,但是结果却很差。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.