首页 > 解决方案 > 多级 Adaboost

问题描述

我正在使用决策树桩使用 Adaboost 进行多类分类。我的数据集有 7 个类,教授明确告诉我要做 One Vs 分类。

我必须从 strath 编写所有内容,因此不允许使用 ML 库。

由于我有 7 个班级,我必须以下列形式为每个班级创建 7 个不同的训练集:1 vs -1、2 vs -1、3 vs -1、4 vs -1 到 7 vs -1 但由于 Adaboost 得到只有 1 和 -1,他们将是 1 对 -1 七次,对吧?

然后我在每个不同的数据集上运行 Adaboost,因此每个类运行 7 次。假设我为每个类做了 4 轮,并为第一类获得了 4 个 alpha 值,它们是 0.42、0.65、0.38、1.1,假设在这四轮中,我得到 1、-1、1、1 作为第一类的预测实例。然后我预测为 0.42 x 1 + 0.65 x (-1) + 0.38 x 1 + 1.1 x 1 = 1.25。应用符号函数将为此实例返回 1。但由于我们正在进行多类预测,我需要这个实例为 1 或 -1 的可能性。我怎么才能得到它?0.42 x 1 + 0.65 x (-1) + 0.38 x 1 + 1.1 x 1 = 1.25 我可以使用这个结果(1.25)作为概率吗?但它不在 0 和 1 之间。如果这是我必须使用的,应该有一种方法来规范它们,但无法提出解决方案。

简而言之,问题是我需要一个类为 1 或 -1 的概率,而不是像 1 或 -1 这样的直接类预测。

有人可以解释一下我该怎么做吗?

标签: pythonmachine-learningmulticlass-classificationadaboost

解决方案


推荐阅读