Поделиться через


SvmLightLoader Класс

Определение

При попытке считывать данные в формате, близком к формату SVM-light, цель состоит в том, что большинство данных в формате SVM должны быть интерпретированы этим загрузчиком.

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)
Наследование
SvmLightLoader
Реализации

Комментарии

Загрузчик также может отличаться от поведения синтаксического анализа SVM-light следующими общими способами:

  1. Как правило IDataView, векторы должны иметь логическую длину, и по практическим причинам полезно, если выходные данные этого загрузчика имеют тип вектора фиксированной длины, так как мало оценщиков и базовых оценщиков тренера принимают признаки типов векторов переменной длины. SvM-light не имел такой концепции.
  2. Идиом IDataView имеет другое поведение w.r.t. синтаксический анализ ошибок.
  3. SvM-light имеет некоторые ограничения в своем формате, которые не являются неестественными для попытки ограничить в концепции этого загрузчика.
  4. Некоторые распространенные "расширения" этого формата, которые произошли на протяжении многих лет, размещаются там, где разумные, часто поддерживаются путем указания некоторых вариантов.

Формат SVM-light можно свести здесь. Файл SVM-light может привести к любому количеству строк, начиная с "#". Они отбрасываются. {label} {key}:{value} {key}:{value} ... {key}:{value}[#{comment}]

Строки не обрезаются, хотя пробелы в строке игнорируются до символа комментария #(если таковые имеются). SvM-light сам использует стандартную функцию C "isspace", в то время как мы уважаем только пробелы и табуляции как пробелы. Таким образом, пробелы в приведенной выше строке могут быть, скажем, табуляции, и может быть даже несколько из них в последовательности. В отличие от формата загрузчика текста, например, нет понятия "пустого" поля с каким-либо состоянием.

Вектор признаков задается с помощью ряда пар "ключ-значение". SVM-light требует, чтобы ключи были положительными, увеличивая целые числа, за исключением трех специальных ключей: затраты (мы интерпретируем как вес), qid (мы интерпретируем как GroupId) и sid (мы игнорируем их, но можем представить их в качестве столбца в будущем, если любой из наших учащихся реализует все, что похоже на идентификатор slack). Значение "cost" равно float, "qid" является длинным, а "sid" является длинным, который должен быть положительным. Если эти ключи заданы несколько раз, последний выигрывает.

SvM-light, если хвост значения не интерпретируется как число, будет игнорировать хвост. Например, "5:3.14hello" интерпретируется так же, как "5:3.14". Этот загрузчик не поддерживает этот синтаксис.

Мы не сохраняем ограничение на ключи, необходимые для увеличения значений в загрузчике, из-за того, как мы составим векторы признаков, но это будет наиболее эффективным, если эта политика по-прежнему соблюдается. Если он следует за сортировкой, не потребуется.

Этот загрузчик имеет специальный параметр для чтения необработанного текста для ключей и преобразования в индексы признаков, сохраняя значения текстового ключа в качестве имен признаков для результирующего вектора признаков. Цель состоит в том, чтобы разрешить строковые ключи, общий вариант формата, но один решительно не разрешен в исходном формате.

Методы

GetOutputSchema()

При попытке считывать данные в формате, близком к формату SVM-light, цель состоит в том, что большинство данных в формате SVM должны быть интерпретированы этим загрузчиком.

Load(IMultiStreamSource)

При попытке считывать данные в формате, близком к формату SVM-light, цель состоит в том, что большинство данных в формате SVM должны быть интерпретированы этим загрузчиком.

Явные реализации интерфейса

ICanSaveModel.Save(ModelSaveContext)

При попытке считывать данные в формате, близком к формату SVM-light, цель состоит в том, что большинство данных в формате SVM должны быть интерпретированы этим загрузчиком.

Методы расширения

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

Предварительный просмотр эффекта loader заданного sourceзначения.

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

Создайте составной загрузчик, добавив преобразователь к этому загрузчику данных.

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

Создайте новый оценщик составного загрузчика, добавив средство оценки к этому загрузчику данных.

Применяется к