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 следующими общими способами:
- Как правило IDataView, векторы должны иметь логическую длину, и по практическим причинам полезно, если выходные данные этого загрузчика имеют тип вектора фиксированной длины, так как мало оценщиков и базовых оценщиков тренера принимают признаки типов векторов переменной длины. SvM-light не имел такой концепции.
- Идиом IDataView имеет другое поведение w.r.t. синтаксический анализ ошибок.
- SvM-light имеет некоторые ограничения в своем формате, которые не являются неестественными для попытки ограничить в концепции этого загрузчика.
- Некоторые распространенные "расширения" этого формата, которые произошли на протяжении многих лет, размещаются там, где разумные, часто поддерживаются путем указания некоторых вариантов.
Формат 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) |
Предварительный просмотр эффекта |
Append<TSource,TTrans>(IDataLoader<TSource>, TTrans) |
Создайте составной загрузчик, добавив преобразователь к этому загрузчику данных. |
Append<TSource,TTrans>(IDataLoader<TSource>, IEstimator<TTrans>) |
Создайте новый оценщик составного загрузчика, добавив средство оценки к этому загрузчику данных. |