双类贝叶斯点机
重要
对机器学习工作室(经典)的支持将于 2024 年 8 月 31 日结束。 建议在该日期之前转换到 Azure 机器学习。
从 2021 年 12 月 1 日开始,你将无法创建新的机器学习工作室(经典)资源。 在 2024 年 8 月 31 日之前,可继续使用现有的机器学习工作室(经典)资源。
ML 工作室(经典)文档即将停用,将来可能不会更新。
创建贝叶斯点机二元分类模型
模块概述
本文介绍如何使用机器学习 Studio (经典) 中的双类 Bayes 点机模块来创建未经训练的二元分类模型。
此模块中的算法使用 Bayesian 方法对称为 "Bayes 点机" 的线性分类。 此算法通过选择一个 "平均" 分类器(Bayes 点)来有效地模拟线性分类器的理论上最佳 Bayesian 平均值) (。 由于贝叶斯点机是一种贝叶斯分类模型,因此不容易导致训练数据过度拟合。
有关详细信息,请参阅 Chris Bishop 在 Microsoft 机器学习博客上的文章:接纳不确定性-概率推理。
如何配置 Two-Class Bayes 点机
在机器学习 Studio (经典) 中,将 "双类 Bayes 点机" 模块添加到试验中。 可以在 "机器学习、初始化模型、分类" 下找到该模块。
对于 " 定型迭代数",键入一个数字以指定消息传递算法循环访问定型数据的频率。 通常情况下,迭代数应设置为 5-100 范围内的值。
训练迭代数字越大,预测准确性越高,但是训练速度越慢。
对于大多数的数据集,训练迭代数为 30 的默认设置足以满足算法进行准确预测。 有时,可以使用更少的迭代数进行准确预测。 对于具有高度相关的特征的数据集,更高的训练迭代数可能会使你受益。
如果希望在定型和预测中向每个实例添加常量特征或偏量,请选择 " 包括偏置" 选项。
如果数据不包含常量特征,则必须包括偏差。
选择选项 " 在分类功能中允许未知值",为未知值创建组。
如果取消选择此选项,则模型只能接受训练数据中包含的值。
如果选择此选项,并允许未知值,则该模型可能会不太精确地用于已知值,但它可以为新 (未知) 值提供更好的预测。
添加 " 定型模型 " 模块的实例和定型数据。
连接 "双类 Bayes 点机" 模块的定型数据和输出添加到 "训练模型" 模块,然后选择 "标签" 列。
运行试验。
结果
训练完成后,右键单击 " 训练模型 " 模块的输出以查看结果:
若要查看模型参数的摘要,以及从培训中学习的功能权重,请选择 " 可视化"。
若要保存模型以供将来使用,请右键单击 " 训练模型" 的输出,然后选择 " 另存为定型模型"。
若要进行预测,请使用定型模型作为 评分模型 模块的输入。
还可以将未训练的模型传递给 交叉验证模型 ,以便对标记的数据集进行交叉验证。
示例
若要查看如何在机器学习中使用 Two-Class Bayes 点机,请参阅 Azure AI 库中的以下示例试验:
- 比较二进制分类器:此示例演示如何使用多个双类分类器。
技术说明
本部分包含有关此算法的实现细节和常见问题。
本白皮书 (PDF) : Bayes 点机、Herbert、Graepe 和 Campbell中提供了原始研究和基础理论的详细信息
但是,这种实现在原始算法上的改进方式如下:
使用期望传播消息传递算法。 有关详细信息,请参阅 用于近似 Bayesian 推理的算法系列。
参数扫描不是必需的。
此方法不需要规范化数据。
这些改进使贝叶斯点机分类模型更可靠和更易于使用,你可以绕过参数优化耗时的步骤。
模块参数
名称 | 范围 | 类型 | 默认 | 说明 |
---|---|---|---|---|
训练迭代次数 | >=1 | Integer | 30 | 指定训练时要使用的迭代数 |
包括偏差 | 任意 | 布尔 | True | 指示是否应向每个实例添加常量特征或者偏差 |
允许分类特征中包含未知值 | 任意 | 布尔 | True | 若为 True,则为每个分类列都创建一个附加级别。 测试数据集中不可用于定型数据集的任何级别都会映射到此附加级别。 |
输出
名称 | 类型 | 说明 |
---|---|---|
未训练的模型 | ILearner 接口 | 未训练的二元分类模型 |