Python SkLearn Gradient Boost Classifier Sample_Weight Clarification

Posted

技术标签:

【中文标题】Python SkLearn Gradient Boost Classifier Sample_Weight Clarification【英文标题】: 【发布时间】:2019-02-05 08:18:42 【问题描述】:

使用 Python SkLearn 梯度提升分类器。我正在使用的设置是选择随机样本(随机)。对其中一个二元类(结果 = 0)使用 sample_weight 1,对另一个类(结果 = 1)使用 20。我的问题是这些权重如何以“外行术语”应用。

是不是在每次迭代中,模型都会从样本中选择 x 行作为 0 结果,选择 y 行作为结果 1,然后 sample_weight 设置将启动并保留所有 x 但对 y (1 ) 结果乘以 20 倍?

在文档中,我不清楚它是否通过 sample_weight > 1 进行过采样。我知道 class_weight 是不同的,不会改变数据,而是模型如何通过损失函数解释数据。另一方面,Sample_weight 是否真的通过过采样有效地改变了输入模型的数据?

谢谢

【问题讨论】:

【参考方案1】:

样本权重是一个乘数,这里是代码:

https://github.com/scikit-learn/scikit-learn/blob/f0ab589f/sklearn/ensemble/gradient_boosting.py#L1225

【讨论】:

谢谢,通过乘数因子,您确认 sample_weight 正在修改算法如何惩罚该类上的错误,而不是通过从该类过采样将更多数据输入树中。如果您能够突出显示一些代码示例,我们将不胜感激。

以上是关于Python SkLearn Gradient Boost Classifier Sample_Weight Clarification的主要内容,如果未能解决你的问题,请参考以下文章

scikit-learn的梯度提升算法(Gradient Boosting)使用

python sklearn逻辑回归怎么导出概率值

在处理 VotingClassifier 或网格搜索时,Sklearn 中的 GradientBoostingClassifier 是不是有类权重(或替代方式)?

python radial_gradient_script.py

Python Numpy gradient源码解析

sklearn11_函数汇总