Condividi tramite


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 SVM-light 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. In quanto , IDataViewi 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 non gli estimatori di base accettano caratteristiche di tipi di vettore a lunghezza variabile. La luce SVM non aveva un concetto simile.
  2. Il IDataView linguaggio presenta 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ò generare un numero qualsiasi di righe che iniziano con '#'. Questi vengono eliminati. {label} {key}:{value} {key}:{value} ... {key}:{value}[#{comment}]

Le righe non vengono ritagliate, 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 rispettiamo solo lo spazio e la scheda 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 i 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 elemento simile all'ID slack). Il valore di '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 per le 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

GetOutputSchema()

Questo tentativo di leggere i dati in un formato vicino al formato SVM-light, l'obiettivo è che la maggior parte dei dati formattati SVM-light 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 SVM-light deve essere interpretabile da questo caricatore.

Implementazioni dell'interfaccia esplicita

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 SVM-light deve essere interpretabile da questo caricatore.

Metodi di estensione

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

Visualizzare in anteprima un effetto di loader su un oggetto specificato source.

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

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

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.

Si applica a