python - 多级 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 这样的直接类预测。
有人可以解释一下我该怎么做吗?
解决方案
推荐阅读
- javascript - 克隆输入字段不会将新表单克隆为空白
- amazon-web-services - 解密 AWS CodeDeploy 的配置和 appspec 路径
- dns - TLD DNS 服务器如何知道哪个权威 DNS 服务器拥有特定主机名的记录?
- rust - 如何从 rust 中的选项中转换未来?
- database - Laravel Eloquent:数据库模式设计
- java - 如何打印相同元素的最长序列?
- c# - CS0161:并非所有代码路径都返回值
- sql - 根据所有位置的最新记录计算平均值
- python - discord.py 获取被封禁用户的封禁原因
- azure - Azure ARM 策略部署拒绝特定 sku.name