Udostępnij za pośrednictwem


SvmLightLoader Klasa

Definicja

To próbuje odczytać dane w formacie zbliżonym do formatu SVM-light. Celem jest to, że większość danych sformatowanych w formacie SVM powinna być interpretowana przez ten moduł ładujący.

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)
Dziedziczenie
SvmLightLoader
Implementuje

Uwagi

Moduł ładujący może być również inny niż zachowanie analizy wektorów nośnych, w następujący ogólny sposób:

  1. IDataViewJako element , wektory muszą mieć długość logiczną i z praktycznych powodów warto uznać, że dane wyjściowe tego modułu ładującego mają typ wektora o stałej długości, ponieważ niewiele narzędzia do szacowania i nie są akceptowane funkcje typów wektorów o zmiennej długości. SvM-light nie miał takiej koncepcji.
  2. Idiom IDataView ma inne zachowanie w.r.t. analizuje błędy.
  3. Światło wektorów nośnych ma pewne ograniczenia w formacie, które nie sąnaturalne, aby spróbować ograniczyć w koncepcji tego modułu ładującego.
  4. Niektóre typowe "rozszerzenia" tego formatu, które miały miejsce w ciągu lat, są uwzględniane tam, gdzie rozsądne, często obsługiwane przez określenie niektórych opcji.

Format svM-light można podsumować tutaj. Plik SVM-light może prowadzić z dowolną liczbą wierszy rozpoczynających się od "#". Są one odrzucane. {label} {key}:{value} {key}:{value} ... {key}:{value}[#{comment}]

Wiersze nie są przycięte białym znakiem, choć odstępy w wierszu przed znakiem komentarza #(jeśli istnieją) są ignorowane. Sama maszyna wektorów nośnych używa standardowej funkcji "isspace" języka C, a my szanujemy tylko odstępy i tabulatory. W związku z tym spacje w powyższym wierszu mogą być, powiedzmy, tabulatory, i może być nawet wiele z nich w sekwencji. W przeciwieństwie do formatu modułu ładującego tekst, na przykład nie ma pojęcia "pustego" pola o żadnym stanie.

Wektor funkcji jest określany za pomocą serii par klucz/wartość. SvM-light wymaga, aby klucze były dodatnie, zwiększając liczbę całkowitą, z wyjątkiem trzech specjalnych kluczy: koszt (interpretujemy jako Waga), qid (interpretujemy jako GroupId) i sid (ignorujemy je, ale możemy przedstawić je jako kolumnę w przyszłości, jeśli którykolwiek z naszych uczniów implementuje coś przypominającego identyfikator slack). Wartość "cost" to float, "qid" jest długa, a "sid" jest długi, który musi być pozytywny. Jeśli te klucze są określone wiele razy, ostatni wygrywa.

Światło wektorów nośnych, jeśli ogon wartości nie może być interpretowany jako liczba, zignoruje ogon. Na przykład wyrażenie "5:3.14hello" będzie interpretowane tak samo jak "5:3.14". Ten moduł ładujący nie obsługuje tej składni.

Nie zachowujemy ograniczeń dotyczących kluczy, które muszą być coraz większe w naszym module ładującym, ze względu na sposób redagowania naszych wektorów funkcji, ale będzie to najbardziej efektywne, jeśli te zasady będą nadal przestrzegane. Jeśli następuje sortowanie, nie będzie wymagane.

Ten moduł ładujący ma specjalną opcję odczytywania nieprzetworzonego tekstu dla kluczy i konwertowania na indeksy funkcji, zachowując wartości klucza tekstowego jako nazwy cech wynikowego wektora cech. Celem tego jest zezwolenie na klucze ciągów, wspólny wariant formatu, ale zdecydowanie nie jest dozwolony przez oryginalny format.

Metody

GetOutputSchema()

To próbuje odczytać dane w formacie zbliżonym do formatu SVM-light. Celem jest to, że większość danych sformatowanych w formacie SVM powinna być interpretowana przez ten moduł ładujący.

Load(IMultiStreamSource)

To próbuje odczytać dane w formacie zbliżonym do formatu SVM-light. Celem jest to, że większość danych sformatowanych w formacie SVM powinna być interpretowana przez ten moduł ładujący.

Jawne implementacje interfejsu

ICanSaveModel.Save(ModelSaveContext)

To próbuje odczytać dane w formacie zbliżonym do formatu SVM-light. Celem jest to, że większość danych sformatowanych w formacie SVM powinna być interpretowana przez ten moduł ładujący.

Metody rozszerzania

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

Podgląd wpływu loader elementu na dany sourceelement .

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

Utwórz nowy moduł ładujący złożony, dołączając transformator do tego modułu ładującego dane.

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

Utwórz nowy narzędzie do szacowania modułu ładującego złożonego, dołączając narzędzie do szacowania do tego modułu ładującego dane.

Dotyczy