Freigeben über


SvmLightLoader Klasse

Definition

Dadurch wird versucht, Daten in einem Format in der Nähe des SVM-Light-Formats zu lesen, das Ziel ist, dass die Mehrheit der formatierten SVM-Light-Daten von diesem Ladeprogramm interpretiert werden sollte.

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)
Vererbung
SvmLightLoader
Implementiert

Hinweise

Der Ladeprogramm kann sich auch vom Analyseverhalten von SVM-light unterscheiden, und zwar auf die folgenden allgemeinen Arten:

  1. IDataViewAls Vektor sind Vektoren erforderlich, um eine logische Länge zu haben, und aus praktischen Gründen ist es hilfreich, wenn die Ausgabe dieses Ladeers einen Vektortyp mit fester Länge aufweist, da einige Schätzer und keine grundlegenden Trainerstimme Features eines Variablenlängenvektortypen akzeptieren. SVM-light hatte kein solches Konzept.
  2. Der IDataView Idiom weist ein anderes Verhalten auf w.r.r.t.-Analysefehler auf.
  3. Das SVM-Light hat einige Einschränkungen in seinem Format, die unnatürlich sind, um das Konzept dieses Ladeers einzuschränken.
  4. Einige gängige "Erweiterungen" dieses Formats, die im Laufe der Jahre stattgefunden haben, sind dort untergebracht, wo sinnvoll, häufig durch Angeben einiger Optionen unterstützt werden.

Das SVM-Light-Format kann hier zusammengefasst werden. Eine SVM-light-Datei kann mit einer beliebigen Anzahl von Zeilen führen, die mit "#" beginnen. Diese werden verworfen. {label} {key}:{value} {key}:{value} ... {key}:{value}[#{comment}]

Zeilen sind nicht leer, obwohl Leerzeichen innerhalb der Zeile vor dem #-Kommentarzeichen (sofern vorhanden) ignoriert werden. SVM-light selbst verwendet die standardmäßige C -Funktion "isspace", während wir nur Platz und Tabstopp als Leerzeichen respektieren. Die Leerzeichen in der obigen Zeile könnten also z. B. Registerkarten sein, und es könnte sogar mehrere davon in Folge geben. Im Gegensatz zum Format des Textladeprogramms gibt es beispielsweise kein Konzept eines "leeren" Felds, das einen Status aufweist.

Der Featurevektor wird über eine Reihe von Schlüssel-/Wertpaaren angegeben. SVM-light erfordert, dass die Schlüssel positiv sein und ganze Zahlen erhöhen, mit Ausnahme von drei Speziellschlüsseln: Kosten (wir interpretieren als Gewicht), Qid (wir interpretieren als GroupId) und Sid (wir ignorieren diese, aber können sie in Zukunft als Spalte präsentieren, wenn einer unserer Lernenden etwas implementiert, das der Puffer-ID ähnelt). Der Wert für "Kosten" ist float, "qid" ist ein Langer, und "sid" ist eine lange, die positiv sein muss. Wenn diese Schlüssel mehrmals angegeben werden, gewinnt die letzte.

SVM-light, wenn der Tail des Werts nicht als Zahl interpretiert werden kann, ignoriert den Tail. Beispielsweise wird "5:3.14hello" wie "5:3.14" interpretiert. Dieser Ladeprogramm unterstützt diese Syntax nicht.

Wir behalten die Einschränkung von Schlüsseln nicht bei, die in unserem Ladeprogramm werte erhöhen müssen, aufgrund der Art und Weise, wie wir unsere Featurevektoren verfassen, aber es wird am effizientesten sein, wenn diese Richtlinie noch befolgt wird. Wenn eine Sortierung befolgt wird, ist keine Sortierung erforderlich.

Dieses Ladeprogramm verfügt über die spezielle Option, unformatierten Text für die Tasten zu lesen und in Featureindizes zu konvertieren und die Textschlüsselwerte als Featurenamen für den resultierenden Featurevektor beizubehalten. Die Absicht besteht darin, Zeichenfolgenschlüssel zuzulassen, eine gängige Variante des Formats, aber eine emphmatisch nicht vom ursprünglichen Format zulässig.

Methoden

GetOutputSchema()

Dadurch wird versucht, Daten in einem Format in der Nähe des SVM-Light-Formats zu lesen, das Ziel ist, dass die Mehrheit der formatierten SVM-Light-Daten von diesem Ladeprogramm interpretiert werden sollte.

Load(IMultiStreamSource)

Dadurch wird versucht, Daten in einem Format in der Nähe des SVM-Light-Formats zu lesen, das Ziel ist, dass die Mehrheit der formatierten SVM-Light-Daten von diesem Ladeprogramm interpretiert werden sollte.

Explizite Schnittstellenimplementierungen

ICanSaveModel.Save(ModelSaveContext)

Dadurch wird versucht, Daten in einem Format in der Nähe des SVM-Light-Formats zu lesen, das Ziel ist, dass die Mehrheit der formatierten SVM-Light-Daten von diesem Ladeprogramm interpretiert werden sollte.

Erweiterungsmethoden

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

Zeigen Sie eine Vorschau eines Effekts auf loader einen bestimmten sourceVorgang an.

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

Erstellen Sie einen neuen zusammengesetzten Ladeprogramm, indem Sie einen Transformator an diesen Datenladegerät anfügen.

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

Erstellen Sie einen neuen zusammengesetzten Ladeprogramm, indem Sie einen Schätzer an diesen Datenladeprogramm anfügen.

Gilt für: