Compartilhar via


SvmLightLoader Classe

Definição

Isso tenta ler dados em um formato próximo ao formato de luz SVM, sendo que a maioria dos dados formatados com luz SVM deve ser interpretável por esse carregador.

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)
Herança
SvmLightLoader
Implementações

Comentários

O carregador também pode ser diferente do comportamento de análise do SVM-light, das seguintes maneiras gerais:

  1. Como um IDataViewvetor, é necessário ter um comprimento lógico e, por motivos práticos, será útil se a saída desse carregador tiver um tipo de vetor de comprimento fixo, já que poucos estimadores e nenhum avaliador de treinador básico aceitam recursos de tipos de vetor de comprimento variável. A SVM-light não tinha esse conceito.
  2. O IDataView idioma tem diferentes erros de análise w.r.t. de comportamento.
  3. O SVM-light tem algumas restrições em seu formato que não são naturais para tentar restringir o conceito desse carregador.
  4. Algumas "extensões" comuns desse formato que ocorreram ao longo dos anos são acomodadas quando sensatas, muitas vezes suportadas pela especificação de algumas opções.

O formato de luz SVM pode ser resumido aqui. Um arquivo de luz SVM pode levar a qualquer número de linhas começando com '#'. Eles são descartados. {label} {key}:{value} {key}:{value} ... {key}:{value}[#{comment}]

As linhas não são cortadas no espaço em branco, embora o espaço em branco dentro da linha, antes do caractere de comentário #(se houver) ser ignorado. A própria SVM-light usa a função padrão C "isspace", enquanto respeitamos apenas o espaço e a guia como espaço em branco. Portanto, os espaços na linha acima podem ser, digamos, guias, e pode até haver vários deles em sequência. Ao contrário do formato do carregador de texto, por exemplo, não há nenhum conceito de um campo "em branco" ter qualquer status.

O vetor de recurso é especificado por meio de uma série de pares chave/valor. A luz SVM exige que as chaves sejam positivas, aumentando inteiros, exceto por três chaves especiais: custo (interpretamos como Peso), qid (interpretamos como GroupId) e sid (ignoramos estes, mas podemos apresentá-los como uma coluna no futuro se qualquer um dos nossos aprendizes implementar algo semelhante à ID de slack). O valor de 'custo' é float, 'qid' é longo e 'sid' é um longo que deve ser positivo. Se essas chaves forem especificadas várias vezes, a última ganhará.

A luz SVM, se a cauda do valor não for interpretável como um número, ignorará a cauda. Por exemplo, "5:3.14hello" será interpretado da mesma forma que "5:3.14". Esse carregador não dá suporte a essa sintaxe.

Não retemos a restrição de chaves que precisam aumentar os valores em nosso carregador, devido à maneira como compomos nossos vetores de recursos, mas será mais eficiente se essa política ainda for seguida. Se for seguido, uma classificação não será necessária.

Esse carregador tem a opção especial de ler texto bruto para as chaves e converter em índices de recursos, mantendo os valores de chave de texto como nomes de recurso para o vetor de recurso resultante. A intenção disso é permitir chaves de cadeia de caracteres, uma variante comum do formato, mas uma enfaticamente não permitida pelo formato original.

Métodos

GetOutputSchema()

Isso tenta ler dados em um formato próximo ao formato de luz SVM, sendo que a maioria dos dados formatados com luz SVM deve ser interpretável por esse carregador.

Load(IMultiStreamSource)

Isso tenta ler dados em um formato próximo ao formato de luz SVM, sendo que a maioria dos dados formatados com luz SVM deve ser interpretável por esse carregador.

Implantações explícitas de interface

ICanSaveModel.Save(ModelSaveContext)

Isso tenta ler dados em um formato próximo ao formato de luz SVM, sendo que a maioria dos dados formatados com luz SVM deve ser interpretável por esse carregador.

Métodos de Extensão

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

Visualizar um efeito do loader em um determinado source.

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

Crie um carregador composto acrescentando um transformador a esse carregador de dados.

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

Crie um novo avaliador de carregador composto acrescentando um avaliador a esse carregador de dados.

Aplica-se a