SvmLightLoader Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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:
- 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.
- O IDataView idioma tem diferentes erros de análise w.r.t. de comportamento.
- O SVM-light tem algumas restrições em seu formato que não são naturais para tentar restringir o conceito desse carregador.
- 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 |
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. |