SvmLightLoader 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
这会尝试以接近 SVM 光格式的格式读取数据,目标是此加载程序可以解释大多数 SVM 光格式的数据。
public sealed class SvmLightLoader : Microsoft.ML.IDataLoader<Microsoft.ML.Data.IMultiStreamSource>
type SvmLightLoader = class
interface IDataLoader<IMultiStreamSource>
interface ICanSaveModel
Public NotInheritable Class SvmLightLoader
Implements IDataLoader(Of IMultiStreamSource)
- 继承
-
SvmLightLoader
- 实现
注解
加载程序也可能不同于 SVM-light 分析行为,通常采用以下一般方式:
- 作为一种 IDataView,矢量需要具有逻辑长度,并且出于实际原因,如果此加载器的输出具有固定长度向量类型,因为很少有估算器且没有基本的训练器估算器接受可变长度向量类型的特征,这很有用。 SVM-light 没有这样的概念。
- IDataView成语具有不同的行为 w.r.t. 分析错误。
- SVM-light 采用其格式存在一些限制,这些限制不自然地尝试在此加载程序的概念中进行限制。
- 多年来发生的此格式的一些常见“扩展”可以容纳在合理的地方,通常通过指定一些选项来支持这些扩展。
可以在此处汇总 SVM 光格式。 SVM-light 文件可以导致任意数量的行以“#”开头。 这些将被丢弃。 {label}{key}:{value} {key}:{value} ...{key}:{value}[#{comment}]
行不会剪裁空格,但行中的空格位于 #注释字符(如果有)之前。 SVM 光本身使用标准 C“isspace”函数,而我们只尊重空格和制表符作为空格。 因此,上面的行中的空格可以是制表符,甚至可以按顺序排列多个空格。 例如,与文本加载程序的格式不同,没有“空白”字段具有任何状态的概念。
特征向量是通过一系列键/值对指定的。 SVM-light 要求键是正数、增加整数,除了三个特殊键:成本(我们解释为 Weight)、qid(我们解释为 GroupId)和 sid(我们忽略这些键,但如果任何学习者实现任何类似 Slack ID 的任何内容,则将来可能会将它们显示为列)。 “cost”的值是浮动的,“qid”是一个长,而“sid”是必须正的长值。 如果多次指定这些键,则最后一个键将获胜。
如果值的尾部不能解释为数字,则 SVM-light 将忽略尾部。 例如,“5:3.14hello”将解释为“5:3.14”。 此加载程序不支持此语法。
由于编写功能向量的方式,我们不保留对加载程序中需要增加值的键的限制,但如果仍遵循此策略,它将最有效。 如果遵循排序,则不需要排序。
此加载程序具有读取键的原始文本并转换为功能索引的特殊选项,并将文本键值保留为生成的特征向量的功能名称。 其意图是允许字符串键,这是格式的常见变体,但原始格式不允许使用字符串键。
方法
| 名称 | 说明 |
|---|---|
| GetOutputSchema() |
这会尝试以接近 SVM 光格式的格式读取数据,目标是此加载程序可以解释大多数 SVM 光格式的数据。 |
| Load(IMultiStreamSource) |
这会尝试以接近 SVM 光格式的格式读取数据,目标是此加载程序可以解释大多数 SVM 光格式的数据。 |
显式接口实现
| 名称 | 说明 |
|---|---|
| ICanSaveModel.Save(ModelSaveContext) |
这会尝试以接近 SVM 光格式的格式读取数据,目标是此加载程序可以解释大多数 SVM 光格式的数据。 |
扩展方法
| 名称 | 说明 |
|---|---|
| Append<TSource,TTrans>(IDataLoader<TSource>, IEstimator<TTrans>) |
通过将估算器追加到此数据加载程序,创建新的复合加载程序估算器。 |
| Append<TSource,TTrans>(IDataLoader<TSource>, TTrans) |
通过将转换器追加到此数据加载程序来创建新的复合加载程序。 |
| Preview<TSource>(IDataLoader<TSource>, TSource, Int32) |
预览给定效果 |