SvmLightLoader Classe

Definizione

Questo tentativo di leggere i dati in un formato vicino al formato SVM-light, l'obiettivo è che la maggior parte dei dati formattati con luce SVM deve essere interpretabile da questo caricatore.

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)
Ereditarietà
SvmLightLoader
Implementazioni

Commenti

Il caricatore può anche essere diverso dal comportamento di analisi della luce SVM, nei modi generali seguenti:

  1. IDataViewCome , i vettori sono necessari per avere una lunghezza logica e per motivi pratici è utile se l'output di questo caricatore ha un tipo di vettore a lunghezza fissa, poiché pochi estimatori e nessun strumento di stima di base accettano caratteristiche di tipi di vettore a lunghezza variabile. SVM-light non aveva questo concetto.
  2. Il IDataView linguaggio ha un comportamento diverso w.r.t. analizzare gli errori.
  3. La luce SVM presenta alcune restrizioni nel formato che non sono naturali per tentare di limitare il concetto di questo caricatore.
  4. Alcune "estensioni" comuni di questo formato che si sono verificate nel corso degli anni sono ospitate dove ragionevole, spesso supportato specificando alcune opzioni.

Il formato SVM-light può essere riepilogato qui. Un file SVM-light può portare con un numero qualsiasi di righe a partire da '#'. Questi vengono eliminati. {label} {key}:{value} {key}:{value} ... {key}:{value}[#{comment}]

Le righe non vengono tagliati spazi vuoti, anche se gli spazi vuoti all'interno della riga, prima del carattere di commento # (se presente) vengono ignorati. SVM-light usa la funzione standard C "isspace", mentre si rispetta solo lo spazio e la tabulazione come spazi vuoti. Quindi, gli spazi nella riga precedente potrebbero essere, ad esempio schede, e potrebbero anche esserci più di essi in sequenza. A differenza del formato del caricatore di testo, ad esempio, non esiste alcun concetto di campo "vuoto" con stato.

Il vettore di funzionalità viene specificato tramite una serie di coppie chiave/valore. SVM-light richiede che le chiavi siano positive, aumentando numeri interi, ad eccezione di tre chiavi speciali: costo (interpretiamo come peso), qid (interpretiamo come GroupId) e sid (li ignoriamo, ma potrebbero presentarli come colonna in futuro se uno dei nostri studenti implementa qualsiasi id slack simile a quello di slack). Il valore per 'cost' è float, 'qid' è un long e 'sid' è un lungo che deve essere positivo. Se queste chiavi vengono specificate più volte, l'ultima vince.

SVM-light, se la coda del valore non è interpretabile come numero, ignorerà la coda. Ad esempio, "5:3.14hello" verrà interpretato come "5:3.14". Questo caricatore non supporta questa sintassi.

Non si mantiene la restrizione sulle chiavi che devono aumentare i valori nel caricatore, a causa del modo in cui si compongono i vettori di funzionalità, ma sarà più efficiente se questo criterio è ancora seguito. Se viene seguito un ordinamento non sarà necessario.

Questo caricatore ha l'opzione speciale per leggere il testo non elaborato per le chiavi e convertirli in indici di funzionalità, mantenendo i valori della chiave di testo come nomi di funzionalità per il vettore di funzionalità risultante. Lo scopo di questa operazione è consentire le chiavi stringa, una variante comune del formato, ma una non consentita in modo enfatico dal formato originale.

Metodi

Nome Descrizione
GetOutputSchema()

Questo tentativo di leggere i dati in un formato vicino al formato SVM-light, l'obiettivo è che la maggior parte dei dati formattati con luce SVM deve essere interpretabile da questo caricatore.

Load(IMultiStreamSource)

Questo tentativo di leggere i dati in un formato vicino al formato SVM-light, l'obiettivo è che la maggior parte dei dati formattati con luce SVM deve essere interpretabile da questo caricatore.

Implementazioni dell'interfaccia esplicita

Nome Descrizione
ICanSaveModel.Save(ModelSaveContext)

Questo tentativo di leggere i dati in un formato vicino al formato SVM-light, l'obiettivo è che la maggior parte dei dati formattati con luce SVM deve essere interpretabile da questo caricatore.

Metodi di estensione

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

Creare un nuovo strumento di stima del caricatore composito aggiungendo uno strumento di stima a questo caricatore di dati.

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

Creare un nuovo caricatore composito aggiungendo un trasformatore a questo caricatore di dati.

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

Visualizzare in anteprima un effetto di loader su un determinato sourceoggetto .

Si applica a