首页 文章

GradientBoostingTree在scikit-learn中使用软标签进行培训?

提问于
浏览
0

我正在重建一篇论文 . 他们训练 Gradient Boosting Regression Trees given the input X and soft targets y_s 以最小的均方误差得到最终输出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-dim(仅适用于两个软标签加起来为1的二进制问题)并使用GradientBoostingRegression代替 . 但同样只有一个 class 是可能的,我也不能训练独立的模型

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_) - >原始特征的重要性

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

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

1 回答

相关问题