SvmLightLoader Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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:
- 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.
- Idiom IDataView ma inne zachowanie w.r.t. analizuje błędy.
- Ś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.
- 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 |
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. |