转换为 SVMLight

重要

对机器学习工作室(经典)的支持将于 2024 年 8 月 31 日结束。 建议在该日期之前转换到 Azure 机器学习

从 2021 年 12 月 1 日开始,你将无法创建新的机器学习工作室(经典)资源。 在 2024 年 8 月 31 日之前,可继续使用现有的机器学习工作室(经典)资源。

ML 工作室(经典)文档即将停用,将来可能不会更新。

将数据输入转换为 SVM-Light 框架使用的格式

类别: 数据格式转换

注意

适用于:机器学习 Studio (经典) 应用

可在 Azure 机器学习设计器中获取类似的拖放模块。

模块概述

本文介绍如何使用 机器学习 Studio (经典) 中的"转换为 SVMLight"模块将数据集转换为 SVMLight 使用的格式。

SVM-Light 框架由康奈尔大学的研究人员开发。 该SVM-Light库实现 Vapnik 的支持向量机,但该格式已在其他地方采用,可用于许多机器学习任务,包括分类和回归。

有关详细信息,请参阅 SVMLight 支持向量机

如何配置"转换为 SVMLight"

转换为 SVMLight 格式需要将每个大小写转换为以标签开头的数据行,后跟以冒号分隔的数字表示的特征值对。 转换过程 不会自动 识别正确的列,因此,在尝试转换之前,必须准备数据集中的列。 有关详细信息,请参阅 准备数据进行转换

  1. "转换为 SVMLight" 模块添加到试验。 可以在 机器学习 Studio (经典) 的数据格式转换类别中找到此模块。

  2. 连接要转换为 SVMLight 格式的数据集或输出。

  3. 运行试验。

  4. 右键单击模块的输出,选择"下载",将数据保存到本地文件进行修改,或者与支持 SVMLight 的程序一起重复使用。

准备要转换的数据

为了说明转换过程,此示例使用工作室中的 "流 水"数据集 (经典) 。

此示例数据集采用表格格式,格式如下。

可恢复性 频率 货币 时间
2 50 12500 98 1
0 13 3250 28 1
1 1 4000 35 1
2 20 5000 45 1
1 24 6000 77 0

请注意,此数据集中名为 [Class] 的标签列是表中的最后一列。 但是,如果将数据集转换为 SVMLight 而不首先指示哪个列包含标签,则第一列 [Recency] 将用作标签,并且 [Class] 列被视为特征:

2 1:50 2:12500 3:98 4:1
0 1:13 2:3250 3:28 4:1
1 1:16 2:4000 3:35 4:1

若要确保在每个用例的行开头正确生成标签,必须添加"编辑元数据"模块的 个实例。

  1. 在"编辑元数据"的第一个实例中,选择" ([类]") ,对于"字段",选择"标签"

  2. 在编辑元数据的第二个实例中,选择转换后的文件 ([Recency]、[Frequency]、[货币]、[时间]) 中所需的所有功能列,对于"字段",选择"功能"。

正确标识列后,可以运行 "转换为 SVMLight" 模块。 转换后,"流水"数据集的前几行现在采用以下格式:

  • 标签值位于每个条目之前,后跟 [Recency]、[Frequency]、[Monetary] 和 [Time] 的值,分别标识为特征 1、2、3 和 4。

  • 第五行中的标签值 0 已转换为 -1。 这是因为 SVMLight 仅支持二元分类标签。

1 1:2 2:50 3:12500 4:98
1 1:0 2:13 3:3250 4:28
1 1:1 2:16 3:4000 4:35
1 1:2 2:20 3:5000 4:45
-1 1:1 2:24 3:6000 4:77

不能直接将此文本数据用于 Azure ML或可视化。 但是,可以下载它到本地共享。

打开文件后 #,建议添加以 为前行的注释行,以便添加有关源或原始特征列名称的注释。

若要在 Vowpal Wabbit 中使用 SVMLight 文件,并做出其他修改,如下所述: 转换为 Vowpal Wabbit 格式。 文件准备就绪后,将其上传到 Azure Blob 存储,然后直接从 Vowpal Wabbit 模块之一调用它。

示例

没有特定于此Azure AI 库的示例。

技术说明

本部分包含实现详情、使用技巧和常见问题解答。

使用提示

SVM-Light框架提供的可执行文件需要示例文件和模型文件。 但此模块只创建示例文件。 必须使用 SVMLight 库单独创建模型文件。

示例文件是包含训练示例的文件。

  • 可选标头

    第一行可以包含注释。 注释必须以数字符号 (#) 作为前缀。

    “转换为 SVMLight”输出的文件格式不会创建标头。 可以编辑文件以添加注释、列名列表等。

  • 训练数据

    每个案例都位于其自己的行中。 case 由一个目标值后跟一系列索引和关联的特征值组成。

    响应值必须是 1 或 -1(表示分类)或者数字(表示回归)。

    目标值和每个索引值对由空格分隔。

训练数据示例

下表显示了如何将 Two-Class Iris 数据集的列中的值转换为表示形式,其中每个列都由索引表示,后跟冒号,然后是该列中的值:

Iris 数据集 已转换为 SVMLight 的 Iris 数据集
1 6.3 2.9 5.6 1。8 1 1: 6.3 2: 2.9 3: 5.6 4:1。8
0 4.8 3.4 1.6 0。2 -1 1: 4.8 2: 3.4 3: 1.6 4:0。2
1 7.2 3.2 6 1。8 1 1: 7.2 2: 3.2 3:6 4:1。8

请注意,在转换时功能列的名称将丢失。

使用 SVMLight 准备 Vowpal Wabbit 文件

SVMLight 格式类似于 Vowpal Wabbit 使用的格式。 若要将 SVMLight 输出文件更改为可用于定型 Vowpal Wabbit 模型的格式,只需在标签和特征列表之间添加一个管道符号。

例如,将以下输入行进行比较:

Vowpal Wabbit 格式,包括可选注释

# features are [Recency], [Frequency], [Monetary], [Time]
1 | 1:2 2:50 3:12500 4:98
1 | 1:0 2:13 3:3250 4:28

SVMLight 格式,包括可选注释

# features are [Recency], [Frequency], [Monetary], [Time]
1 1:2 2:50 3:12500 4:98
1 1:0 2:13 3:3250 4:28

预期输入

名称 类型 说明
数据集 数据表 输入数据集

输出

名称 类型 说明
结果数据集 SvmLight 输出数据集

另请参阅

数据格式转换
A-Z 模块列表