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)使用
在处理 VotingClassifier 或网格搜索时,Sklearn 中的 GradientBoostingClassifier 是不是有类权重(或替代方式)?