【问题标题】:GradientBoostingTree training with soft labels in scikit-learn?在 scikit-learn 中使用软标签进行 GradientBoostingTree 训练?
【发布时间】:2017-12-27 11:35:00
【问题描述】:

我正在重构一篇论文。他们在给定输入 X 和软目标 y_s 的情况下训练 Gradient Boosting Regression Trees,以获得具有最小均方误差的最终输出 y。关于论文,他们使用 scitkit-learn 包实现了所有基于决策树的方法,无需任何修改。这就是我想做的。

如果您已经知道解决方案,我会很高兴听到,否则这是我的想法: 只是为了简化假设我们有一个二进制问题 X = [[x1 x2 x3] [x1 x2 x3]...] 和 y_s [[0.4 0.6][0.8 0.2]...]。

关于 GradientBoostingTree 进行分类(见上面的链接),我只能输入一个 1-dim 类数组

(y : array-like, shape = [n_samples]) 目标值(整数 分类,回归中的实数)用于分类,标签 必须对应于类。

,所以即使我会覆盖可以处理软标签的成本函数(例如交叉熵),我仍然无法输入 2 个暗淡的软标签(至少)。

另一个想法是通过仅采用一个软标签(仅适用于两个软标签加起来为 1 的二进制问题)将其减少到 1-dim,并改用 GradientBoostingRegression。但是同样只有一个类是可能的,我也不能训练独立的模型,比如

X = [[1,2,3], [1,2,3], [4,5,6]]
y = [[3.141, 2.718], [3.141, 2.718], [2.718, 3.141]]
rgr = MultiOutputRegressor(GradientBoostingRegressor(random_state=0))
rgr.fit(X, y)
X_test = [[1.5,2.5,3.5], [3.5,4.5,5.5]]
rgr.predict(X_test)

因为输出之间的相关性..

大图: 1. 组合特征的提取 2. a) 训练:提取特征(Xb),原始标签(y) -> 逻辑回归 b) 预测:软标签 (yb) 3. a) 训练:原始特征 (X)、软标签 (yb) -> GradientBoostingTree b)评估:预测正常标签(y_) -> 原始特征的重要性

没有软标签的整个过程毫无价值。我的意思是它必须以某种方式成为可能,但我无法弄清楚如何......

http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.GradientBoostingClassifier.html http://scikit-learn.org/stable/auto_examples/ensemble/plot_gradient_boosting_regression.html

【问题讨论】:

    标签: python scikit-learn decision-tree training-data


    【解决方案1】:

    multi-output decision trees 上的 scikit-learn 文档应该为您指明正确的方向

    【讨论】:

    • 感谢您的回答。我知道 DecisionTreeRegressor 但我不知道如何将其更改为 GradientBoostingRegressor 例如使用收缩作为正则化方法? GradientBoostingRegressor
    • 为了确定,我更改了估算器,并以与之前相同的错误消息结束“ValueError:输入形状错误”所以看来我可以通过手动更改 GradientBoostingRegressor 包来使用 GBR?跨度>
    • sklearn.ensemble 模型中 'fit' method 的 API 声明 y 的形状应为 [n_samples]。相比之下,sklearn.tree 中的'fit' method 允许y 具有[n_samples, n_outputs] 的形状。我希望在.tree 模型上实现提升比在“.ensemble”方法上实现多个输出更容易
    • 嗯,听起来 sklearn 中没有开箱即用的解决方案,这可能也与算法有关。有谁知道类似于 Gradient Boosting 的算法来提取特征的重要性? DT风格首选...
    • 您可以使用this sklearn recipe 从决策树中提取和绘制特征重要性。
    猜你喜欢
    • 1970-01-01
    • 2018-02-08
    • 2020-03-16
    • 2019-10-22
    • 2021-05-31
    • 2014-05-01
    • 2014-10-13
    • 2014-09-17
    • 2016-04-06
    相关资源
    最近更新 更多