SvmLightLoader 类

定义

这会尝试以接近 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 分析行为,采用以下常规方式:

  1. 作为一种 IDataView,矢量需要具有逻辑长度,并且出于实际原因,如果此加载器的输出具有固定长度向量类型,因为很少有估算器且没有基本训练器接受可变长度向量类型的特征,这非常有用。 SVM-light 没有这样的概念。
  2. IDataView成语具有不同的行为 w.r.t. 分析错误。
  3. SVM-light 在其格式中存在一些限制,这些限制是不自然的,试图限制此加载程序的概念。
  4. 多年来发生的这种格式的一些常见“扩展”可以容纳在合理的地方,通常通过指定一些选项来支持。

可以在此处汇总 SVM 光格式。 SVM-light 文件可以领先于以“#”开头的任意数量的行。 这些将被丢弃。 {label}{key}:{value} {key}:{value} ...{key}:{value}[#{comment}]

如果忽略任何) ,则行未剪裁,但行中的空格位于 #注释字符之前 (。 SVM-light 本身使用标准 C“isspace”函数,而我们只尊重空格和制表符作为空格。 因此,上述行中的空格可以是制表符,甚至可以按顺序排列其中多个。 例如,与文本加载程序的格式不同,没有“空白”字段具有任何状态的概念。

特征向量通过一系列键/值对指定。 SVM-light 要求密钥是正数、增加整数(除三个特殊键除外):成本 (我们解释为权重) , (我们解释为 GroupId) 和 sid (我们忽略这些键,但是,如果任何学习者实现任何类似 slack id) 的任何内容,它们可能会将它们呈现为列。 “成本”的值是浮动的,“qid”是一个长,而“sid”是一个必须正的长。 如果多次指定这些键,则最后一个键将获胜。

如果值的尾部不能解释为数字,则 SVM-light 将忽略尾部。 例如,“5:3.14hello”将解释为“5:3.14”。 此加载程序不支持此语法。

由于我们编写功能向量的方式,我们不保留对加载器中需要增加值的键的限制,但如果仍遵循此策略,它将最有效。 如果遵循排序,则不需要排序。

此加载程序具有读取键的原始文本并转换为功能索引的特殊选项,将文本键值保留为生成的特征向量的功能名称。 其意图是允许字符串键,这是格式的常见变体,但原始格式不允许使用字符串键。

方法

GetOutputSchema()

这会尝试以接近 SVM 光格式的格式读取数据,目标是大多数 SVM 光格式的数据应由此加载程序解释。

Load(IMultiStreamSource)

这会尝试以接近 SVM 光格式的格式读取数据,目标是大多数 SVM 光格式的数据应由此加载程序解释。

显式接口实现

ICanSaveModel.Save(ModelSaveContext)

这会尝试以接近 SVM 光格式的格式读取数据,目标是大多数 SVM 光格式的数据应由此加载程序解释。

扩展方法

Preview<TSource>(IDataLoader<TSource>, TSource, Int32)

预览给定source效果loader

Append<TSource,TTrans>(IDataLoader<TSource>, TTrans)

通过将转换器追加到此数据加载程序来创建新的复合加载程序。

Append<TSource,TTrans>(IDataLoader<TSource>, IEstimator<TTrans>)

通过将估算器追加到此数据加载器,创建新的复合加载器估算器。

适用于